搭建mysql主从服务

一.环境

基于docker搭建环境。

使用mysql版本5.7.4

二.搭建mysql主

docker run \
--name mysqlmaster \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /docker/mysql/data:/var/lib/mysql \
-v /docker/mysql/config:/etc/mysql/conf.d \
-p 5132:3306 \
-d mysql:5.7.4

2.在主服务器创建slave用户并且给权限

-- 创建用户

create user 'user_slave'@'%'

-- 设置密码

ALTER USER 'user_slave'@'%' IDENTIFIED WITH mysql_native_password BY 'MyNewPass513122!';

-- 赋复制权限

GRANT REPLICATION SLAVE ON *.* TO 'user_slave'@'%';

-- 刷新权限

FLUSH PRIVILEGES;

3.设置主服务器配置(my.cnf)

[mysqld]
#设置服务器id(确保唯一)
server-id=1
#设置日志个数默认ROW
binlog_format=STATEMENT
#开启binlog日志(mysql-bin 日志名称)
log-bin=mysql-bin 
#设置需要复制的数据库,默认复制全部
binlog-do-db=mydb

4.查询binlog文件

SHOW MASTER STATUS;

binlog.000001 154

三.搭建mysql从

docker run \
--name mysqlslave  \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /docker/mysqls/data:/var/lib/mysql \
-v /docker/mysqls/config:/etc/mysql/conf.d \
-p 5232:3306 \
-d mysql:5.7.4

2.设置主服务器配置(my.cnf)

[mysqld]
#设置服务器id(确保唯一)
server-id=2

3.在从机设置主从关系

CHANGE MASTER TO  

 MASTER_HOST = '主服务器的 IP 地址',    

 MASTER_PORT = 主服务器的端口号,  

 MASTER_USER = '用于复制的用户',    

 MASTER_PASSWORD = '用于复制的用户的密码',    

 MASTER_LOG_FILE = '主服务器的二进制日志文件名',    

 MASTER_LOG_POS = 主服务器的二进制日志位置;

4.查询状态

-- 开启从服务

START SLAVE;

-- 查看状态

SHOW SLAVE STATUS

看到YES就是成功!

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