在两台机器上安装MySQL.主机地址分别为:
Master:192.168.11.104
Slave:192.168.11.103
启动mysql服务:/etc/init.d/mysql start
修改主库的配置文件 my.cnf (属性说明自行百度)
修改从库的配置文件 my.cnf
进入从库,配置主库,执行:
change master to master_host="192.168.11.104",
master_user = 'root',master_password = '123456',
master_port = 3306,master_log_file='mysql-bin.000003',
master_log_pos = 107,master_connect_retry = 30;
可能出现错误:解决方案 。
slave_io_running = yes
slave_sql_running = yes
则成功!
此时可以愉快的主从同步了。写的比较简单,请大家看看就行。
关闭running中的从库:在从库,使用命令 stop slave
如果 slave这边的IO_Running为NO的话;
刷新master的log: flush logs;
重新获取
stop slave;
填入最新的数值,再次执行
change master to master_host="192.168.11.104",
master_user = 'root',master_password = '123456',
master_port = 3306,master_log_file='mysql-bin.000003',
master_log_pos = 107,master_connect_retry = 30;
start slave;
至此解决!
如何将主库在同步之前的数据加载到新开的从库里呢?
首先将主库上read lock,
flush tables with read lock;
将数据库数据导出到sql文件,
mysqldump -p3306 -uroot -p --add-drop-table test > /home/nginx--/chen/sql_tmp/user.sql;
解锁
unlock tables;
在从库创建相应的database,然后将sql文件注入到mysql中;
mysql -uroot -p test < /home/nginx--/chen/sql_tmp/user.sql
注意:这里的主从同步是单向主从,还可以配置双向主从,会有少许问题。一般情况下,单向主从就已经能够满足业务需求了。
下一篇将写写读写分离,需要使用到数据库中间件MyCat .