差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
zh:常见问题及解答:mysql主从复制 [2016/12/23 07:52]
liuxl
zh:常见问题及解答:mysql主从复制 [2017/12/12 03:05] (当前版本)
行 1: 行 1:
-<​note>​本篇文章介绍如何设置mysql的主从复制功能,实现同步本地与远程服务器的mysql增加、修改、删除数据。实验已本地两台虚拟机模拟master的IP地址192.168.1.80,设置推送mysql数据内容给slave服务器,slave的主机IP地址为192.168.1.80,设置只复制master推送来的astercc10库的数据。</​note>​+<​note>​本篇文章介绍如何设置mysql的主从复制功能,实现同步本地与远程服务器的mysql增加、修改、删除数据。实验已本地两台虚拟机模拟master的IP地址192.168.1.80,设置推送mysql数据内容给slave服务器,slave的主机IP地址为192.168.1.248,设置只复制master推送来的astercc10库的数据。</​note>​
  
 ===== 一、修改配置文件my.cnf。 ===== ===== 一、修改配置文件my.cnf。 =====
行 5: 行 5:
 ==== 【master的my.cnf配置】 ==== ==== 【master的my.cnf配置】 ====
  
-  ​- 添加 log-bin=mysql-bin ​启用二进制日志,master必须,slave可选。 +  ​*设置启用二进制日志,master必须,slave可选添加如下: 
-  - 添加 ​server-id=可以是1,也可以取主机IP最后一段 + 
-  - 添加 binlog-do-db=ccupdate +<​code>​log-bin=mysql-bin</​code>​ 
-  ​添加 binlog-ignore-db=mysql+ 
 +  *设置mysql服务器标识,可以是1,也可以取主机IP最后一段,添加如下: 
 + 
 +<​code>​server-id=1</​code>​ 
 + 
 +  ​*设置要推送的数据库binlog-do-db=ccupdate,添加如下: 
 + 
 +<​code>​binlog-do-db=ccupdate</​code>​ 
 + 
 +  ​*设置忽略mysql相关信息,添加如下: 
 + 
 +<​code>​binlog-ignore-db=mysql</​code>​
  
 ==== 【slave的my.cnf配置】 ==== ==== 【slave的my.cnf配置】 ====
  
-  ​- 添加 server-id=2 ​可以是2,也可以取从机IP最后一段,master、slave必须不一样 +  ​*设置mysql服务器标识,可以是2,也可以取从机IP最后一段,master、slave必须不一样,添加如下: 
-  - 添加 replicate_wild_do_table=ccupdate.% + 
-  ​添加 replicate_wild_ignore_table=mysql.%+<​code>​server-id=2</​code>​ 
 + 
 +  *设置要更新的slave库,添加如下: 
 + 
 +<​code>​replicate_wild_do_table=ccupdate.%</​code>​ 
 + 
 +  ​*设置要忽略更新mysql相关信息,添加如下: 
 + 
 +<​code>​replicate_wild_ignore_table=mysql.%</​code>​
  
 ===== 二、在master服务器上建立授权帐户并授权。 ===== ===== 二、在master服务器上建立授权帐户并授权。 =====
  
-1、执行 ​grant replication slave on *.* to '​master'​@'​192.168.1.248'​ identified by '​123456';​+执行如下:
  
-<note tip>​解决grant replication slave ont 操作提示密码PASSWORD(),执行 show variables like '​old_passwords';​若得到old_passwords = 1,则执行set old_passwords=0;​解决该问题。+<​code>​grant replication slave on *.* to '​master'​@'​192.168.1.248'​ identified by '​123456';</​code>​ 
 + 
 +<note tip>​解决grant replication slave ont 操作提示密码PASSWORD(),执行: 
 +<​code>​show variables like '​old_passwords';​</​code>​ 
 +若得到old_passwords = 1,则执行: 
 +<​code>​set old_passwords=0;​</​code>​解决该问题。
 </​note>​ </​note>​
