mysql+keepalived

发布于:2025-06-07 ⋅ 阅读:(18) ⋅ 点赞:(0)

一、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