首先你要保证,windows
的mysql的版本和linux
的mysql版本要一致!
我windows版本是8.0.26
,linux虚拟机是CentOS7,mysql版本是8.0.30
.
主库配置
主库是在windows系统。
配置文件
一般是在C盘的C:\ProgramData\MySQL\MySQL Server 8.0
,目录下有个my.ini
配置文件。
1 | #设置server-id |
在[mysqld]
下面,添加以上内容。server-id
是服务器唯一id,可以是其他数字,但不能和从库的server-id
重复!!
只要不重复,啥数字都可以。
重启mysql服务
方法一:
我的电脑
,右键选择管理
。

在服务名称上,右键 停止
再启动
。
方法二
以管理员身份
运行命令提示符
。

1 | net stop mysql80 #或者net stop mysql 停止服务 |
创建从服务器的用户和权限
方法一:
win+R
输入cmd
,进入命令行,登录mysql
1 | mysql -uroot -p |
然后使用命令行创建用户
1 | create user '用户名'@'%' identified by '密码'; #创建用户 |
方法二:
进入navicat
,

按以下格式创建用户

用户名和密码改成你自己的,其他的按照这格式就行。

服务器权限全选,因为我已经创建过了就不全选创建了。最后保存就好了。
最后你可以用以下命令,试试新建的用户能不能登录
1 | mysql -u '你刚创建的用户名' -p'密码' |
能登录就是成功了。不能登录就看看你创建用户的时候,主机那块是不是%
。%
表示,任何服务器都可以连接。
create user '用户名'@'%' identified by '密码';
是这个%哦。
查看主服务器状态
win+R
输入cmd
,进入命令行,登录mysql
1 | mysql -uroot -p |
输入show master status;
1 | mysql> show master status; |
记住这个 DESKTOP-GQI06FR-bin.000014
和531
,待会配置从库使用,而且也不要再有任何mysql操作了,否则这个是会变的。
从服务器配置
从服务器是Linux
配置文件
修改配置文件
1 | vim /etc/my.cnf |
在[msqld]下面添加
1 | #设置server-id |
只要保证server-id
是唯一的就行,与主库和其他从库id不同就行。
重启myql服务
1 | systemctl restart mysqld |
配置从库
win+R
输入cmd
,进入命令行,登录mysql
1 | mysql -uroot -p |
然后执行以下sql
1 | change master to master_host='192.168.20.1',master_port=3306,master_user='test_user',master_password='123456',master_log_file='DESKTOP-GQI06FR-bin.000014',master_log_pos=531; |
master_host
对应主服务器的IP地址。master_port
对应主服务器的端口。master_log_file
对应show master status显示的File列:DESKTOP-GQI06FR-bin.000014。master_log_pos
对应show master status显示的Position列:531。
然后开启主从复制
1 | start slave; #开启主从复制 |
查看是否配置成功
在从服务器上执行以下SQL语句
1 | show slave status; |
然后能看到Waiting for source to send event
,就表示配置成功。
或者在windows,打开navicat
在主库上新建一个数据库,看从库是否也新建一个。
__END__