好久不折腾mysql主从了,发现5.5交之前的版本,配置上有些变化,趁着夜深人静,重温一下,顺便简单记录一下配置过程。
主从同步master端配置修改my.cnf文件12345678910
vim /etc/my.cnf[mysqld]server-id = 1log-bin = mysql-binbinlog_format = mixedexpire-logs-days = 7binlog-do-db = luxtargetbinlog-ignore-db = mysqlreplicate-do-db = luxtargetreplicate-ignore-db = mysql
新建授权复制用户
12
grant replication slave on *.* to 'slave'@'xxx.xxx.xxx.xxx' identified by 'slave';flush privileges;
重启mysql
1
service mysqld restart
锁定数据库,将数据打包并拷贝至slave
1
flush tables with read lock;
查看master上二进制日志情况,记录file与position
1
show master status;
当数据打包拷贝完毕,解除锁定;
1
ublock tables;
当数据较大时,将数据打包备份比使用mysqldump导入时效率更高
slave端配置修改my.cnf文件
12345678910
vim /etc/my.cnf[mysqld]server-id = 2log-bin = mysql-binbinlog_format = mixedexpire-logs-days = 7binlog-do-db = luxtargetbinlog-ignore-db = mysqlreplicate-do-db = luxtargetreplicate-ignore-db = mysql
重启mysql
1
service mysqld restart
将从master拷贝来的数据导入slave
连接master开始同步
12345
change master to master_host='xxx.xxx.xxx.xxx',master_user='slave',master_password='slave',master_log_file='master-bin.xxxxxx,master_log_pos=xxx;start slave;show slave status\g;
当slave_io_running与slave_sql_running的状态都为running时即可。
半同步配置master端配置安装mysql半同步插件
123
install plugin rpl_semi_sync_master soname 'semisync_master.so';set global rpl_semi_sync_master_enabled = 1;set global rpl_semi_sync_master_timeout = 1000;
修改my.cnf文件
1234
vim /etc/my.cnf[mysqld]rpl_semi_sync_master_enabled=1 #启用半同步rpl_semi_sync_master_timeout=1000 #超时时间为1s
重启mysql
1
service mysqld restart
slave端配置安装mysql半同步插件
1234
install plugin rpl_semi_sync_slave soname 'semisync_slave.so';set global rpl_semi_sync_slave_enabled = 1;stop slave io_thread;start slave io_thread;
修改my.cnf文件
1
rpl_semi_sync_slave_enabled=1 #启用半同步复制
重启mysql
1
service mysqld restart
检查配置master
1234567891011121314151617181920
show global status like 'rpl_semi%';+--------------------------------------------+-------+| variable_name | value |+--------------------------------------------+-------+| rpl_semi_sync_master_clients | 1 || rpl_semi_sync_master_net_avg_wait_time | 0 || rpl_semi_sync_master_net_wait_time | 0 || rpl_semi_sync_master_net_waits | 0 || rpl_semi_sync_master_no_times | 0 || rpl_semi_sync_master_no_tx | 0 || rpl_semi_sync_master_status | on || rpl_semi_sync_master_timefunc_failures | 0 || rpl_semi_sync_master_tx_avg_wait_time | 0 || rpl_semi_sync_master_tx_wait_time | 0 || rpl_semi_sync_master_tx_waits | 0 || rpl_semi_sync_master_wait_pos_backtraverse | 0 || rpl_semi_sync_master_wait_sessions | 0 || rpl_semi_sync_master_yes_tx | 0 |+--------------------------------------------+-------+14 rows in set (0.00 sec)
slave
1234567
mysql> show global status like 'rpl_semi%';+----------------------------+-------+| variable_name | value |+----------------------------+-------+| rpl_semi_sync_slave_status | on |+----------------------------+-------+1 row in set (0.01 sec)
好久不折腾mysql主从了,发现5.5交之前的版本,配置上有些变化,趁着夜深人静,重温一下,顺便简单记录一下配置过程。
主从同步master端配置修改my.cnf文件12345678910
vim /etc/my.cnf[mysqld]server-id = 1log-bin = mysql-binbinlog_format = mixedexpire-logs-days = 7binlog-do-db = luxtargetbinlog-ignore-db = mysqlreplicate-do-db = luxtargetreplicate-ignore-db = mysql
本文出自:http://mayiwei.com/, 原文地址:http://mayiwei.com/2014/02/22/mysql55-master-slave/, 感谢原作者分享。
