1.先配置多实例
mkdir -p /data/330{7,8,9}/data
mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/3307/data
mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/3308/data
mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/3309/data
mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/data/3307/data
cat >/data/3307/my.cnf<< EOF
[mysqld]
port=3307
user=mysql
basedir=/app/mysql #工作目录
datadir=/data/3307/data #存放数据目录
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
EOF
cat >/data/3308/my.cnf<< EOF
[mysqld]
port=3308
user=mysql
basedir=/app/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
EOF
cat >/data/3309/my.cnf<< EOF
[mysqld]
port=3309
user=mysql
basedir=/app/mysql #工作目录
datadir=/data/3309/data #存放数据目录
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
EOF
[root@db02 scripts]
mysqld --defaults-file=/data/3308/my.cnf
----------------1.
cat >/usr/lib/systemd/system/mysql3307.service<< EOF
[Unit]
Description=mysqld
[Service]
#Type=notify
ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf --user=mysql
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
EOF
----------------------2.
cat >/usr/lib/systemd/system/mysql3307.service<< EOF
[Unit]
Description=mysqld
[Service]
#Type=notify
ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf --user=mysql
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
EOF
--------------------------3.
cat >/usr/lib/systemd/system/mysql3307.service<< EOF
[Unit]
Description=mysqld
[Service]
#Type=notify
ExecStart=/app/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf --user=mysql
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
EOF
[root@db02 system]
[root@db02 system]
mysqladmin password 123 -S /data/3307/mysql.sock
mysqladmin password 123 -S /data/3308/mysql.sock
mysqladmin password 123 -S /data/3309/mysql.sock
mysql -uroot -p123 -S /data/3307/mysql.sock
[root@db02 system]
mysql -uroot -p123 -S /data/3307/mysql.sock
[root@db02 system]
mysql3307
2.配置GTID
grant replication slave on *.* to rep@'%' identified by '123'
/etc/my.cnf
[mysqld]
basedir=/app/mysql
datadir=/app/mysql/data
server_id=1
gtid_mode=on
enforce_gtid_consistency
cat >/data/3307/my.cnf<< EOF
[mysqld]
port=3307
user=mysql
basedir=/app/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
server_id=2
gtid_mode=on
enforce_gtid_consistency
EOF
cat >/data/3308/my.cnf<< EOF
[mysqld]
port=3307
user=mysql
basedir=/app/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
server_id=2
gtid_mode=on
enforce_gtid_consistency
EOF
cat >/data/3309/my.cnf<< EOF
[mysqld]
port=3307
user=mysql
basedir=/app/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
server_id=2
gtid_mode=on
enforce_gtid_consistency
EOF
root@localhost [(none)] >change master to
master_host='172.16.1.54',
master_user='rep',
master_password='123',
master_port=3306,
master_auto_position=1;
start slave;
配置过滤复制
cat >>/data/3307/my.cnf<< EOF
replicate-do-db=wz
EOF
cat >>/data/3308/my.cnf<< EOF
replicate-do-db=lol
EOF
cat >>/data/3309/my.cnf<< EOF
replicate-do-db=cf
EOF
systemctl restart mysql3307
systemctl restart mysql3308
systemctl restart mysql3309
获得结果
mysql> create database wz;
Query OK, 1 row affected (0.00 sec)
mysql> create database lol;
Query OK, 1 row affected (0.01 sec)
mysql> create database cf;
Query OK, 1 row affected (0.00 sec)
1.🐂----------------------
mysql> create table wz.t1(id int);
Query OK, 0 rows affected (0.00 sec)
mysql> show tables from wz;
+--------------+
| Tables_in_wz |
+--------------+
| t1 |
+--------------+
1 row in set (0.00 sec)
mysql> show tables from wz;
Empty set (0.00 sec)
1.🐎------------------------------
2.🐂-------------------------
mysql> use wz;
mysql> create table t2(id int);
mysql> show tables;
+--------------+
| Tables_in_wz |
+--------------+
| t1 |
| t2 |
+--------------+
mysql> show tables from wz;
+--------------+
| Tables_in_wz |
+--------------+
| t2 |
+--------------+
2.🐎----------------------------
3.🐂----------------------
mysql> insert into wz.t2 values(1);
Query OK, 1 row affected (0.01 sec)
mysql> select * from t2;
+------+
| id |
+------+
| 1 |
+------+
3.🐎------------------------------
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.16.1.54
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 2506
Relay_Log_File: db04-relay-bin.000005
Relay_Log_Pos: 1729
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB: wz
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1146
Last_Error: Error executing row event: 'Table 'wz.t1' doesn't exist'
Skip_Counter: 0
Exec_Master_Log_Pos: 2010
Relay_Log_Space: 2731
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1146
Last_SQL_Error: Error executing row event: 'Table 'wz.t1' doesn't exist'
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: afea5dcf-3515-11ee-b219-000c29e3dd62
Master_Info_File: /data/3307/data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State:
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp: 230807 21:31:30
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set: afea5dcf-3515-11ee-b219-000c29e3dd62:1-12
Executed_Gtid_Set: afea5dcf-3515-11ee-b219-000c29e3dd62:1-10
Auto_Position: 1
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
mysql> stop slave;
mysql> set global sql_slave_skip_counter=1;
mysql> start slave;
[root@db01 ~]
slave-skip-errors=1032,1062,1007,1146
重新配置主从
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!