- Mysql版本 8.0.28(主从同一个版本)
- 主从ip互通(必须)
1.在主库中my.ini文件中添加配置信息
log-bin = mysql-bin #主从复制 表示启动二进制文件
server-id = 1 #server_id编号 编号唯一 主从库不能一样
binlog-do-db= ****** #设置同步的数据库
#binlog-ignore-db=mysql #可以设置不需要同步的数据库
2.重启mysql服务
3.使用root用户登录,注意在mysql安装bin目录下打开cmd命令窗口
mysql -u root -p ------回车
4.创建slave账号,并赋予权限,命令如下
mysql 5.7 默认身份验证插件default_authentication_plugin是:mysql_native_password
mysql 8.0 默认身份验证插件default_authentication_plugin是:caching_sha2_password
原文链接:https://blog.csdn.net/haveqing/article/details/124758666
这里创建slave即有两种方式:
方式1: mysql_native_password 验证密码
mysql> CREATE USER 'slave'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'slave';
方式2: caching_sha2_password 采用方式2
mysql> CREATE USER 'slave'@'%' IDENTIFIED WITH 'caching_sha2_password' BY 'slave';
给用户赋予权限
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' ;
加了上面的权限发现还是不够,可以试试加上所有权限:(不行再加上)
mysql> GRANT ALL privileges ON *.* TO 'slave'@'%' ;
mysql> FLUSH PRIVILEGES;
5.查看主数据库状态,注意这里的参数:File与Position,后续从库配置中会使用到
show master status;
从库配置
1.配置从库的my.ini
server-id = 3 #server_id编号 编号唯一 不能和主库一样
#同步的数据库
binlog-do-db=****** 此同步数据库名须与主库数据库名一致,且同步主库数据库表的结构
#不需要同步的数据库
#binlog-ignore-db=mysql
2.命令行登录从库,查看数据库状态
show slave status;
3.命令行输入,在从数据库中配置主数据库的信息
change master to master_host='192.168.3.24',master_user='slave',master_password='123456',master_log_file='WIN-DP46I3SLTTF-bin.000007' ,master_log_pos=1248,GET_MASTER_PUBLIC_KEY=1;
// GET_MASTER_PUBLIC_KEY=1 若上面是用‘caching_sha2_password’创建的用户,则需要加上这一句
// 这里的文件名和Position和上面图片不相同,但对应是图片中的文件名和position
4.启动slave
start slave;
5.查看运行状态
show slave status\G;
// 可在可视化工具查询界面上输入该命令
当这下面两个属性为Yes的时候,配置成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
6.重置绑定
停止已启动的绑定
stop slave;
重置绑定
reset master;
切到主服务器 获取最新的日志
FLUSH PRIVILEGES;
show master status;
切换到从服务器
绑定
change master to master_host='192.168.3.24',master_user='slave',master_password='123456',master_log_file='WIN-DP46I3SLTTF-bin.000007' ,master_log_pos=1248,GET_MASTER_PUBLIC_KEY=1;
开启主从
start slave;
查看从服务器状态
show slave status;
观察Slave_IO_Running和Slave_SQL_Running是否都是yes
expire_logs_days = 3
#设置binlog清理时间
max_binlog_size = 100m
#binlog每个日志文件大小
binlog_cache_size = 4m
#binlog缓存大小
max_binlog_cache_size = 512m
#最大binlog缓存大小
auto_increment_offset = 1
#这是第几台服务器 自增解决方案 多主主
auto_increment_increment = 2
# 有多少台服务器 自增解决方案 多主主
————————————————
版权声明:本文为CSDN博主「a缘2333」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42731277/article/details/121311046
7.如果从库直接从主库拷贝数据,需要修改data中的 【auto.cnf】文件
[auto]
server-uuid=3f666435-ae9d-11e9-aeb0-90b11c9ba46f
#代码串不得与主库相同,随便改改就行