mysql主从配置。如下环境测试的:
主数据库所在的操作系统:windows server 2012
主数据库的版本:5.7
主数据库的ip地址:阿里服务器IP
从数据库所在的操作系统:windows server 2012
从数据的版本:5.7
从数据库的ip地址:内网IP
配置步骤:
主服务器:
1、确保主数据库与从数据库一模一样。
2、在主数据库上创建同步账号。
GRANT ALL ON test.* TO 'mstest'@'%' IDENTIFIED BY '123456';
test.*:是针对test数据库里的所有表进行配置
%:是针对所有IP开放,针对某个IP换成固定IP
mstest:是新创建的用户名
123456:是新创建的用户名的密码
3、配置主数据库的my.ini(安装版在C:\ProgramData\MySQL\MySQL Server 5.7)。
在文件末尾添加:
#Master Config
server-id=1
log-bin=mysql-bin
binlog-do-db=test //要同步的test数据库,要同步多个数据库,就多加几个binlog-do-db=数据库名
binlog-ignore-db=mysql //要忽略的数据库
4、重启主数据库的mysql服务。
5、登录主服务器的mysql,查询master的状态
mysql>show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 308 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化。
从服务器:
1、配置从数据库的my.ini。
server-id=2 //不可以跟主服务器重复
replicate-do-db=test //要同步的test数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
replicate-ignore-db=mysql //要忽略的数据库
2、重启从服务器mysql服务。
3、配置从服务器Slave。
Mysql>stop slave; //停止从服务器复制功能
Mysql>change master to master_host='主服务器IP',master_user='mstest',master_password='123456',
master_log_file='mysql-bin.000004',master_log_pos=308; //注意不要断开,308数字前后无单引号。
Mysql>start slave; //启动从服务器复制功能
4、检查从服务器复制功能状态。
mysql> show slave status;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 主服务器地址 //主服务器地址
Master_User: mstest //授权帐户名,尽量避免使用root
Master_Port: 3306 //数据库端口,部分版本没有此行
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 600 //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
Relay_Log_File: ddte-relay-bin.000003
Relay_Log_Pos: 251
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
......
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
以上操作过程,主从服务器配置完成。
来源:https://www.cnblogs.com/jiamingshuo/p/6644161.html