Mysql主从搭建

mysql 8.0:

1、mysql根目录下配置my.ini


[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=100
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 1062错误指主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062

2、配置好两个服务器,并分别启动mysql

docker 启动:

docker run -d -p 3306:3306 --privileged=true -v /home/mysql/master/log:/var/log/mysql -v /home/mysql/master/data:/var/lib/mysql -v /home/mysql/master:/etc/mysql -v /usr/mysql/master/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=root  --name mysql-master mysql:latest

-v 本机地址:应用地址 用来地址映射,将本机配置提供到 服务器
-e 配置账号密码
-name 容器名称

3、mysql主机命令:

-- 创建连接账号
CREATE USER 'slave_sync'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
-- 赋予权限
GRANT REPLICATION SLAVE ON *.* TO 'slave_sync'@'%';
-- 查询账号权限
show grants for slave_sync
-- 账号权限赋值
grant REPLICATION CLIENT ON *.* TO slave_sync;
grant REPLICATION SLAVE ON *.* TO slave_sync;
grant SUPER ON *.* TO slave_sync;
grant reload on *.* to slave_sync;
FLUSH PRIVILEGES;

-- 查询主机备份开始位置 提供给从机
show master status

image.png

4、mysql从机命令:

-- 关闭同步操作 默认是关闭的
stop slave;
-- 创建主从备份功能
change master to master_host='192.168.1.196', master_user='slave_sync', master_password='123456', master_log_file='binlog.000002', master_log_pos=1898, master_connect_retry=30;
-- 开启同步操作
start slave;
-- 查看同步状态
show slave status

image.png
image.png
是否成功需要关注以上两个必须为yes
image.png
如果失败 查看 error日志,查找失败原因

5、注意:

IO_Running为connding的原因:
两个都需要为3306端口,本机验证是如此
配置项id一致
同一个服务器

6、Mycat

Mycat配置

你可能感兴趣的:(mysql,android,数据库)