1.安装mysql环境
省略。。。
2.配置主从环境
配置my.ini文件,该文件如果没有,就自己新建一个。拷贝两个目录,一个master,一个slave的目录
并配置其my.ini文件。
主库
[mysqld]
#设置主库端口,注意须是不被占用的端口号
port = 3305
#设置mysql的安装目录
basedir=D:\\msyql\\mysql-8.0.29-winx64-master
#设置mysql数据的存储目录,如果该路径下不存在data文件夹,会在安装时自行创建
datadir=D:\\msyql\\mysql-8.0.29-winx64-master\data
#二进制文件名称,注意这里的mysql-bin是自行命名,后续所有步骤都要与之对应
log-bin=mysql-bin
#设置服务器的id,要求各个服务器的id必须不一致
server-id = 1
# 允许最大连接数
max_connections=2000
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
从库
[mysqld]
#设置主库端口,注意须是不被占用的端口号
port = 3307
#设置mysql的安装目录
basedir=D:\\msyql\\mysql-8.0.29-winx64-slave
#设置mysql数据的存储目录,如果该路径下不存在data文件夹,会在安装时自行创建
datadir=D:\\msyql\\mysql-8.0.29-winx64-slave\data
#二进制文件名称,注意这里的mysql-bin是自行命名,后续所有步骤都要与之对应
log-bin=mysql-bin
#设置服务器的id,要求各个服务器的id必须不一致
server-id = 2
# 允许最大连接数
max_connections=2000
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
relay-log=relay-bin
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
提示:如果电脑之前注册了mysql的服务,需要把master和slave文件夹下面的bin目录下的mysqld文件,改名,和之前的mysqld命令不一样,我这边改的是mysqld-master和mysqld-slave。
3.注册并启动主从
使用管理员进入cmd命令,进入master目录的bin目录下,执行命令(如果之前data文件夹下有数据或已经初始化,需要把data目录清空):
mysqld-master.exe --initialize --console
mysqld-master.exe --install mysql_master
#也可以直接在“服务”中开启
net start mysql_master
mysql -uroot -P3305 -p
alter user 'root'@'localhost' identified by '123456';
#可以删除服务的命令
net stop mysql_master
mysqld remove mysql_master
参考链接:https://blog.csdn.net/screaming_zz/article/details/127894207
同理一样启动slave。
4.开放同步用户
改用户用来同步主库的binlog文件,从库后面会通过该用户及密码配置连接。
CREATE USER ‘slave’@‘%’ IDENTIFIED BY ‘123456’;
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘slave’@‘%’;
创建一个slave用户,配置密码为123456,开放同步权限。
5.启动主从复制并测试
第一步:stop slave;
第二步:change master to master_host=‘127.0.0.1’,master_port=3305,master_user=‘slave’,master_password=‘123456’,master_log_file=‘mysql-bin.000002’,master_log_pos=6080;
其中master_log_pos和master_log_file,登录主库后,执行show master status,可以看到这两个参数。如果主库改动了设置,这个pos会变动,切记,slave需要重新停止,重新设置,重新启动,才能同步。(stop slave -> reset slave -> change mster … -> start slave)
第三步:start slave,启动从机
第四步:在主库添加一个库,在从机马上就能刷新出来
如果show slave staus,发现该两设置没有两个yes说明有问题,如其中一个是:
查看其他信息,发现是密码连接错误。
解决:在用户中设置密码类型为mysql_native_password,重新输入一次密码。
停止从机,重置从机,同步主机,启动从机,完成。