前两天配置了Mysql主从,再记录如下,以备下次查看。
主服务器设置
1、登录Master服务器,修改my.cnf,添加如下内容;
[mysqld]
server-id = 53 #//数据库ID号, 为1时表示为Master,其中master_id必须为1到232–1之间的一个正整数值;
log-bin=mysql-bin #//启用二进制日志;
binlog-do-db=dbname #//需要同步的二进制数据库名;
binlog-ignore-db=mysql /#/不同步的二进制数据库名;这个同步后听说很麻烦,不同步;
log-slave-updates #//把更新的记录写到二进制文件中;
slave-skip-errors=all #//跳过错误,继续执行复制;
2、建立同步用mysql账号,指定允许访问的IP为从服务器IP
mysql> #GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* to rslave@192.168.33.54 identified by '83ea4e19efe34874b50';
mysql> FLUSH PRIVILEGES;
到从服务器上验证登陆:
mysql -urslave -p83ea4e19efe34874b50 -h192.168.33.53
3、写锁定 flush tables with read lock;
4、导出数据mysqldump -uroot -p dbname > webdb.sql
从服务器设置
新版本与老版本的Mysql从服务器设置方式不一样,据说是以5.1.7版为分界线,具体请自己尝试。
老版本的Mysql配置文件[mysqld]后添加:
server-id = 54
log-bin=mysql-bin
master-host = 192.168.33.53
master-user = rslave
master-password = 83ea4e19efe34874b50
master-port = 3306
master-connect-retry=60 #//如果发现主服务器断线,重新连接的时间差
replicate-ignore-db=mysql #//不需要备份的数据库;
replicate-do-db=dbname #//需要备份的数据库
log-slave-update
slave-skip-errors = all #//跳过错误,继续执行复制;
重启Mysql服务后执行:
mysql> start slave;
新版本的Mysql配置文件[mysqld]后添加:
server-id = 61
log-bin=mysql-bin
并执行下面命令:(每次重启都要重新配置)
mysql> stop slave;
mysql> change master to master_host='192.168.33.53',master_user='rslave',master_password='83ea4e19efe34874b50';
mysql> start slave;
验证设置是否正确:
mysql> show slave statusG;
主要是看以下两项是否为YES:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes