说明:
在项目部署到生产环境时,会有很多不可抗力的因素,数据库会出现崩溃停止运行数据丢失,数据对不上的问题,这个时候就需要两个数据库同步运行,来确保一个数据库崩溃另一个能马上顶上。
部署使用:
1、停止主库
net stop mysql
2、配置主库my.ini文件
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
# 设置mysql数据库的数据的存放目录
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#=========主从复制关键配置=====================
server_id=1 #主库和从库需要不一致,配一个唯一的ID编号,1至32。 手动设定
log-bin=mysql-bin #二进制文件存放路径,存放在根目录data
#binlog-do-db=test #需要复制的库,多个库用逗号隔开,如果此项不配置所有主库都参与复制
#binlog-ignore-db=mysql #不需要复制的库,和上项同理
#=========主从复制关键配置=====================
3、保存,重启主库服务
net start mysql
4、在主库中建立一个用户(用来给从库连接使用)
允许所有ip的做法
GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'%' IDENTIFIED BY '123456';
指定ip的做法
GRANT REPLICATION SLAVE ON *.* TO myslave@'192.168.41.0/255.255.255.0' IDENTIFIED BY '123456';
- myslave是用户名
- 123456密码是用户对应的密码
- 192.168.41.0是ip地址
5、刷新配置
flush privileges;
6、查询file
show master status; # 找到File 和 Position 的值记录下来
配置从库
1、停止从库服务
net stop mysql
2、配置从库my.ini
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
# 设置mysql数据库的数据的存放目录
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#========主从复制关键配置======================
server_id=2 #主库和从库需要不一致
#binlog-do-db=test #和主库说明一致
#binlog-ignore-db=mysql #和主库说明一致
#========主从复制关键配置======================
3、在从库执行
change master to master_host='ip地址',master_user='用户名',master_password='密码', master_log_file='mysql-bin.主库查看的值',master_log_pos=主库查询出来的值;
3.1、重启服务
net start mysql
4、填写以下
master_host= 这里填你主库的IP。
master_user=’用户名’ 刚才我们创建的那个用户。
这就是我们刚才 在主库里面 show master status;得到的值了。自行根据实际情况填写
master_log_file=’mysql-bin.000002’
master_log_pos=423
如果你的主库还有是其他端口的话,
master_port=端口号
5、从库执行
执行 stop slave ;再执行 start slave;
从库查看 :show slave status
三、验证
从库执行
show slave status \G;
最后修改于 2021-09-25 19:43:46
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付

