这是本文档旧的修订版!


A PCRE internal error occured. This might be caused by a faulty plugin

<note>本篇文章介绍如何设置mysql的主从复制功能,实现同步本地与远程服务器的mysql增加、修改、删除数据。实验已本地两台虚拟机模拟master的IP地址192.168.1.80,设置推送mysql数据内容给slave服务器,slave的主机IP地址为192.168.1.248,设置只复制master推送来的astercc10库的数据。</note> ===== 一、修改配置文件my.cnf。 ===== ==== 【master的my.cnf配置】 ==== *设置启用二进制日志,master必须,slave可选,添加如下: <code>log-bin=mysql-bin</code> *设置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配置】 ==== *设置mysql服务器标识,可以是2,也可以取从机IP最后一段,master、slave必须不一样,添加如下: <code>server-id=2</code> *设置要更新的slave库,添加如下: <code>replicate_wild_do_table=ccupdate.%</code> *设置要忽略更新mysql相关信息,添加如下: <code>replicate_wild_ignore_table=mysql.%</code> ===== 二、在master服务器上建立授权帐户并授权。 ===== 执行如下: <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> ===== 三、登录master服务器的mysql控制台并配置。 ===== {{:zh:常见问题及解答:selection008.png?750|}} *刷新所有表并且阻止其它写入,执行如下: <code>flush tables with read lock;</code> *查看主服务器主从状态,记录表中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获得master的复制权限,执行: <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服务器复制功能执行: <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|}} <note tip>1、如果 master 用的 mysql5.6 , binlog_checksum 默认设置的是 “crc32”,并且 slave 用的 5.5 或者更早的版本,请将 master 的 binglog_checksum 设置为 none。 可以在控制台上执行: <code>set global binlog_checksum='NONE';</code> 或写入my.cnf永久生效添加 <code>binlog_checksum=NONE</code> 2、mysql显示中文为问号,mysql终端上执行 <code>set character-set-server = utf8</code> 永久生效my.cnf中加入 <code>character-set-server=utf8</code></note>

zh/常见问题及解答/mysql主从复制.1482896683.txt.gz · 最后更改: 2017/12/12 03:11 (外部编辑)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki