安装、配置mysql

安装mysql master、slave

安装master

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 主机1
#创建外部存储的路径
sudo mkdir /usr/local/docker/volumes
#进入挂载文件的路径
cd /usr/local/docker/volumes
#安装mysql
docker run \
-it \
-p 3306:3306 \
--name mysql-master \
-v $PWD/mysql/conf:/etc/mysql/conf.d \
-v $PWD/mysql/logs:/logs \
-v $PWD/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=@123123qq \
-e TZ=Asia/Shanghai \
-d mysql:5.7

安装slave

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 主机2
#创建外部存储的路径
sudo mkdir /usr/local/docker/volumes
#进入挂载文件的路径
cd /usr/local/docker/volumes
#安装mysql
docker run \
-it \
-p 3306:3306 \
--name mysql-slave \
-v $PWD/mysql/conf:/etc/mysql/conf.d \
-v $PWD/mysql/logs:/logs \
-v $PWD/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
-d mysql:5.7

配置mysql master

进入挂载文件的路径

1
cd /usr/local/docker/volumes/mysql/conf

创建my.cnf文件

1
touch my.cnf

编辑my.cnf文件

1
vim my.cnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#mysql master1 config 
[mysqld]
server-id = 101 # 节点ID,确保唯一

# log config
log-bin = mysql-bin #开启mysql的binlog日志功能
sync_binlog = 1 #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全
binlog_format = mixed #binlog日志格式,mysql默认采用statement,建议使用mixed
expire_logs_days = 7 #binlog过期清理时间
max_binlog_size = 100m #binlog每个日志文件大小
binlog_cache_size = 4m #binlog缓存大小
max_binlog_cache_size= 512m #最大binlog缓存大
binlog-ignore-db=mysql #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行

auto-increment-offset = 1 # 自增值的偏移量
auto-increment-increment = 1 # 自增值的自增量
slave-skip-errors = all #跳过从库错误

配置mysql slave

进入挂载文件的路径

1
cd /usr/local/docker/volumes/mysql/conf

创建my.cnf文件

1
touch my.cnf

编辑my.cnf文件

1
vim my.cnf
1
2
3
4
5
6
7
8
9
#mysql slave config 
[mysqld]
server-id = 102
log-bin=mysql-bin
relay-log = mysql-relay-bin
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%

master 创建用户并授权

  1. 进入master的数据库,为master创建复制用户

    1
    2
    # CREATE USER <user> IDENTIFIED BY '<password>';
    CREATE USER slave IDENTIFIED BY '123456';
  2. 赋予该用户复制的权利

    1
    GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO slave@’192.168.1.102’ IDENTIFIED BY ‘123456’;

配置slave

停止slave

1
stop slave

设置slave

1
2
3
4
5
CHANGE MASTER TO 
MASTER_HOST = '172.17.0.2',
MASTER_USER = 'slave',
MASTER_PASSWORD = '123456',
MASTER_PORT = 3306;

启动slave

1
start slave; 

查询slave状态

1
show slave status;

相关资料