mysql主从复制的配置总结
首先确定安装配置的环境
centOS7,mysql5.6
在配置之前要保证的几个点
1、系统防火墙,如果只是测试,可以关闭防火墙,如果不是测试,请开发需要使用的端口号,如3306;
开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
关闭防火墙
systemctl stop firewalld.service
让防火墙重启之后也是关闭的
systemctl disable firewalld.service
2、两台机器可以互相访问,ip必须都能互相ping通。
3、两台机器最好不要使用虚拟机的克隆功能,让mysql重新安装过,这样mysql的配置文件会不一样,避免了一些错误。
4、保证两台机器的mysql版本相同,数据库,表相同。
5、数据库需要远程可以访问,需要给出任意或者确定的ip可以访问到数据库,不能让数据库只有本地能访问。
使用下面的命令可以使任意ip用户可以访问;
mysql>grant all privileges on *.* to 'root'@'%' identified by '这里是root的密码' with grant option;
配置步骤
修改主服务器master:
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin
server-id=1
修改从服务器slave:
#vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin
server-id=2
重启两台服务器的mysql
/etc/init.d/mysqld restart
登录主服务器的mysql,查询master的状态
mysql>show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000021 | 120 | | | |
+------------------+----------+--------------+------------------+-------------------+
!注意!这两个值需要记住,记住之后请不要动主服务器的mysql,否则这两个值会改变。
配置从服务器Slave
mysql>change master to master_host='192.168.75.128',master_user='root',master_password='这里是root的密码',master_log_file='mysql-bin.000021',master_log_pos=120;
然后启动
mysql> start slave;
使用下面的命令查看状态
mysql> show slave status\G
看到这两个状态都是Tes才算成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果有任意一个状态为no那么查看下面四个显示的错误是什么
Last_IO_Errno: 1593
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
一些基本错误都可以百度出来,还是比较容易解决的。
看到两个YES之后,那么你就可以测试一下主从复制的数据库是否能有用了。
主服务器添加之后从服务器应该会有一条一模一样的记录。
最后需要考虑的点
首先主从mysql的复制,只是在主服务器改了之后,从服务器会做出相应的变动,而从服务器的改动不会影响主服务器。
所以在设计数据库服务器架构的时候就要考虑,实际的情况。
如果你只是用从服务器来备份数据,那么完全可以。
如果你要实现的是读写分离,然后减少读服务器的压力,那么读取可以读从服务器,而且可以多弄几台服务器作为从服务器。
如果你需要两台服务器都可以互相复制,那么两台服务器需要互相做主从。
还有一些架构就要看具体情况了,网上有很多可以用的架构。
如果要复制特定的数据库,修改my.cnf
binlog-do-db=要复制的数据库名字
binlog-
ignore
-db=不要复制的数据库名字,mysql,test
参考的网站
一个是高性能mysql的一些摘录
http://blog.csdn.net/hguisu/article/details/7325124/
一个是简单的配置记录
http://369369.blog.51cto.com/319630/790921/