首先你要保证,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
2
3
4
#设置server-id
server-id=1
#开启二进制文件
log-bin=mysql-bin

[mysqld]下面,添加以上内容。server-id是服务器唯一id,可以是其他数字,但不能和从库的server-id重复!!

只要不重复,啥数字都可以。

重启mysql服务

方法一:

我的电脑,右键选择管理

image-20220803112549738

在服务名称上,右键 停止启动

方法二

管理员身份运行命令提示符

image-20220803112728812
1
2
net stop mysql80   #或者net stop mysql   		停止服务
net start mysql80 #或者net start mysql 开启服务

创建从服务器的用户和权限

方法一:

win+R输入cmd,进入命令行,登录mysql

1
2
mysql -uroot -p
#然后输入密码

然后使用命令行创建用户

1
2
3
4
5
6
create user '用户名'@'%'  identified by '密码';		#创建用户
grant all privileges on *.* to '用户名'@'%'; #授予权限

#比如
#create user 'test_user'@'%' identified by '123456';
#grant all privileges on *.* to 'test_user'@'%';

方法二:

进入navicat

image-20220803113429776

按以下格式创建用户

image-20220803113545220

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

image-20220803113643506

服务器权限全选,因为我已经创建过了就不全选创建了。最后保存就好了。

最后你可以用以下命令,试试新建的用户能不能登录

1
2
mysql -u '你刚创建的用户名' -p'密码'
#比如: mysql -u test_user -p 123456

能登录就是成功了。不能登录就看看你创建用户的时候,主机那块是不是%%表示,任何服务器都可以连接。

create user '用户名'@'%' identified by '密码';是这个%哦。

查看主服务器状态

win+R输入cmd,进入命令行,登录mysql

1
2
mysql -uroot -p
#然后输入密码

输入show master status;

1
2
3
4
5
6
7
mysql> show master status;
+----------------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------------------+----------+--------------+------------------+-------------------+
| DESKTOP-GQI06FR-bin.000014 | 531 | | | |
+----------------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

记住这个 DESKTOP-GQI06FR-bin.000014531,待会配置从库使用,而且也不要再有任何mysql操作了,否则这个是会变的。

从服务器配置

从服务器是Linux

配置文件

修改配置文件

1
vim /etc/my.cnf

在[msqld]下面添加

1
2
#设置server-id
server-id=2

只要保证server-id是唯一的就行,与主库和其他从库id不同就行。

重启myql服务

1
systemctl restart mysqld

配置从库

win+R输入cmd,进入命令行,登录mysql

1
2
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;
  1. master_host对应主服务器的IP地址。
  2. master_port对应主服务器的端口。
  3. master_log_file对应show master status显示的File列:DESKTOP-GQI06FR-bin.000014。
  4. master_log_pos对应show master status显示的Position列:531。

然后开启主从复制

1
2
start slave;  	#开启主从复制
stop slave; #关闭主从复制

查看是否配置成功

在从服务器上执行以下SQL语句

1
show slave status;

然后能看到Waiting for source to send event,就表示配置成功。

或者在windows,打开navicat

主库上新建一个数据库,看从库是否也新建一个。

__END__