1.下载地址
MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/
2.安装配置
1.下载解压后,拷贝一份作为slave的安装目录
3.配置my.ini
由于下载mysql8版本,解压后,没有相关的my.ini配置文件,需要手动创建配置文件。
参考地址:
MySQL :: MySQL 8.0 Reference Manual :: 2.3.4.2 Creating an Option Filehttps://dev.mysql.com/doc/refman/8.0/en/windows-create-option-file.html
MySQL :: MySQL 8.0 Reference Manual :: 4.2.2.2 Using Option Fileshttps://dev.mysql.com/doc/refman/8.0/en/option-files.html
3.安装命令
3.1安装主服务器
- 配置my.ini脚本
在C:\mysql8\mysql8.0.2-master目录下,新建my.ini文件,将以下内容复制到文件中进行保存。
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
default-character-set=utf8
port=3307
[mysqld]
#设置开启日志
log-bin = mysql-bin
#设置服务ID,主从不能一致
server-id = 1
#设置需要同步的数据库
binlog-do-db = user_db
#屏蔽系统同步
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
#设置3306端口
port = 3307
# 设置mysql的安装目录
basedir=C:\\mysql8\\mysql8.0.2-master
# 设置mysql数据库的数据的存放目录
datadir=C:\\mysql8\\mysql8.0.2-master\\data
# 允许最大连接数
max_connections=2000
# 服务端使用的字符集默认为8比特编码的latin1字符集
#character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
2.进入到mysql的bin目录
3.初始化数据库
mysqld --initialize --user=mysql --console
获取到初始化密码sQlnj#Ckl0rL
初始化成功会在data目录下产生文件
4.安装mysql服务
mysqld --install mysqlmaster --defaults-file="C:\mysql8\mysql8.0.2-master\my.ini"
安装成功后再windows service服务中可以看到该服务
5.启动mysql服务
启动mysqlmaster服务成功
3.2安装从服务器
1.配置my.ini脚本
在C:\mysql8\mysql8.0.2-slave目录下,新建my.ini文件,将以下内容复制到文件中进行保存。
[client]
port=3308
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置开启日志
log-bin = mysql-bin
#设置服务ID,主从不能一致
server-id = 2
#设置需要同步的数据库
#replicate_do_db = user_db
#屏蔽系统同步
#replicate_wild_ignore_table = mysql%
#replicate_wild_ignore_table = informatin_schema.%
#replicate_wild_ignore_table = performance_schema.%
#设置3308端口
port = 3308
# 设置mysql的安装目录
basedir=C:\\mysql8\\mysql8.0.2-slave
# 设置mysql数据库的数据的存放目录
datadir=C:\\mysql8\\mysql8.0.2-slave\\data
# 允许最大连接数
max_connections=2000
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
2.进入到mysql的bin目录
3.初始化数据库
mysqld --initialize --user=mysql --console
获取到数据库初始化密码gLp#Q,*wy5Gf
初始化成功会在data目录下产生文件
mysqld --install mysqlslave --defaults-file="C:\mysql8\mysql8.0.2-slave\my.ini"
安装mysqlslave服务成功。
4.启动mysql服务
4.连接主从数据库
使用工具连接数据库服务器后,连接正常。(连接前会提示修改初始化密码)
5.修改主从配置文件
1.停止mysql主从服务
修改配置文件时,首先将服务停止。
2.修改主从配置文件
2.1修改主服务器文件如下:
#设置开启日志
log-bin = mysql-bin
#设置服务ID,主从不能一致
server-id = 1
#设置需要同步的数据库
binlog-do-db = user_db
#屏蔽系统同步
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
2.2修改从服务器文件如下
#设置需要同步的数据库
replicate_do_db = user_db
3.启动主从服务
3.创建从服务器访问的账户
创建用于操作账户,在主节点创建一个用户db_sync,用于从节点链接主节点时使用。
create user 'db_sync'@'%' identified with mysql_native_password by 'db_sync'; #创建用户
grant replication slave on *.* to 'db_sync'@'%'; #用户授权
flush privileges; #刷新权限
show master status;查看记录文件名和位置点
创建成功后,可在主数据库中查询到新建的db_sync用户信息
4.查看主库的状态
5.设置从库向主库同步数据
mysql ‐h localhost ‐P3308 ‐uroot ‐p
#先停止同步
STOP SLAVE;
#修改从库指向到主库,使用上一步记录的文件名以及位点
change master to
master_host='localhost',
master_port=3307,
master_user='db_sync',
master_password='db_sync',
master_log_file='mysql-bin.000002',
master_log_pos=1152; #需要在主库中输入show master status可查询文件名称
#需要在主库中输入show master status可查询文件名称
#启动同步
START SLAVE;
#查看从库状态Slave_IO_Runing和Slave_SQL_Runing都为Yes说明同步成功,如果不为Yes,请检查
error_log,然后排查相关异常
6.查询从库的状态
#查看从库状态Slave_IO_Runing和Slave_SQL_Runing都为Yes说明同步成功,如果不为Yes,请检查
error_log,然后
排查相关异常。
show slave status
#注意 如果之前此从库已有主库指向 需要先执行以下命令清空
STOP SLAVE IO_THREAD FOR CHANNEL '';
reset slave all;
在主库中查询到的file和Position字段的数据对应从库设置的master_log_file和master_log_pos字段。
6.测试数据库同步
6.1在主数据库中创建user_db数据和t_user表
在主数据库中创建user_db,并创建表,该表数据为空
查询从库数据,从数据库会自动创建数据库和表。
6.2.在主数据库插入数据,查看从库同步的数据。
7.附加说明
1.同步问题排查
如果从库没有同步数据,可使用show slave status命令,查看master_info_File和Slave_SQL_Running_State字段显示的信息
2.cmd下执行数据库初始化或者创建windows service服务失败。
必须在管理员模式下打开命令窗口
3.在初始化数据库时失败
在配置my.inf的datadir时,必须要自己创建好data文件夹。