一,将主库复制到从库
1. 主,从数据库都已经安装(略);
2. 修改后主库my.cnf配置文件
[mysqld]
port=3306 #端口(主从指定)
socket=/tmp/mysql.sock
datadir=/u01/mysqlall/mysql5742/data #数据文件所在位置
user=mysql #用户
max_connections=200 #最大链接数
#bind-address=127.0.0.1 #必要时绑定IP地址
character-set-server=utf8mb4 #数据库字符集
collation-server=utf8mb4_unicode_ci
innodb_buffer_pool_size=128M
query_cache_size=0 # MySQL 8.0中已废弃此选项
max_allowed_packet=16M
lc-messages-dir=/u01/mysqlall/mysql5742/mysql5742/share/english/
pid-file=/u01/mysqlall/mysql5742/data/mysqld.pid
log-error=/u01/mysqlall/mysql5742/data/error.log # 错误日志
tmpdir=/tmp
explicit_defaults_for_timestamp=on
secure-file-priv=/u01/mysqlall/mysql5742/mysql5742/lib/mysql-files
#skip-grant-tables
secure_file_priv=''
server_id=5742 #指定数据库唯一ID
log-bin=/u01/mysqlall/mysql5742/data/log-bin/mysql-bin #主库日志目录
binlog-do-db=db_lnyz # 指定同步的数据库(可选)
binlog-do-db=db_portals # 指定同步的数据库(可选)
binlog-do-db=db_test # 指定同步的数据库(可选)
binlog_format=row # 行复制,推荐
binlog-ignore-db = mysql # 忽略同步的数据库(可选)
binlog-ignore-db = information_schema # 忽略同步的数据库(可选)
binlog-ignore-db = performance_schema # 忽略同步的数据库(可选)
binlog-ignore-db = sys # 忽略同步的数据库(可选)
replicate_ignore_db=information_schema # 忽略同步的数据库(可选)
replicate_ignore_db=performance_schema # 忽略同步的数据库(可选)
replicate_ignore_db=mysql # 忽略同步的数据库(可选)
replicate_ignore_db=sys # 忽略同步的数据库(可选)
log_timestamps = SYSTEM
[client]
default-character-set=utf8mb4 #客户端字符集
socket=/tmp/mysql.sock
3. 使用 mysqldump 导出主库所有数据库的结构和数据
mysqldump -u root -p --all-databases > all_databases.sql
4.将备份文件cp到(v16备库服务器上)
scp /data/mysqlall/mysql5742/bak/all_databases.sql 192.168.20.27:/u01/mysqlall/mysql5742/bak/
5.在v16服务器上还原所有数据库(数据库会自己创建缺失的库,不需要自己先创建空库)
mysql -u root -p --database=mysql < all_databases.sql
(root/XXXXXX 本地登陆root密码 还原比较慢 共6.6G 用时30分钟 )
6.重启数据库
systemctl restart mysqld5742
二. 配置主从复制
1. 主库创建复制用户
CREATE USER 'repl'@'192.168.20.17' IDENTIFIED BY 'Bdstar234';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.20.17';
FLUSH PRIVILEGES;
2. 查看主库主要复制文件
SHOW MASTER STATUS;
| File | Position |
+------------------+----------+-
| mysql-bin.000020 | 154 |
3.修改从库配置文件 my.cnf
[mysqld]
server_id=5743 #指定数据库唯一ID
read-only=1 # 从库设为只读模式
relay-log=/u01/mysqlall/mysql5742/data/relay-log/relay-log #备库指定日志目录(从库使用)
3.重启从库服务
systemctl restart mysqld5742
4.创建同步语句
CHANGE MASTER TO
MASTER_HOST='192.168.20.27', #主库ip
MASTER_USER='repl', #同步用户
MASTER_PASSWORD='Bdstar234', #同步用户密码
MASTER_LOG_FILE='mysql-bin.000020', #二进制文件, 主库获得
MASTER_LOG_POS=154; #log日志编号,主库获得
5.启动从库
START SLAVE;
或者
RESET SLAVE ALL;
6.检查查看(只检查从库即可)
SHOW SLAVE STATUS\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
mysql主从复制
于 2025-03-27 15:49:44 首次发布