Docker部署Mysql集群
Docker准备
#下载docker并开启docker
curl -sSL https://get.daocloud.io/docker | sh
systemctl start docker
拉取mysql镜像
docker pull mysql:5.7
创建镜像
-p 本机端口号:docker内部端口号
-name docker容器名称
-v 挂载本地路径:容器路径
-e MYSQL_ROOT_PASSWORD 设置root账号的密码 mysql:mysql的版本
#文件层级管理
#可以自定义文件层级管理
#这里采用的是data conf log 一个文件夹 其中不同端口号各新建一个文件夹
#创建主服务器docker容器
docker run -d -p 3307:3306 --name mysql -v /mysqldata/mysql/log/3307:/var/log/mysql -v /mysqldata/mysql/data/3307:/var/lib/mysql -v /mysqldata/mysql/conf/3307:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=passowrd mysql:5.7
#创建从服务器docker容器
docker run -d -p 3308:3306 --name mysql -v /mysqldata/mysql/log/3308:/var/log/mysql -v /mysqldata/mysql/data/3308:/var/lib/mysql -v /mysqldata/mysql/conf/3308:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=passowrd mysql:5.7
修改配置文件
vim /mysqldata/mysql/conf/3307/my.cnf
#主mysql 配置
[mysqld]
port=3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
server-id=1 #给数据库服务的唯一标识,必须唯一
log-bin=master-bin #开启二进制日志
log-bin-index=master-bin.index
修改后按esc :wq保存
vim /mysqldata/mysql/conf/3308/my.cnf
#从数据库
[mysqld]
port=3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
server-id=2 #给数据库服务的唯一标识,必须唯一
log-bin=master-bin #开启二进制日志
log-bin-index=master-bin.index
#创建关联账号
create user 'guangfeng'@'%' identified by 'guangfeng';
grant replication slave on *.* to 'guangfeng'@'%';
flush privileges;
#主服务器查看master状态
show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 | 154 | | | |
+-------------------+----------+--------------+------------------+-------------------+
#查看二进制日志相关的配置项
show global variables like 'binlog%';
#查看server相关的配置项
show global variables like 'server%';
+----------------+--------------------------------------+
| Variable_name | Value |
+----------------+--------------------------------------+
| server_id | 1 |
| server_id_bits | 32 |
| server_uuid | 7bf7df69-589e-11ed-86cc-0242ac110002 |
+----------------+--------------------------------------+
#主服务器开启 进入mysql的情况
start slave;
set global log_bin_trust_function_creators=TRUE;