MySQL主从同步的配置

学思创的头像
学思创
203

一. 准备工作

1. 选择一个服务器当做主服务器,将服务器上需要用到的数据库进行备份.
2 .安装从库的MySQL,需要与主服务器的版本保持一致(或者主MySQL版本不能高于从MySQL版本).
3 .将主服务器上的数据同步到从库中.(主从同步只会同步创建同步之后的数据操作,对于原有的数据不会同步)

二.配置主数据库

(1).修改配置文件

在my.cnf(linux在/etc/my.cnf;window在MySQL安装目录)中添加配置下面代码

log-bin=mysql-bin
server-id=1

(2).重启 mysql 服务,让配置生效

(3).创建拥有从节点同步权限的用户(不可直接复制执行,需下面提示把对应值替换)

GRANT REPLICATION SLAVE ON *.* TO 'userName'@'%' IDENTIFIED BY 'yourPassword';

其中 userName 为用户名,yourPassword 为密码

刷新权限

FLUSH PRIVILEGES;

 

查询主库状态

show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB Executed_Gtid_Set
mysql-bin.000047 6192      

记录下 File ,Position 字段的值,其中 File 为操作日志文件,Position 为指针位置,这两个字段是数据同步的关键

三.配置从数据库

(1).修改配置文件

在/etc/my.cnf中添加配置下面代码

server-id=2

如果有多台从服务器server-id=的值不能有相同的,可以递增

(2).重启 mysql 服务,让配置生效

(3).执行同步语句(不可直接复制执行,需下面提示把对应值替换)

CHANGE MASTER TO MASTER_HOST='masterServerIp', MASTER_PORT=masterPort, MASTER_USER='masterUser', MASTER_PASSWORD='masterPassword', MASTER_LOG_FILE='masterLogFile', MASTER_LOG_POS=masterPosition;

其中 masterServerIp:为主库服务器地址(ip或域名)

masterPort:为主库 mysql 端口(需要确保外网可访问)

masterUser:为刚创建的用于向从库同步数据的用户

masterPassword:为刚创建的用于向从库同步数据的用户密码

masterLogFile:为主库的日志文件名,对应字段 File

masterPosition:为主库指针位置,对应字段 Position

(4).启动从库同步

start slave;

查询从库同步状态

show slave status;

主要关注字段: Slave_IO_Running,Slave_SQL_Running,这两个字段值为 Yes 则从库同步状态良好
至此,数据库同步的配置已经基本完成

四. 从库设置只读用户、

登录从库,添加只读用户

GRANT SELECT ON *.* TO 'userName'@'%' IDENTIFIED BY 'yourPassword';

 

其中 userName 为数据库用户名,yourPassword 为用户密码
刷新权限

FLUSH PRIVILEGES;

 

在连接从库时使用只读用户.

 

用户评论
评论列表