Mac上的Mysql为主库,Linux为从库配置
Mac上的配置:
- 1、打开终端,输入 vim /etc/my.cnf 修改Mysql配置文件,配置开启二进制日志
log-bin=mysql-bin server-id=(设置服务器唯一ID,可以自定义,保证与其他服务器不一样即可)
- 2、重新启动Mysql
启动MySQL服务 mysql.server start 停止MySQL服务 mysql.server stop 重启MySQL服务 mysql.server restart - 3、登录主库Mysql,执行下面sql
登录Mysql:mysql -u root -p
执行sql:GRANT REPLICATION SLAVE ON *.* to ‘username’@‘%’ identifiled by ‘password’;上面sql的作用是创建一个用户username,密码为password,并且给username用户授予REPLICATION SLAVE权限。常用于建立复制时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才可以通过该用户复制。
- 4、登录Mysql数据库,执行 show master status; 记录下结果中File和Position的值

上面SQL的作用是查看Master的状态,执行完此SQL后不要再执行任何操作。因为执行操作显示出来的master状态里的file和position会发生变化。
Linux上的配置
- 1、 输入 vim /etc/my.cnf 修改Mysql配置文件,配置开启二进制日志

- 2、重启Mysql
systemctl restart mysqld- 3、登录数据库,执行下面sql
change master to master_host=‘主库的ip地址’, master_user='之前设置master时的username’, master_password='之前设置master时的password’, master_log_file='查看master状态时的file名’, master_log_pos='查看master状态时的position’;这里的主库因为是Mac,所以需要填写Mac的ip,Mac的ip查看方式为 系统偏好设置>网络>高级>TCP/IP>IPv4地址


执行完上面sql之后,输入 start slave;开始主从复制
- 4、登录从库Mysql,执行下面SQL,查看从数据库的状态
show slave status\G;
遇到的问题:
slave_SQL_Running:no
解决办法:
- 在Linux虚拟机从库里登录状态输入stop slave
- 在Mac主库里重新输入show master status; 获取新的File和Position
- 重新输入新的File和Position
change master to
master_host=‘master数据库的ip地址’,
master_user='之前设置master时的username’,
master_password='之前设置master时的password’,
master_log_file='查看master状态时的file名’,
master_log_pos='查看master状态时的position’; - start slave;
本人只遇到上面这一个问题,还有可能遇到Slave_IO_Running=no的问题,可以参考这位的回答
版权声明:本文为weixin_68588547原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。