菜单

Worksapce9 MySQL主从复制配置

2019年8月3日 - UNIXSolaris

MySQL援助单向、异步复制,复制进度中五个Linux服务器充当主服务器,而三个或七个其余服务器充当从服务器。主服务器将履新写入二进制日志文件,并爱惜日志文件的一个索引以追踪日志循环,当一个从服务器连接到主服务器时,它通告主服务器从服务器在日记中读取的末梢一次成功更新的职责。从服务器收到从那时起爆发的别的更新,然后封锁并等待主服务器布告下一次立异,为何使用主从复制?

1.
环境

1、主服务器/从服务器设置扩展了健壮性,主服务器出现难题时,你能够切换来从服务器作为备份.
2、通过在主服务器和从服务器之间切分管理客户询问的负载,能够收获越来越好的客户响应时间,可是毫无同一时间在基本服务器上进行更新,这样大概引起争辩
3、使用复制的另三个利益是足以应用三个从服务器试行备份,而不会苦恼主服务器,在备份进度中主服务器可以一而再管理更新

操作系统:CentOS-7

上边来演示下MySQL主从复制的配备:
[root@server2 ~]# ifconfig eth0  |grep ‘inet addr’|cut -d ‘:’ -f 2
|cut -d ‘ ‘ -f 1
192.168.122.20   //主服务器IP
[root@server3 ~]# ifconfig eth0  |grep ‘inet addr’|cut -d ‘:’ -f 2
|cut -d ‘ ‘ -f 1
192.168.122.30   //从服务器IP

MySQL:mysql-5.6

[root@server2 ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.36-log Source distribution

一台设想机又克隆了两台

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input
statement.

192.168.102.31  master

mysql> grant replication slave on *.* to ‘test’@’192.168.122.30’
identified by ‘123456’;  //构建二个test用户给slave服务器同步
Query OK, 0 rows affected (0.00 sec)

192.168.102.56  slave

mysql> flush privileges;          //刷新权限表
Query OK, 0 rows affected (0.00 sec)

192.168.102.36  slave

mysql> create database yang;
Query OK, 1 row affected (0.00 sec)

启动/停止

[root@server3 ~]# mysql -u test -h 192.168.122.20 -p  
//slave服务器上的总是测量试验
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.36-log Source distribution

service  mysqld  start|stop|restartsystemctl  start|stop|restart  mysqld

本机的话,直接mysql就可以进去了

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input
statement.

2.
主数据库配置

mysql>

第1步:编辑/etc/my.cnf文件,在[mysqld]下扩张如下两行设置:

[root@server2 ~]# grep -v ‘^#’ /etc/my.cnf |grep -E
‘(server-id|binlog-do*|binlog-ignore*|log-bin)’
log-bin=mysql-bin      //记录二进制日志
binlog-do-db=yang      //同步数据库yang和cacti
binlog-do-db=cacti
binlog-ignore-db=mysql  //不同步mysql和test数据库
binlog-ignore-db=test
server-id       = 1    //server id为1

[mysqld]log-bin=mysql-bin # 非必需server-id=1    # 必需

[root@server2 ~]# service mysqld start  
//重启数据库,必要注意的是在起步数据库前供给破除下已经存在的binlog,从服务器也是那般
Starting MySQL. SUCCESS!

图片 1

[root@server2 ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.36-log Source distribution

图片 2

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input
statement.

第2步:创立用于数据同步的账户

mysql> show master status;  //查看主服务器状态
+——————+———-+————–+——————+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000001 |      106 | yang,cacti   | mysql,test       |
+——————+———-+————–+——————+
1 row in set (0.00 sec)

CREATE USER 'repl'@'192.168.102.%' IDENTIFIED BY '123456';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.102.%';FLUSH PRIVILEGES;

[root@server3 ~]# grep -v ‘^#’ /etc/my.cnf |grep -E
‘(server-id|replicate-do|master|log-bin+)’
log-bin=mysql-bin
server-id       = 2
master-host     =   192.168.122.20 
//定义主服务器的ip,同步用的用户名,密码和端口
master-user     =   test
master-password =   123456
master-port     =  3306
replicate-do-db=yang   //定义yang和cacti七个数据库实行共同
replicate-do-db=cacti

图片 3

[root@server3 ~]# service mysqld start
Starting MySQL. SUCCESS!

第3步:查看master状态

mysql> show slave status\G;

show master status;

*************************** 1. row
***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.122.20
Master_User: test
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 106
Relay_Log_File: server3-relay-bin.000002
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes    //那八个slave状态为OK表示通常
Slave_SQL_Running: Yes
Replicate_Do_DB: yang,cacti

图片 4

图片 5

图片 6

3.
从数据库配置

第1步:编辑/etc/my.cnf文件,设置server-id

[mysqld]server-id=2

第2步:执行一齐语句,并运维slave

change master to master_host='192.168.102.31', master_user='repl', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=514;

图片 7

第3步:查看slave状态

show slave status\G;

图片 8

除此以外一台从数据库也是这么设置

4.
认证是或不是同步成功

在主数据上操作,从数据库中查阅

图片 9

图片 10

5.
安装只读账户

mysql> create user 'pig'@'%' identified by '123456';mysql> grant select on test.* to 'pig'@'%';mysql> flush privileges;

6.
参考

https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html

http://www.cnblogs.com/gl-developer/p/6170423.html

https://www.cnblogs.com/alvin\_xp/p/4162249.html

https://www.cnblogs.com/sos-blue/p/6852945.html

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图