1. 安装说明
- 在
Windows
里面搭建MySQL
主从复制,纯粹是为了开发测试方便 - 把环境变量里的
MySQL
配置删除,包括path
里面 - 如果在安装从数据库之前,电脑里已经安装过一个
MySQL
了,不要复制之前使用过的安装包,而是要重新解压,此处遇到一个坑,两个服务器的server_id
一直一样 - 所有
cmd
命令行要以管理员身份运行
2. 主数据库配置
解压完之后的mysql-8.0.23-winx64
里面是没有my.ini
文件的,需要自己手动创建,主数据库的my.ini
文件,其中要注意下:default_authentication_plugin=mysql_native_password
[mysqld]
#主库和从库需要不一致
server-id=1
log-bin=mysql-bin
#同步的数据库
binlog-do-db=ss_dict_db
#不需要同步的数据库
binlog-ignore-db=mysql
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\mysql\mysql-8.0.23-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql\mysql-8.0.23-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
对于主数据库,因为电脑里之前装过MySQL
数据库,所以没有需要做太多的工作。主要就是创建一个slave
用户,并赋予对应的权限,这里需要注意的是,MySQL5.X
版本和MySQL8.X
版本的命令是不一样的。
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON . TO 'slave'@'MySQL2' identified by '123456' ;
FLUSH PRIVILEGES;
需要查看master
节点的状态:show master status
3. 从数据库配置
如果主数据库没有安装过,那么和从数据库的安装步骤一样。
从数据库的my.ini
文件,只有下面四项不一样,其余和主数据库的配置完全一样。
server-id=48
# 设置3307端口
port=3307
# 设置mysql的安装目录
basedir=D:\mysql\mysql-8.0.23-winx64-3307
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql\mysql-8.0.23-winx64-3307\data
cmd
命令行要以管理员身份运行,从数据库要重新解压mysql-8.0.23-winx64.zip
包,然后重新命名。
由于没有配置MySQL
环境变量,所以执行命令时要进入到对应的文件夹下面,执行初始化命名:
mysqld --initialize --user=mysql --console
获取得到初始化密码,可以复制出来,再执行install
操作
mysqld --install MySQL2 --defaults-file="D:\mysql\mysql-8.0.23-winx64-3307\my.ini"
执行完注册操作之后,到服务里面去查看是否已经有MySQL2
服务的存在
如果MySQL2
服务已经启动,进入命令行登录:mysql -uroot -p
,密码为上面初始化后得到的密码,可以复制,然后进行修改密码操作。
在从数据库上注册同步的主数据库信息
CHANGE MASTER TO
master_host = 'localhost',
master_user = 'slave',
master_password = '123456',
master_log_file = 'mysql-bin.000003',
master_log_pos = 156;
停止并重新启动slave
,最后查看状态,show slave status
只有Slave_IO_Running
和Slave_SQL_Running
两项均为Yes
,才算配置成功。
4. 验证
在主数据库中的ss_dict_db
中插入数据,发现从数据库的表会得到同步。
5. 安装过程中遇到的问题
下面的问题,需要在配置文件中添加:default_authentication_plugin=mysql_native_password
还遇到server_id
怎么配置都一样的问题,解决办法是从数据库不要复制安装好的mysql
数据库,重新解压一个新的文件。
还有遇到mysql5.x
和mysql8.x
版本命令不一样的问题。
--end--