赞
踩
1) 3台Linux服务器
A:192.168.2.251 ManagementServer
B:192.168.2.252 Datanode、SQL node
C:192.168.2.253 Datanode、SQL node
2) MySQL集群版本安装程序,分32位和64位版本,最新版本请在http://www.mysql.com/downloads/里面下载
不管是ManagementServer,还是Data node、SQL node,都需要先安装MySQL集群版本,然后根据不用的配置来决定当前服务器有哪几个角色。
安装之前准备好mysql用户和mysql用户组,相关命令:
groupadd mysql
useradd mysql -g mysql
确定相关机器的防火墙已关闭(或者设置防火墙这几台机器之间的网络连接是畅通无阻的),相关命令:
chkconfig iptables off
service iptables stop
1) 把mysql-cluster-advanced-7.3.3-linux-glibc2.5-x86_64.tar.gz(这是64位安装版,32位安装版:mysql-cluster-advanced-7.3.3-linux-glibc2.5-i686.tar.gz)上传到/usr/local
2) 解压:tar zxvf mysql-cluster-advanced-7.3.3-linux-glibc2.5-x86_64.tar.gz
3) 重命名:mv mysql-cluster-advanced-7.3.3-linux-glibc2.5-x86_64 mysql
4) 授权:chown -R mysql:mysql mysql
5) 切换到mysql用户:su mysql
6) 切换目录到mysql:/usr/local/mysql
7) 安装mysql:scripts/mysql_install_db --user=mysql
1) 使用root账号创建目录:mkdir /var/lib/mysql-cluster
2) 新建文件config.ini然后上传到mysql-cluster里面:
[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
[ndb_mgmd]
Hostname=192.168.2.251
datadir=/var/lib/mysql-cluster
[ndbd]
Hostname=192.168.2.252
datadir=/usr/local/mysql/data/
[ndbd]
Hostname=192.168.2.253
datadir=/usr/local/mysql/data/
[MYSQLD]
Hostname=192.168.2.253
[MYSQLD]
Hostname=192.168.2.252
3) 授权:chown -R mysql:mysql /var/lib/mysql-cluster
4) 切换到mysql用户:su mysql
5) 启动管理服务:/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
6) 查看服务是否正常启动:netstat –lntpu
打印:
tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 2437/ndb_mgmd
看到1186端口开放了说明启动是正常的
1) 新建文件my.cnf然后上传到/etc里面:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#basedir = /usr/local/mysql/
datadir = /usr/local/mysql/data
#user = mysql
#port = 3306
#socket = /tmp/mysql.sock
ndbcluster
ndb-connectstring=192.168.2.251
[mysql_cluster]
ndb-connectstring=192.168.2.251
2) 切换到mysql用户:su mysql
3) 启动数据节点服务:/usr/local/mysql/bin/ndbd –initial
第一次启动需要加参数:–initial,以后就不用加了,直接运行:/usr/local/mysql/bin/ndbd
4) 查看服务是否正常启动:netstat –lntpu
打印:
tcp 0 0192.168.2.24:56806 0.0.0.0:* LISTEN 4949/ndbd
tcp 0 0192.168.2.24:44894 0.0.0.0:* LISTEN 4949/ndbd
tcp 0 0192.168.2.24:50531 0.0.0.0:* LISTEN 4949/ndbd
看到ndbd了说明启动是正常的
1) 新建文件my.cnf然后上传到/etc里面,和上面的Data Node里面的配置一样,如果上面的步骤已经做了,略去此步骤。
2) 切换到mysql用户:su mysql
3) 设置管理员密码:
/usr/local/mysql/bin/mysqladmin -uroot password '123'
/usr/local/mysql/bin/mysqladmin -uroot -h LINUX129 password '123'
上面的命令行里面的123是新密码,LINUX129是机器名,这2条命令来自于安装mysql执行:scripts/mysql_install_db --user=mysql 后的打印日志
4) 复制mysqld到系统服务里面去:
cp /usr/local/mysql/support-files/mysql.server/etc/init.d/mysqld
如果权限不够,可以先使用root用户授权:
chown -R mysql:mysql /etc/init.d/mysqld
5) 启动SQL节点服务:service mysqld start
或者/etc/init.d/mysqld start
或者/usr/local/mysql/bin/mysqld_safe --user=mysql &
6) 查看服务是否正常启动:netstat –lntpu
打印:
tcp 0 0:::3306 :::* LISTEN 2590/mysqld
看到3306端口开放了说明启动是正常的
1) ndb_mgmd管理命令:/usr/local/mysql/bin/ndb_mgm
执行之后就是管理控制台了,里面可以继续输入命令。
查看集群里面的全部节点的状态:show
2) 停止集群服务器的命令:/usr/local/mysql/bin/ndb_mgm -e shutdown
如果集群配置有更新了:rm /usr/local/mysql/mysql-cluster/ndb_1_config.bin.1
3) 停止SQL节点的命令:/usr/local/mysql/bin/mysqladmin -uroot shutdown
4) SQL Node上连接MySQL:/usr/local/mysql/bin/mysql-u root –p
执行之后就是MySQL控制台了,里面可以继续输入命令。
测试集群环境:
mysql>show databases;
打印:
+--------------------+
|Database |
+--------------------+
|information_schema |
|mysql |
|ndb_2_fs |
|test |
+--------------------+
mysql>create database aa;
mysql>use aa
mysql>CREATE TABLE ctest2 (i INT primary key) ENGINE=NDB; //1.每个MySQL集群表都需要主键.如果没有定义主键,则 NDB 存储引擎会自动创建一个,并且不是指定 USING HASH 的方式;2.这里必须指定数据库表的引擎为NDB(或者NDBCLUSTER),否则同步失败
mysql>INSERT INTO ctest2 () VALUES (1);
mysql>SELECT * FROM ctest2;
打印:
+------+
| i |
+------+
| 1 |
+------+
同样方式在另外一台SQL Node上连接MySQL,查看数据库、表、记录是否已同步过去。
5) 解决MySQL客户端工具连接SQL Node出现1130的异常,在MySQL控制台下执行:
l 如果你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON*.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
l 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON*.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
l 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
GRANT ALL PRIVILEGES ONdk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
6) 使用MySQL客户端工具创建表时选择引擎:NDBCLUSTER,如下图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。