mysql主从服务器配置
部署前提,已安装两台mysql服务器
mysql安装部署步骤:
https://blog.csdn.net/srying/article/details/89339324
1)主服务器配置
编辑配置文件添加如下参数:
>vim /etc/my.cnf
server-id=132
log_bin=linux1 (#指定log前缀)
编辑完成后重启mysql服务
查看mysql库文件:
2)创建一个用于同步数据的用户:
mysql -uroot -pprocar
mysql>flush privileges ;
mysql>grant replication slave on *.* to 'repl'@'10.168.1.47' identified by '123456';
mysql>flush tables with read lock;
mysql> show master status; #记住File 和Position的值
mysql>quit
3)备份主库中所有数据库:
>mysqldump -uroot -proot iiap > /tmp/iiap.sql
4)从服务器配置
编辑配置文件:
>vim /etc/my.cnf
server-id=130
(注:从的server-id要和主的server-id不同。)
文件配置好后重启服务器
配置完成后将主中备份的数据发送到从中,从服务器创建库,执行sql
注意: 该过程要保证主从数据库内容的一致。
5)实现主从:
>mysql -uroot
mysql>stop slave;
mysql>change master to master_host='10.33.80.6',master_user='repl',master_password='123456',master_log_file='linux1.000001',master_log_pos=10844;
注:#file和pos是注服务器查询出来的File 和Position的值
#IP为主的IP;file、pos分别为主的filename和position。
mysql>start slave;
mysql>show slave status\G
问题解决:Slave_IO_Running: No问题
主机器执行:flush logs; 和show master status;
记下:File和Position
从机器执行:
mysql>CHANGE MASTER TO MASTER_LOG_FILE='linux1.000002',MASTER_LOG_POS=154;
mysql>STOP SLAVE;
mysql>START SLAVE;
Slave_SQL_Running: No 问题(原因是从服务器执行了写操作)
从服务器修改执行:
mysql>STOP SLAVE;
mysql>set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql>START SLAVE;
mysql>show slave status\G
6)配置完成后解锁主服务器表:
mysql -u root -p
mysql>unlock tables;
7)测试主从:
在主服务器上操作数据,查看从机器上数据是否变更