-===== 三、登录master服务器mysql控制台并配置。 =====+ 
 +===== 三、登录master服务器mysql控制台并配置。 =====
  
 {{:​zh:​常见问题及解答:​selection008.png?​750|}} {{:​zh:​常见问题及解答:​selection008.png?​750|}}
  
-  ​- 执行 flush tables with read lock; 刷新所有表并且阻止其它写入。 +  ​*刷新所有表并且阻止其它写入执行如下: 
-  - 执行 ​show master status; 查看主服务器主从状态,记录表中File、Position下的值。 + 
-  ​此后不要再操作主服务器mysql,防止主服务器状态值变化,勿退出mysql防止read unlock发生。 +<​code>​flush tables with read lock;</​code>​ 
-  ​另开一个shell执行mysqldump -pastercc --databases astercc10 > astercc10.sql备份master的astercc10库并还原给slave+ 
 +  *查看主服务器主从状态,记录表中File、Position下的值。 
 + 
 +<​code>​show master status;</​code>​ 
 + 
 +  ​*此后不要再操作主服务器mysql,防止主服务器状态值变化,勿退出mysql防止read unlock发生。 
 + 
 +  ​*另开一个shell备份master的astercc10库执行
 + 
 +<​code>​mysqldump -pastercc --databases astercc10 > astercc10.sql</​code>​ 
 + 
 +  *还原给slave的astercc10库执行: 
 + 
 +<​code>​mysql -pastercc < astercc10.sql</​code>​
  
 ===== 四、登录slave服务器的mysql控制台并配置。 ===== ===== 四、登录slave服务器的mysql控制台并配置。 =====
  
-  ​执行 change master to master_host='​192.168.1.80',​master_user='​ccmaster', master_password='​passw0rd', master_log_file='​mysql-bin.000001',​ master_log_pos=Position值(无引号); ​使slave获得master的复制权限。 ​     ​ +  ​*使slave获得master的复制权限,执行:    
-  ​- 执行 start slave; ​启动服务器复制功能。 + 
-  - 执行 ​show slave status\G ​检查从服务器主从复制功能状态 +<​code>​change master to master_host='​192.168.1.80',​master_user='​master', master_password='​123456', master_log_file='​mysql-bin.000001',​ master_log_pos=Position值(无引号);​</​code>​ 
-  ​其中参数Slave_IO_Running: ​Yes 和 Slave_SQL_Running: ​Yes 状态均为Yes。参数Last_IO_Errno:​ 0,Last_IO_Error:​,Last_SQL_Errno:​ 0,Last_SQL_Error:​ ,无错误信息,则主从复制功能已经实现。+  ​ 
 +  *启动slave服务器复制功能执行: 
 + 
 +<​code>​start ​slave;</​code>​ 
 + 
 +  *检查从服务器主从复制功能状态,执行: 
 + 
 +<​code>​show slave status\G</​code>​ 
 + 
 +  ​*其中参数 ​Slave_IO_Running:​” 和 Slave_SQL_Running:​” 状态均为 ​Yes。参数Last_IO_Errno:​ 0,Last_IO_Error:​,Last_SQL_Errno:​ 0,Last_SQL_Error:​ ,无错误信息,则主从复制功能已经实现。 
 {{:​zh:​常见问题及解答:​selection009.png?​750|}} {{:​zh:​常见问题及解答:​selection009.png?​750|}}
 +
 +  *解锁master的tables
 +
 +<​code>​unlock tables;</​code>​
  
 <note tip>​1、如果 master 用的 mysql5.6 , binlog_checksum 默认设置的是 “crc32”,并且 slave 用的 5.5 或者更早的版本,请将 master 的 binglog_checksum 设置为 none。 <note tip>​1、如果 master 用的 mysql5.6 , binlog_checksum 默认设置的是 “crc32”,并且 slave 用的 5.5 或者更早的版本,请将 master 的 binglog_checksum 设置为 none。
zh/常见问题及解答/mysql主从复制.1482479561.txt.gz · 最后更改: 2017/12/12 03:11 (外部编辑)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki