主从同步配置步骤
- 我的MYSQL是解压免安装版的,端口很简单
- 将压缩包解压后,文件夹中有一个my-defult.ini文件复制一份在同级目录下我命名为my.ini修改端口号,默认是注释的,更改如下:
port = 3307
server_id = 1
binlog-do-db = lvdl
log-bin = mysql-bin
上面是主库,下面修改从库,修改如下:
port = 3308
server_id = 2
log-bin = mysql-bin
replicate-do-db = lvdl
在主库添加一个用户lvdl并制定replication权限
先启动主库和从库,在bin目录下输入cmd启动命令
mysqld --console
然后再打开数据库客户端新建两个连接一个为主库的端口号一个为从库的端口号,仍使用root用户但不要输入密码,因为默认是没有设置密码的。
2.在新建的使用主库添加用户点击–>右键–>点击打开命令行窗口,会出现一个mysql>
在这里输入create user ‘lvdl’@‘127.0.0.1’ identified by ‘123’;不加;报错,回车,然后会出现
Query OK ,0 rows affected或 Database changed
然后在mysql> GRANT REPLICATION SLAVE ON . TO ‘lvdl’@‘127.0.0.1’;回车,会出现 Query OK ,0 rows affected ,
3.在主数据库运行show master status;记下file和position的参数
mysql>show master status;回车,会出现 如下;
记住File下的mysql-bin.—和Position下的数字
完成之后,打开slave库的查询,
4. 输入 运行,如下图
5. 先停止从库复制功能 stop slave;
然后执行:
Change master to master_host=‘127.0.0.1’,master_port=3307,master_user=‘lvdl’,master_password=‘123’,master_log_file=‘mysql-bin.000002’,master_log_pos=429;
其中master_log_file=’就是在主库的file下的mysql-bin’,master_log_pos=就是Position下的数字。
成功后删掉这个语句重新输入
- start slave;这个命令是打开从库复制功能
完成之后
输入show slave status;
- 测试数据库
先在主库创建一个dyjfc数据库
然后就可以建一个表添加几条数据然后点击从库刷新就可以看到从库也有这个数据库和表的数据
导致slave_IO_Running 为connecting 的原因主要有以下 3 个方面:
1、网络不通
2、密码不对
3、pos不对
Slave_SQL_Running:No
一般是事务回滚造成的:
解决办法:
mysql> stop slave ;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave ;