千家信息网

设置MySQL主从复制的方法

发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,设置MySQL主从复制的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!设置细节:主服务器:192.168.1.1
千家信息网最后更新 2025年02月19日设置MySQL主从复制的方法

设置MySQL主从复制的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

设置细节:

主服务器:192.168.1.10

从服务器:192.168.1.20

数据库:mydb

1.设置MySQL主服务器

在主服务器上创建一个具有REPLICATION SLAVE权限的mysql帐户,复制客户端将连接到master。

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'192.168.1.20' IDENTIFIED BY 'secretpassword';mysql> FLUSH PRIVILEGES;

在所有表上都有block write语句,因此不要在备份后进行更改。

mysql> use mydb;mysql> FLUSH TABLES WITH READ LOCK;mysql> exit;

编辑mysql配置文件并在[mysqld]部分下添加以下代码。

# vim /etc/my.cnf
[mysqld]log-bin=mysql-binbinlog-do-db=mydbserver-id=1innodb_flush_log_at_trx_commit=1sync_binlog=1

重新启动master mysql服务器以使更改生效。

# service mysqld restart

使用以下命令检查当前二进制日志文件名(File)和当前偏移量(Position)值。

mysql > SHOW MASTER STATUS;+------------------+----------+--------------+------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000002 |      107 | mydb         |                  |+------------------+----------+--------------+------------------+

以上输出显示当前二进制文件使用的是mysql-bin.000002,偏移值为107。记下这些值以在从属服务器上使用。

备份数据库并将其复制到slave mysql server。

# mysqldump -u root -p mydb > mydb.sql# scp mydb.sql 192.168.1.20:/opt/

完成备份后,从表中删除READ LOCK,以便进行更改。

mysql> UNLOCK TABLES;

2.设置MySQL Slave Server

编辑salve mysql配置文件并在[mysqld]部分下添加以下值。

# vim /etc/my.cnf
[mysqld]server-id=2replicate-do-db=mydb

server-id始终为非零数值。这些值永远不会与其他主服务器和从服务器相似。

重启mysql slave server,如果你已经配置了复制,请在启动时使用-skip-slave-start,不要立即连接到主服务器。

# /etc/init.d/mysqld restart

使用以下命令在从属服务器上设置选项值。

mysql>  CHANGE MASTER TO MASTER_HOST='192.168.1.10',    -> MASTER_USER='repl_user',    -> MASTER_PASSWORD='secretpassword',    -> MASTER_LOG_FILE='mysql-bin.000002',    -> MASTER_LOG_POS=107;

最后启动从属线程

mysql> SLAVE START;

检查从服务器的状态。

mysql> show slave status G
*************************** 1. row ***************************               Slave_IO_State:                  Master_Host: 192.168.1.15                  Master_User: repl_user                  Master_Port: 3306                Connect_Retry: 60              Master_Log_File: mysql-bin.000002          Read_Master_Log_Pos: 107               Relay_Log_File: mysqld-relay-bin.000001                Relay_Log_Pos: 4        Relay_Master_Log_File: mysql-bin.000002             Slave_IO_Running: No            Slave_SQL_Running: No              Replicate_Do_DB: mydb          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: 107              Relay_Log_Space: 107              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: NULLMaster_SSL_Verify_Server_Cert: No                Last_IO_Errno: 0                Last_IO_Error:               Last_SQL_Errno: 0               Last_SQL_Error:  Replicate_Ignore_Server_Ids:             Master_Server_Id: 11 row in set (0.00 sec)mysql>

MySQL主从复制已在你的系统和工作模式下成功配置。

感谢各位的阅读!看完上述内容,你们对设置MySQL主从复制的方法大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。

0