一. 找到mysql 的配置文件 my.ini
mysql 的安装位置下面 一般默认位置是(C:\Program Files (x86)\MySQL\MySQL Server 5.5)
二. Mysql 主从配置
主(23.152.6.53) , 从(23.152.6.57)
① 在 my.ini 文件 内 [mysqld] 加入
主 (23.152.6.53)
server_id = 1 #唯一 ,要与备机的不同
log-bin= mysql-bin #开启二进制日志
binglog-do-db = test
# 或者可以写 "C:\Program Files (x86)\MySQL\MySQL Server 5.5\mysql-bin ";
从 (23.152.6.57)
server_id = 2 #唯一 ,要与备机的不同
log-bin= mysql-bin #开启二进制日志
# 或者可以写 "C:\Program Files (x86)\MySQL\MySQL Server 5.5\mysql-bin ";
ex:
配置完成之后 重启 俩台机器的服务. 会在 安装目录下出现一个 mysql-bin.00000x 文件
② 在主(53) 下进行下列操作
CREATE USER '使用名'@'备机IP地址' IDENTIFIED BY '密码';#创建用户
ex: create user 'bfk' @23.152.6.57 identified by '123456';
GRANT REPLICATION SLAVE ON *.* TO '使用名'@'备机IP地址';#分配权限
ex: grant replication slave on *.* to 'bfk' @ '23.152.6.57'
然后刷新权限
flush privileges;
PS: 如果想进行主主的 那么就在 从(57) 里面 也进行 ②的操作
③建好用户之后 show master status ; # 查看主的状态;
ex: show master status;#查看master状态
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 107 | test | |
+------------------+----------+--------------+------------------+
解释一下参数的含义:
File : 二进制日志的文件
Postitrion: 提供连接的POS 参数
Binlog_Do_DB : 需要同步的数据库
Binlog_Ignore_DB : 不需要同步的数据
(这些需不需同步的 都是 可以在 my.ini 文件 设置的 binlog-do_db: xxx 就是需要 ignore_db 就是不需要)
其中 File 和 Postition 这俩个参数比较重要, 在下一步会用到
————————————————
④ * 最重要的一步, 连接俩个库
从 从库(57) 注意是从库!!!
执行 change master to master_host='23.152.6.53',master_user='bfk'#刚才建的账号#,
master_password='123456',master_log_file='mysq-bin.000001' ,#第三步记下来的那个File#
master_log_pos=107 #第三步记下来的值#
整理 :
Master_Host='主机的IP 地址'
Mastet_USER='主服务器提供出来连接的账号'
Master_Password='密码'
Master_LOG_FILE='二进制日志文件'
Master_LOG_POS='POS值'
成功之后 查看一下状态
mysql>show slave status\G; #查看slave状态
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 23.152.6.53
Master_User: bfk
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 107
Relay_Log_File: mysqld-relay-bin.00001
Relay_Log_Pos:
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
————————————————
这张图是 主主之后的!!!
其中只需要注意俩个地方 下面俩个都为YES 那么就成功了
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果Slave_IO_Running 为 NO 那么你检查一下 Server_id 主从是不是都设置成一样的了 !!或者(这是我犯过的傻) 第四步 你是在 主库进行的!!
二. Mysql 主主配置
原主库(53)配置文件中加入:
replicate-do-db=test
auto-increment-offset=1
auto-increment-increment=2
原从库(57)配置文件中加入:
replicate-do-db=test # 指定同步的库
auto-increment-offset=2
auto-increment-increment=2
说明:
log-bin :需要启用二进制日志
server-id : 用于标识不同的数据库服务器
binlog-do-db : 需要记录到二进制日志的数据库
binlog-ignore-db : 忽略记录二进制日志的数据库
auto-increment-offset :该服务器自增列的初始值。
auto-increment-increment :该服务器自增列增量。
replicate-do-db :指定复制的数据库
replicate-ignore-db :不复制的数据库
relay_log :从库的中继日志,主库日志写到中继日志,中继日志再重做到从库。
log-slave-updates :该从库是否写入二进制日志,如果需要成为多主则可启用。只读可以不需要。
这里还提供了一个 交换整个库 都是某些表不交换的设置
replicate-do-db=test
replicate-ignore-table=test.rep_t3
意思为 交换整个 test 库. 但是 rep_t3 库 不进行交换
下面修改,和遇到的坑,持续更新
参考连接: https://blog.csdn.net/wangli1281/article/details/81134476