文章会有【原创】或者【转载】标示,部分来自Google Baidu的学习结果 {Java/PHP/Python/Ruby/Go}

MySQL主从服务器配置方法及注意事项  


主服务器 IP:192.168.0.1

从服务器IP:192.168.0.2

1、打开主服务器的mysql 配置文件 (默认linux下为:my.cnf,Windows下为:my.ini)

2、找到[mysqld]节点,添加或修改成以下内容。

server-id=1 #服务器ID
log-bin=mysql-bin01
binlog-do-db=test #这里设置需要在主服务器记录日志的数据库,只有在这里设置了的数据库才能被复制到从服务器
binlog-ignore-db=mysql #这里设置在主服务器上不记度日志的数据库
expire_logs_days=10

3、进入主服务器的mysql控制台,执行 show master status;

a1

4、执行 SHOW VARIABLES LIKE "%log_bin%";  查看主服务器的binlog是否开启。 log_bin 这项 为 ON 的话就表示已开启。

a2

5、在主服务器上创建从服务器使用的帐号并给予相应的权限(主要是replication slave权限),为避免配置过程中出现问题,可以也给予 reload,super权限,配好后再跟据实际情况取消。

grant replication slave, reload, super on *.* to 'backup'@'192.168.0.1' identified by '123456'; #backup是用户名,123456是密码

6、至此主服务器已设置完成。

7、接下来打开从服务器的mysql配置文件。在[mysqld]节点下,添加或修改成。

server-id=2
log-bin=mysql-bin02
replicate-do-db=test
replicate-ignore-db=mysql
expire_logs_days=10

#下面的配置只在mysql 5.1.7 之前的版本才有效。

master-host=192.168.0.1
master-user=backup
master-password=123456
master-port=3306

8、如果你是mysql 5.1.7之后版本的话,要进入从服务器的mysql控制台,使用命令设置。

change master to
master_host='192.168.0.1',
master_user='backup',
master_password='123456',
master_log_file='mysql-bin01.000001',  #此处填写主服务器的日志文件名,文章上方主服务状态信息中的File的值,上面已用红色强调。
master_log_pos=4887; #此处填写主服务器日志文件记录的位置,文章上方主服务状态信息中的Position的值,上面已用红色强调。

9、执行上面命令后,再执行start slave,用启动从服务器模式。

10、可以使用 show processlist 查看进程,进程状态如和下方红色内容一样的话,说明从服务器运行正常,已经连接上主服务器,开始接受并执行日志。

a3

11、然后最好重启一下从服务器的MySQL。

12、在从服务器的MySQL控制台,使用show slave status; 命令,查看从服务器的运行状态。显示结果中以下两项都为Yes的话,那说明正常。

  1. Slave_IO_Running: Yes  
  2. Slave_SQL_Running: Yes

13、在主服务器上Test数据库创建表,写入数据,然后到从服务器上查看Test数据库有没有进行同步。

至此如果同步没问题的话就完结了,如果有错误的话,恭喜你,可以等我下一章来介绍一些常见错误及如何解决。