下载mysql 5.7
docker pull 5.7.33
执行启动mysql
docker run -p 3306:3306 --name mysql5_7_33 \
-v /home/mysql/conf:/etc/mysql/conf.d \
-v /home/mysql/logs:/var/log/mysql \
-v /home/mysql/data:/var/mysql/data \
--restart=always \
-e MYSQL_ROOT_PASSWORD=tk778899 -itd mysql:5.7.33
docker run --name mysql5_7_33 -p 3306:3306 \
-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=tk778899 \
--restart=always -itd mysql:5.7.33
下载redis
docker pull 5.0.12
// 运行命令
docker run -p 6379:6379 --name redis --restart=always -itd redis:5.0.12 --requirepass tk778899
配置参考
https://www.runoob.com/redis/redis-conf.html
docker 版本 查看 docker hub 仓库
====================================================
mysql8
执行命令
docker run -p 3309:3306 --name test_mysql8 \
-e MYSQL_ROOT_PASSWORD=tk778899 -itd mysql:8
docker run -p 3307:3306 --name test_master_mysql8 \
-v /home/test/mysql_master/conf:/etc/mysql/conf.d \
-v /home/test/mysql_master/logs:/var/log/mysql \
-v /home/test/mysql_master/data:/var/mysql/data \
--restart=always \
-e MYSQL_ROOT_PASSWORD=tk778899 -itd mysql:8
docker run -p 3308:3306 --name test_slave_mysql8 \
-v /home/test/mysql_slave/conf:/etc/mysql/conf.d \
-v /home/test/mysql_slave/logs:/var/log/mysql \
-v /home/test/mysql_slave/data:/var/mysql/data \
--restart=always \
-e MYSQL_ROOT_PASSWORD=tk778899 -itd mysql:8
mysql 8 开启外网访问:
进入容器:
mysql -u root -p
输入密码
status;
Connection id: 8
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.2.0 MySQL Community Server - GPL
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /var/run/mysqld/mysqld.sock
Binary data as: Hexadecimal
Uptime: 58 min 36 sec
grant all *.* to 'root'@'%';
flush privileges;
alter user 'root'@'localhost' identified by 'password' password expire never;
alter user 'root'@'%' identified with mysql_native_password by 'tk778899';
flush privileges;
主重复制实现
# 主节点配置文件
[mysqld]
server-id=1
log-bin=mysql-bin
#忽略的数据库信息
binlog-ignore-db=mysql
#忽略的数据库信息
binlog-ignore-db=information_schema
#日志类型
binlog_format=STATEMENT
# 主节点授权同步账号
create user 'slave'@'%' identified with mysql_native_password by 'tk778899';
grant replication slave on *.* to 'slave'@'%';
flush privileges;
show master status;
# 获取数据备用====
mysql-bin.000011 1843
# 从节点配置文件
[mysqld]
server-id=2
relay-log=mysql-relay
CHANGE MASTER TO MASTER_HOST='192.168.0.58',
MASTER_PORT=3307,
MASTER_USER='slave',
MASTER_PASSWORD='tk778899',
MASTER_LOG_FILE='mysql-bin.000011',MASTER_LOG_POS=1843;
reset slave;
START SLAVE;
STOP SLAVE;
show SLAVE status;
查看 slave io 是否为 yes
查看 slave sql 是否为 yes