一臺server上安裝mysql cluster(轉)

xingfei80發表於2010-07-30

一臺server上安裝mysql cluster(轉)

環境:

一臺OS

redhat linux 5.1

RAM 2G 硬碟空間:2G

先建立mysql組和mysql使用者:

groupadd mysql

useradd -g mysql mysql

下載軟體:

[@more@]

安裝:

[user1@ws2 ~]$ tar xvf Downloads/mysql-cluster-gpl-7.1.3-linux-x86_64-glibc23.tar.gz
[user1@ws2 ~]$ ln -s mysql-cluster-gpl-7.1.3-linux-x86_64-glibc23 mysqlc

將~/mysqlc/bin放到你的path環境變數下.


配置:

[user1@ws2 ~]$ mkdir my_cluster my_cluster/ndb_data my_cluster/mysqld_data my_cluster/conf

在剛建的conf目錄下,建立my.cnf和config.ini兩個檔案,檔案的內容分別為:

my.cnf:
[mysqld]
ndbcluster
datadir=/home/user1/my_cluster/mysqld_data
basedir=/home/user1/mysqlc
port=5000
config.ini:
[ndb_mgmd]
hostname=localhost
datadir=/home/user1/my_cluster/ndb_data
id=1
[ndbd default]
noofreplicas=2
datadir=/home/user1/my_cluster/ndb_data
[ndbd]
hostname=localhost
id=3
[ndbd]
hostname=localhost

id=4
[mysqld]
id=50


初始化

[user1@ws2 ~]$ cd mysqlc
[user1@ws2 mysqlc]$ scripts/mysql_install_db --no-defaults --datadir=$HOME/my_cluster/mysqld_data/


啟動:

[user1@ws2 mysqlc]$ cd ../my_cluster/
[user1@ws2 my_cluster]$ $HOME/mysqlc/bin/ndb_mgmd -f conf/config.ini --initial --
configdir=$HOME/my_cluster/conf/
[user1@ws2 my_cluster]$ $HOME/mysqlc/bin/ndbd -c localhost:1186
[user1@ws2 my_cluster]$ $HOME/mysqlc/bin/ndbd -c localhost:1186

透過mysql的manager檢視各個節點和資料節點的情況:

[user1@ws2 my_cluster]$ $HOME/mysqlc/bin/ndb_mgm -e show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=3 @127.0.0.1 (mysql-5.1.44 ndb-7.1.3, Nodegroup: 0, Master)
id=4 @127.0.0.1 (mysql-5.1.44 ndb-7.1.3, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @127.0.0.1 (mysql-5.1.44 ndb-7.1.3)
[mysqld(API)] 1 node(s)
id=50 (not connected, accepting connect from any host)


啟動mysql資料庫:

[user1@ws2 my_cluster]$ $HOME/mysqlc/bin/mysqld --defaults-file=conf/my.cnf &

安全啟動mysql資料庫:

mysqld_safe --defaults-file=conf/my.cnf --ledir=/mysql/mysqlc/bin

測試 :

[user1@ws2 my_cluster]$ $HOME/mysqlc/bin/mysql -h 127.0.0.1 -P 5000 -u root
mysql> create database clusterdb;use clusterdb;
mysql> create table simples (id int not null primary key) engine=ndb;
mysql> insert into simples values (1),(2),(3),(4);
mysql> select * from simples;
+----+
| id |
+----+
| 3 |
| 1 |
| 2 |
| 4 |
+----+


安全關閉:

[user1@ws2 my_cluster]$ $HOME/mysqlc/bin/mysqladmin -u root -h 127.0.0.1 -P 5000 shutdown
[user1@ws2 my_cluster]$ $HOME/mysqlc/bin/ndb_mgm -e shutdown

問題記錄:

在安裝好後可能在其他IP斷裡不能訪問MySQL,訪問的時候會報:

[Warning] IP address '10.11.32.185' could not be resolved: getnameinfo() returned error (code: -3).

此時是因為MySQL對外部連線進行DNS解析,

在conf/my.cnf檔案內加入:

[mysqld]
skip-name-resolve

#禁止MySQL對外部連線進行DNS解析,使用這一選項可以消除MySQL進行DNS解析的時間。但需要注
#意,如果開啟該選項,則所有遠端主機連線授權都要使用IP地址方式,否則MySQL將無法正常處理連線#請求!
#1:去掉mysql啟動引數中的skip-name-resolve ,然後jdbc連線串用ip地址和主機名均可。

#2:如果保留啟動引數skip-name-resolve 的話,在jdbc連線串中只能使用IP地址的方式連線資料庫。

加入以上引數後,然後再將使用者賦予許可權:

grant all privileges on *.* to " identified by 'qinqiang' with grant option;

這樣再次登入就OK了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14663377/viewspace-1035699/,如需轉載,請註明出處,否則將追究法律責任。

相關文章