windows mysql主 Linux mysql 从 主从同步,读写分离
Mysql –master linux-slave
一、My.ini:
Server-id=1
relay-log=relay-bin
relay-log-index=relay-bin-index
binlog-do-db = studyyii
重启服务器
登陆mysql
Mysql –u root –p
在主数据库建立slave连接的权限:
mysql> grant replication slave,reload,super on *.* to 'root'@'172.31.80.31' iden
tified by 'root';
(root为连接的账号,IP 和密码)
Show master status;
记住,以前我没设置权限,显示的position为120 一直因为没开权限么启动
至此,Windows mysql master 设置完毕
二、打开Linux mysql
Vi /etc/my.cnf #根据你服务器MySQL的设置来编辑,编辑mysql的配置文件
在MySQLd下面添加配置:
server_id = 2 #从服务器标识,范围1---2E32-1
log_bin = mysql_bin
binlog_do_db = studyyii
binlog_ignore_db = mysql
replicate-ignore_db = mysql #不同步的数据库名称,多个可以重复该配置
:wq 保存退出
Service mysql restart #我的mysql是5.6.23 已经添加为系统服务,其它一下版本是mysqld ,反正就是重启mysql,根据自己的配置来
Mysql –u root –p #连接mysql
设置连接master:
mysql->change master to master_host='172.31.80.26',master_user='root',master_password='root', master_log_file='mysql-bin.000014',master_log_pos=344;
#连接的账户 IP 密码为mastermysql的。Master_log_file 和log_pos 为前期Windows mysql的show master status 中看到。
出现OK之后
Start slave;启动slave
查看状态
Show slave status\G;
Slave_IO_State: Waiting for master to send event Master_Host: 172.31.80.26 Master_User: root Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000014 Read_Master_Log_Pos: 344 Relay_Log_File: localhost-relay-bin.000002 Relay_Log_Pos: 283 Relay_Master_Log_File: mysql-bin.000014 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: mysql
当slave_IO_Running 和Slave_SQL_Running 都为yes 说明配置成功。
如果IO_Running 为connecting 说明一直在连接,你的配置是有问题的,
检查master 是否有错误,检查slave连接master是否有问题,
然后你就看到更改数据 数据库可以同步了。
注: 如果添加多个从数据库,配置my.cnf id要更换一下,另外就是master要记得加上权限,
mysql> grant replication slave,reload,super on *.* to 'root'@'172.31.80.31' iden
tified by 'root';