Mysql主从复制搭建文档
这是Windows 下的Mysq主从复制的搭建,linux 的也是一样的。
我们先来一些基本命令。
主库的基本命令
- show MASTER STATUS
查看主库的的状态
- GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*
TO mysql_backup@'%'
IDENTIFIED BY '123456';
创建主库的的复制账号密码
从库的基本命令
-
stop SLAVE停止从服务器
-
start slave开启从服务器
-
reset SLAVE重置上一缓存数据
-
show SLAVE STATUS查看丛库状态
-
CHANGE MASTER TO master_host = '127.0.0.1',
master_user = 'mysql_backup',master_password = '123456',master_log_file = 'mysql-bin.000001',master_port=3308,mysql 的端口master_log_pos = 107;mysql主的 连接端口 position从库链接主库
问题描述 :
Slave_IO_Running 线程 和 Slave_SQL_Running线程状态 必须为 Yes 状态 才表示连接成功
如果Slave_IO_State 没有显示 Waiting for master to send event
可能 是从服务器配置问题
把从服务器配置my.ini 中所有空格 和中文注释 先删除掉
如果还是失败 , 去 主从俩个数据库中 mysql数据库中的user表中 删除掉空的权限
如果还不可以 去查询下俩个数据库的版本 大版本一一致 如果差太多 需要在高版本的
数据库my.ini 配置中 加上 binglog_checksum=none 重启这个MySQL 在执行一遍流程
配置文件 看下方
从mysql
[mysqld]
port=3308
basedir=E:\Mysql\mysql-new
datadir=E:\Mysql\mysql-new\data
log_bin=mysql-bin
server_id=2
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1
binlog_do_db=test
binlog_ignore_db=mysql
主mysql
[mysqld]
port=3307
basedir=E:\Mysql\mysql1
datadir=E:\Mysql\mysql1\data
server-id=1
log-bin=mysql-bin
binlog_do_db=test
binlog_ignore_db=mysql
[mysqld]
port=3308
basedir=E:\Mysql\mysql-new
datadir=E:\Mysql\mysql-new\data
log_bin=mysql-bin
server_id=2
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1
binlog_do_db=test
binlog_ignore_db=mysql
主mysql
[mysqld]
port=3307
basedir=E:\Mysql\mysql1
datadir=E:\Mysql\mysql1\data
server-id=1
log-bin=mysql-bin
binlog_do_db=test
binlog_ignore_db=mysql