mysql+keepalived
文章目录
- 一、master1
- 创建目录
- 写入配置文件
- 启动master1
- 创建 `slave` 用户并授权
- 获取主节点当前 `binary log` 文件名和位置position
- 二、master2
- 创建目录
- 写入配置文件
- 启动master2
- 创建 `slave` 用户并授权
- 获取主节点当前 `binary log` 文件名和位置position
- 三、配置主主复制
- Master1
- Master2
- 四、建库验证
- 五、数据库备份
- master1
- master2
- 六、安装keepalived
- master1的 keepalived 配置文件
- mysql检测脚本
- master2的 keepalived 配置文件
- mysql检测脚本
一、master1
创建目录
mkdir /var/lib/mysql /var/lib/mysql/data
写入配置文件
innodb_buffer_pool_size (建议设置为物理内存的 60%~80%(专用数据库服务器,且只跑 MySQL 时,例如,服务器有 64GB 内存,建议设置为 40~50GB,如果服务器还跑其他服务,要适当减少,避免 OOM)
max_connections=500
innodb_buffer_pool_size=8G
vim /var/lib/mysql/my.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# 服务端默认utf8编码
character-set-server=utf8mb4
# 默认存储引擎
default-storage-engine=INNODB# 主主配置
log-bin=binlog
server-id=1 # 另一台写2
gtid-mode=on
enforce-gtid-consistency=on
log-slave-updates=on
expire_logs_days=14
auto_increment_increment=2
auto_increment_offset=1 # 另一台写2
binlog_format=ROW# Compatible with versions before 8.0
default_authentication_plugin=mysql_native_password
skip-host-cache
skip-name-resolve[client]
#设置客户端编码
default-character-set=utf8mb4
[mysql]
# 设置mysql客户端默认编码
default-character-set=utf8mb4# Custom config should go here
!includedir /etc/mysql/conf.d/
启动master1
docker run --name mysql_master1 --restart=always \
-p 3306:3306 \
-v /var/lib/mysql/my.cnf:/etc/mysql/my.cnf \
-v /var/lib/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=qwer1234 \
-d docker.cloud-sea.top/mysql:8.0
创建 slave
用户并授权
# 进入数据库
docker exec -it mysql_master1 bash
mysql -uroot -pqwer1234
# 创建用户授权
CREATE USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY 'slave';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
flush privileges;
获取主节点当前 binary log
文件名和位置position
mysql> SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+------------------------------------------+
| binlog.000003 | 868 | | | 1b009ef8-a67f-11ea-8c9a-0242ac110002:1-8 |
+---------------+----------+--------------+------------------+------------------------------------------+
1 row in set (0.00 sec)
二、master2
创建目录
mkdir /var/lib/mysql /var/lib/mysql/data