mysql主从同步配置
两台mysql服务器主从同步配置方法如下:
我们假设两台服务器IP分别如下
主master : 192.168.1.10
从slave : 192.168.1.11
一、主服务器要开启允许外网访问,这个mysql开允许外网访问自己谷歌一下
二、
配置主库,授权给从数据库服务器,主数据库登录mysql执行以下命令,创建一个slave用户给192.168.1.11这台从服务器,让它可以通过这个用户名和密码来访问主服务器获取数据:
mysql>CREATE USER 'slave'@'192.168.1.11' IDENTIFIED WITH mysql_native_password BY 'test123456'; mysql>GRANT USAGE ON *.* TO 'slave'@'192.168.1.11'; mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.11'; mysql>FLUSH PRIVILEGES;
三、修改主库配置文件,开启binlog,并设置server-id,每次修改配置文件后都要重启mysql服务才会生效。主服务器的mysql配置文件加入以下内容:
server-id = 1
log-bin=mysql-bin
log-bin-index=mysql-bin.index
sync_binlog=1
binlog-do-db=cmdb #要同步的数据库名
还可以显示 设置不同步的数据库(binlog-do-db和binlog-ignore-db是互斥的,设置其中一个就可以):
binlog-ignore-db = mysql 不同步mysql库和test库
binlog-ignore-db = test
修改配置文件后,重启服务:service mysqld restart
四、查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复。执行以下命令:
mysql>show master status; +---------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +---------------+----------+--------------+------------------+ | binlog.000001 | 13034 | cmdb | | +---------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
五、配置从库。也是从服务器的mysql配置文件里面加入以下内容:
server-id=2 replicate-do-db=cmdb
六、登录从库mysql,输入以下命令:
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_PORT=3306, MASTER_USER='slave', MASTER_PASSWORD='test123456', MASTER_LOG_FILE='binlog.000001', MASTER_LOG_POS=13034; #后面两个参数的值与主库保持一致 mysql> start slave ; Query OK, 0 rows affected (0.04 sec) 七、查看同步状态 在从库mysql命令行输入 show slave status\G; 查看slave的状态,如果下面两项值为YES,则表示配置正确: Slave_IO_Running: Yes Slave_SQL_Running: Yes
七、如果以上两个不是YES,可以执行以下内容:
mysql> reset slave; Query OK, rows affected ( sec) mysql> start slave IO_THREAD; Query OK, rows affected ( sec) mysql> stop slave IO_THREAD; Query OK, rows affected ( sec) mysql> reset slave; Query OK, rows affected ( sec) mysql> start slave; Query OK, rows affected ( sec) mysql> show slave status\G
应该就正确了。