管理节点:192.168.126.136 数据节点:192.168.126.138 192.168.126.139
SQL节点:192.168.126.138 192.168.126.139
包:mysql-cluster-community-7.5.5-1.el6.x86_64.rpm-bundle.tar
管理节点192.168.126.136:mkdir /opt/soft/mysql -p
cd /opt/soft/mysql
mv mysql-cluster-community-7.5.5-1.el6.x86_64.rpm-bundle.tar /opt/soft/mysql
tar xvf mysql-cluster-community-7.5.5-1.el6.x86_64.rpm-bundle.tar
mkdir yum
mv *.rpm yum
cd yum
yum install createrepo -y
将rpm包做为yum源:createrepo .
vim /etc/yum.repo.d/iso.repo
[mysql-cluster]
name=mysql cluster
baseurl=file:///opt/soft/mysql/yum
gpgcheck=0
enabled=1
保存退出
yum install mysql-cluster-community-management-server
mkdir /etc/mysqlc
mkdir /var/lib/mysqlc
vim /etc/mysqlc/config.ini
1 [ndbd default]
2 NoOfReplicas=2
3 datadir=/var/lib/mysqlc
4
5 [ndbd]
6 hostname=192.168.126.138
7
8 [ndbd]
9 hostname=192.168.126.139
10
11 [ndb_mgmd]
12 hostname=192.168.126.136
13 datadir=/var/lib/mysqlc
14
15 [mysqld]
16 hostname=192.168.126.138
17
18 [mysqld]
19 hostname=192.168.126.139
20
ndb_mgmd -f /etc/mysqlc/config.ini --configdir=/etc/mysqlc/ --initial 第一次加 --initial 以后修改配置文件才加
查看进程起起来没有: ps -ef | grep ndb_mgmd
安装这个包可以查看数据节点和SQL节点链接的信息:yum install mysql-cluster-community-client
先执行:ndb_mgm 然后输入:show
可以在管理端通过ftp将yum源共享出来:
yum install vsftpd -y
vim /etc/vsftpd/vsftpd.conf
anon_root=/opt/soft/
anon_world_readable_only=No
保存退出
service vsftpd restart
数据节点和SQL节点:192.168.126.138
vim /etc/yum.repo.d/iso.repo
[mysql]
name=mysql cluster
baseurl=ftp://192.168.126.136/mysql/yum
gpgcheck=0
enabled=1
保存退出
yum search mysql-cluster
yum install mysql-cluster-community-data-node.x86_64
mkdir /var/lib/mysqlc
ndbd -c 192.168.126.136:1186 --initial 第一次加initial以后就不加了,不然之前数据库表就没了,默认管理端ndb_mgmd 是通过tcp协议监听的1186端口
yum install mysql-cluster-community-server.x86_64
vim /etc/my.cnf
character-set-server=utf8 加上这个在mysql建立库,表的时候就不用指定默认字符集了
ndbcluster
ndb-connectstring=192.168.126.136:1186
server-id=2 加id是为了区别登录的数据库是那台机子的,当机了也清楚是哪台,也可以不加
保存退出
service mysqld restart
vim /etc/my.cnf
加:validate-password=OFF 或者vaildate_password_policy=0 这里是控制密码强度,不加的话密码会很复杂不方便,第一次不加是因为才装的没起服务,还没有下载密码强度认证的模块,所以要先让服务重启,下载这个模块才能识别。
保存退出
service mysqld restart
改数据库root密码,可通过安全设置改,mysql 5.7会产生随机密码在 /var/log/mysql.log
取出密码: grep 'temp.*pass' var/log/mysql.log |tail -1 |awk '{print $NF}'
mysql_secure_installation
输入这里取到的密码,将密码改了,除了设置密码这里,其他都选yes
mysql -uroot -p123456 上面设置的密码为:123456
建用户授权: grant all on *.* to mysqlcluster@'%' identified by 'clusterpasswd';
建表的engine必须为ndb不然另一个SQL节点的mysql不能获取到表
create table t01 (id int primary key auto_increment, name char(128) not null, email varchar(256) default "up.admin.com") engine ndb;
如果表以及建立好了就修改: alter table t01 engine ndb;
查看engine: show create table t01;
数据节点和SQL节点:192.168.126.139
配置和192.168.126.138基本一样
就是 vim /etc/my.cnf
server-id=2 这个最好不一样,便于区分
建立用户授权要一样,用户和密码都要一样,即:
grant all on *.* to mysqlcluster@'%' identified by 'clusterpasswd';
这样在2台服务器中的任意一台数据库操作的信息都能同步到另外一台。
在管理端测试:
mysql -umysqlcluster -pclusterpasswd -h 192.168.126.138 -P3306 -e 'show variables like "server_id"'
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 2 |
+---------------+-------+
mysql -umysqlcluster -pclusterpasswd -h 192.168.126.139 -P3306 -e 'show variables like "server_id"'
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 2 |
+---------------+-------+
对用户实现透明代理:
这里在管理端192.168.126.136做: 先在mysql官网下载rpm包:
mysql-router-2.0.4-1.el6.x86_64.rpm
yum install mysql-router-2.0.4-1.el6.x86_64.rpm
vim /etc/mysqlrouter/mysqlrouter.ini
37 [routing:abc]
38 bind_address = 0.0.0.0
39 bind_port = 3333
40 mode = read-only 也可以写: mode = read-write only: 轮循 2个数据库论着连, write:默认练下面写的第一个,第一个当机了,才会连第二个,一般only模式用的比较多
41 destinations = 192.168.126.138:3306, 192.168.126.139:3306
保存退出
service mysqlrouter restart
mysql -umysqlcluster -pclusterpasswd -h 192.168.126.136 -P 3333 -e 'show variables like "server_id"'