MySql 主从复制配置
记录一下配置 MySql 的主从的过程。 修改 mast 服务器的 mysql 的配置
vim /etc/my.cnf
[mysqld]
log-bin=binary-log
server-id = 1
log-bin 启用 mysql 的二进制日志,它为 mysql 复制提供 DDL 和 DML 的语句流,这里可以是文件名前缀和目录,默认日志文件存放在数据目录中(mysql/var/)中,然后重新启动 mysql 守护进程
mysql> SHOW MASTER STATUS;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| binary-log.000001 | 106 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
然后为从服务器添加一个用户
CREATE USER yuansir@'192.168.%' IDENTIFIED BY 'yuansir';
GRANT REPLICATION SLAVE ON *.* TO yuansir@'192.168.%';
配置从服务器,修改从服务器的配置文件
vim /etc/my.cnf
[mysqld]
server-id = 2
read_only=TRUE
这里 read_only 是为了让从服务器不 DDL 和 DML 的语句操作。重新启动 mysql 守护进程
mysql> show slave status;
Empty set (0.02 sec)
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.131',
-> MASTER_USER='yuansir',
-> MASTER_PASSWORD='yuansir';
Query OK, 0 rows affected (0.04 sec)
mysql> CHANGE MASTER TO
-> MASTER_LOG_FILE='binary-log.000001',
-> MASTER_LOG_POS=106;
Query OK, 0 rows affected (0.00 sec)
启动从服务器验证操作;
mysql> SLAVE START;
Query OK, 0 rows affected (0.03 sec)
确定Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes,这样说明主从已经配置成功,并正常运行了。
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.131
Master_User: yuansir
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: binary-log.000001
Read_Master_Log_Pos: 106
Relay_Log_File: localhost-relay-bin.000001
Relay_Log_Pos: 253
Relay_Master_Log_File: binary-log.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 106
Relay_Log_Space: 412
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: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.00 sec)
几个有用的复制配置:
- sync_binlog 某个服务器挂了,来确保服务器间数据一致性
- innodb_support_xa 某个服务器挂了,来确保 innodb 重做日志文件和二进制文件之间一致和同步
- expire_logs_days 设定二进制日志保存天数,过期自动删除
- log_slave_updates 启用该选项可以在主从服务器上运行二进制日志,还记录了任何从服务器上直接执行的命令
转载请注明: 转载自Ryan 是菜鸟 | LNMP 技术栈笔记
如果觉得本篇文章对您十分有益,何不 打赏一下
本文链接地址: MySql 主从复制配置
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可