MySQL主从配置以及相关注意事项
以我自己配置服务器主从配置为例说明
配置相关配置文件(主服务器我以windows配置文件,从服务器以linux为例)
1. 服务器配置文件
主要需要配置的就是 log_bin(开启数据库日志事件),server_id(必填,随便给个ID就可以),binlog_do_db(需要复制的数据库)
注意:修改配置文件后要以ANSI格式保存 不能以默认的UTF-8格式保存;否则无法启动mysql服务
2. 从服务器配置文件
需要配置的选项: server_id(必填) log_bin(如果需要让从服务器作为master则必须开启日志且 log_slave_updates 设置为1) relay_log(同步中继日志 必填)read_only(推荐设置为1)
3. 配置文件准备好以后,重启mysql服务
主服务器配置
Grant replication slave on *.* to user@’192.168.1.*’ identified by ‘password’;这条语句包括开启master和创建复制账号 (从服务器配置需要)
下面是分开步骤创建账号
此时通过 show master status\G 查看状态 记录 日志文件为mysql_bin.000001 日志位置为120
通过查询user表可以看到创建的从服务器读二进制日志文件的用户slave_user
从服务器配置
1) 先测试主服务器开启的复制账号能否在从服务器上面正常登陆
我测试是可以正常登陆的;如果不能登录,检查账号密码,ip是否正确 ,如果正确,是否在主服务器忘记了刷新权限,如果忘记刷新即可;我主要遇到这些问题,如有其它问题,请自行百度;
2) 从服务器配置主服务器
注意此处master_log_pos=120 不要加引号; 每一个位置都需要检查正确,如果主服务器端口不是3306可以加上 master_port=3307等
Show slave status \G 可以查看到主服务器相关信息;relay_log_pos=4 是因为mysql 读日志是从4位置开始读的; Slave_IO_Running Slave_SQL_Running 都要为YES 才能正常复制 此处是因为我没有start slave;所以才是这样 ;开启slave后
正常之后为:
这样主从配置就完成了;
注意事项
1. 复制前先在从服务器上创建需要复制的数据库(如果是主服务器上面还没有创建,此步骤可忽略);
2. 一定要将备份的数据全部导入到从服务器上以后再开启slave(start slave);(否则有可能你的备份sql会删除掉同步数据)最好是备份数据都最好以后再配置复制;这样就不会出现这个问题;
3. 任何问题都能在此处查看并找到原因解决
最后,祝每一个爱好mysql的道友越来越精通,上述内容如果有错误,请指出,谢谢!