mysql 主从复制 双向同步 读写分离

mysql 主从复制 双向同步 读写分离

我的测试环境为实体机(192.168.1.232)作为主和一台虚拟机(192.168.1.63)作为从

在建立主从关系前,建议主机先清理下日志文件,因为主从关系是根据日志取得关联,

windows下放在mysql/data linux 下放在/var/lib/mysql,清理前可以先查看有什么日志

mysql命令行下运行清理:reset master

复制主服务器的数据库到从服务器的数据库中

1.通过授权grant命令添加从机用户

grant replication slave on *.* to ‘slave1’@’192.168.1.%’ identified by “123456”; //*.*表示所有数据库 所有表..%表示通配符.表示192.168.1.网段下的所有主机都能用此帐号登录

2.修改mysql配置文件

windows下的配置文件一般在根目录下名为my.ini .. linux 的配置文件一般在/etc/mysql下名为my.cnf

修改文件中 [mysqld]配置下的内容,.加入以下内容

server-id = 1  //唯一的一个数字,不能与从机重复,,主机建议设置为1

log-bin=mysql-bin  //开启mysql的log日志,,

log-bin-index=master-bin.index  //或许要加上

binlog-do-db = test  //需要主从复制的表名,,实验证明以’,’号隔开会导致主从复制失败..需要多个数据库建议写成多行

binlog-ignore-db = mysql //忽略复制的表

到此主机的配置已经完成.第三步开始从机的配置

3.修改从机的mysql配置文件

server-id = 1  //唯一的一个数字,不能与从机重复,,主机建议设置为1

log-bin=mysql-bin  //开启mysql的log日志,,

log-bin-index=master-bin.index  //或许要加上

binlog-do-db = test  //需要主从复制的表名,,实验证明以’,’号隔开会导致主从复制失败..需要多个数据库建议写成多行

binlog-ignore-db = mysql //忽略复制的表

4.建立从机与主机的关系,输入一下命令

change master to master_host=’192.168.1.232′,master_user=’slave1‘,master_password=’123456’, master_log_file=’mysql-bin.000001′,master_log_pos=1880;

master_host是主服务器ip地址

master_user,master_password是在服务器中创建的从机帐号密码

master_log_file,master_log_pos 是在主服务器中输入show master status中获取的信息

5.测试是否已经建立主从关系

在从机mysql命令下行输入 show slave status\G;  查看Slave_IO_Running: Yes Slave_SQL_Running: Yes,,若这两个值都为Yes则成功连接

mysql 主从复制 双向同步 读写分离-index-0

6.测试数据是否同步

尝试在主机插入或修改数据..看从机的数据是否跟着修改

注意事项

mysql 默认是会启动开启slave..如果想设置启动不开启slave,在mysqld中加入 skip-slave-start

mysql 主从复制 双向同步 读写分离-index-1

注意,,,不能在从机上修改同步的数据,,不然会造成同步失败,,需要从新同步!!!!

从新同步方法

1,从机mysql环境下

stop slave;

reset slave all;

清空要同步的表,重新导入主机的表

再次建立主从关系

change master to master_host=’192.168.1.232′,master_user=’slave1‘,master_password=’123456’, master_log_file=’mysql-bin.000002′,master_log_pos=120;

然后

start slave;

再测试是否同步成功

7.后续如何增加同步的数据库

7.1 修改主机和从机的数据库配置文件.加入需要同步的数据库

7.2 导出新加的数据库(有需要要加入只读锁,防止导出导入时..数据有变化)..并导入到从机的数据库中

7.3 重启主机mysql

7.4 主机mysql命令行下执行下面三行命令,第三行需要根据要求修改内容

stop slave

reset slave all

change master to master_host=’192.168.1.232′,master_user=’slave1‘,master_password=’123456’, master_log_file=’mysql-bin.000002′,master_log_pos=120;

7.5 重启从机mysql

7.6 进去到mysql命令行.start slave

7.7 完毕..检查是否同步成功

参考的基础知识文章

http://yunnick.iteye.com/blog/1845301

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