mysql主从服务器的搭建
MySQL的主从服务器环境用于备份与同步,主从环境(master/slave)可以把一个MySQL服务器上的数据复制到另一个服务器上去。使用单向同步的好处是稳健、高速、系统易于管理。
有了master/slave机制后,就更稳健了。当master上发生问题时,可以把slave作为备用切换过去。可以在slave和master之间分担一些查询,这就能加速响应时间。SELECT
另一个好处是可以在slave上备份数据,无需干扰master。备份数据时master照样继续运作。
搭建方法:
1.
2.
在配置文件my.cnf中有一条语句:
[mysqld]
!include /home/mysql/mysql8892/etc/mysqld.cnf
表示包含/home/mysql/mysql8892/etc/mysqld.cnf文件的配置,所以只需要修改mysqld.cnf中的内容。
[mysqld]
# server-id必须是唯一的,在1 到 2^32 – 1之间取值
server-id
# 二进制日志– 主库必须开启
log-bin = mysql-bin-m
从服务器中mysqld.cnf的内容如下:
[mysqld]
server-id
#在从库开启该选项,避免在从库上进行写操作,导致主从数据不一致(对super权限无效)
read-only
report-user = mysqlsync
report-host = localhost
report-port =8893
skip-slave-start
master-host = 127.0.0.1
master-user =mysqlsync
master-port = 8892
relay-log =mysql-relay
relay-log-info-file = mysql-relay.info(中继日志信息文件,默认为mysql-relay.info)
replicate-wild-do-table =example1.%
replicate-do-table =
# 同步过程中需要忽略的表,支持正则表达式。全库同步时,必须屏蔽mysql系统库和test测试库
replicate-wild-ignore-table =mysql.%
replicate-wild-ignore-table = test.%
replicate-rewrite-db =from_name->to_name
slave-net-timeout = 3600 (在所设置的时间内如果没有接收到来自主库的更新,从库则认为和主库的连接断开或失效,重新建立和主库的连接,默认为3600秒,可根据实际需求调整)
max_allowed_packet = 32M (任何生成的中间字符串的最大大小。默认为16M,最低配置32M,且不能小于主库该项的值)
3.
配合mysql> show slave status \G语句可以每一项单独进行修改。
4.
同步用户的权限设置见规范文档
命令:mysql> grant replicationslave
关于mysql用户管理见其他日志。
5.
主库可以查看状态
mysql> show processlist \G
mysql> show master status;
从库查看状态:
mysql> show slave status;
从库的Slave_IO_Running和Slave_SQL_Running状态都为Yes,说明同步正在执行。
同步过程如下图所示: