1、下载mysql8的安装包
MySQL :: Download MySQL Community Server
2、放到指定目录进行解压,更改名称为mysql-8.1.0-winx64-master,并复制一份作为从数据库
3、在bin目录下创建一个my.ini文件
添加如下内容
[mysqld]
basedir="D:/soft/mysql/mysql-8.1.0-winx64-master"
datadir="D:/soft/mysql/mysql-8.1.0-winx64-master/data"
socket="D:/soft/mysql/mysql-8.1.0-winx64-master/mysql.sock"
log-bin=mysql-bin
server-id=1
port=3306
# 设置需要同步的数据库
binlog-do-db=mydb
# 屏蔽系统库同步
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=preformance_schema
4、使用管理员打开cmd并使用如下命令初始化数据库,此时会在安装包目录下创建data目录
mysqld --initialize-insecure
5、注册服务mysql-master
mysqld install mysql-master --defaults-file="D:\soft\mysql\mysql-8.1.0-winx64-master\bin\my.ini"
6、启动服务,可以使用如下命令或者在服务中重启
net stop mysql-master
net start mysql-master
6、设置主库root用户密码
mysqladmin -u root -password 12345678;
或者也可以在进入mysql后进行密码的修改
mysql -uroot -P3306;
use mysql;
ALTER user 'root'@'localhost' IDENTIFIED BY '12345678'
7、进行navicat配置主库连接
8、创建用于同步的账号slave,设置过期策略,修改服务器权限
9、使用如下命令查找File文件是否存在,是同步时会使用的binlog文件,记住File及Position的值
show master status;
10、配置从数据库,在拷贝的mysql-8.1.0-winx64-slave的bin路径下添加从库的my.ini文件并进行配置
[client]
port=3307
socket="D:/soft/mysql/mysql-8.1.0-winx64-slave/mysql.sock"
[mysqld]
basedir="D:/soft/mysql/mysql-8.1.0-winx64-slave"
datadir="D:/soft/mysql/mysql-8.1.0-winx64-slave/data"
socket="D:/soft/mysql/mysql-8.1.0-winx64-slave/mysql.sock"
port=3307
server-id=2
#skip-grant-tables
log-bin=mysql-bin
# 设置需要同步的数据库表
replicate_wild_do_table=mydb.%
# 屏蔽系统库同步
replicate_wild_ignore_table=mysql.%
# 启用中继日志
relay-log=mysql-relay
# 将从服务器设置为只读
read_only=1
# 要进行主从复制的数据库名
replicate-do-db=mydb
# 不进行主从复制的数据库名
replicate-ignore-db=mysql
# 记录从库更新,允许链式复制(A-B-C),当该从库作为其他库的主库时,需要添加该参数
log-slave-updates
11、以管理员权限打开cmd控制台,进行相应的操作
mysqld.exe --initialize-insecure --user=mysql
mysqld install mysql-slave --defaults-file="D:\soft\mysql\mysql-8.1.0-winx64-slave\bin\my.ini"
net start mysql-slave
12、登录从数据库,进行root用户密码修改,开启远程访问
mysql -uroot -P3307
use mysql;
ALTER user 'root'@'localhost' IDENTIFIED BY 'xtf******';
# 开启远程访问,不开启通过Navicat远程连接会报错Access denied for user
update user set host='%' where user='root';
FLUSH PRIVILEGES;
13、重启服务
net stop mysql-slave
net start mysql-slave
14、在navicat中配置同步
stop slave;
change master to master_host='127.0.0.1',master_port=3306,master_user='slave',master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=569;
start slave;
show slave status;
# 如上参数
master_host 主库的ip地址
master_port 主库的端口
master_user 同步账号
master_password 同步账号的密码
master_log_file 开始同步的日志文件要与上边show master status的File一样
master_log_pos 开始同步的日志的开始位置
15、也可以在命令行中使用命令启动链路及查看链路
stop slave;
start slave;
show slave status \G;
16、验证,在主库中进行表内容的创建,从库也会进行相应操作
主库进行数据添加
从库出现相应操作