mysql主从复制怎么做
时间 : 2023-03-22 06:19:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

MySQL主从复制,指的是将一个MySQL数据库中的数据复制到另一个MySQL数据库中。主数据库中的数据更新后,从数据库也会同步更新,以保证数据的一致性和高可用性。

下面给出主从复制的配置步骤:

1. 建立主库/Master

在主库中创建一个名为repl的用户,并授予REPLICATION SLAVE权限。

CREATE USER 'repl'@'%' IDENTIFIED BY 'password';

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

打开MySQL配置文件 `/etc/my.cnf`,添加以下内容:

[mysqld]

log-bin=mysql-bin # 开启二进制日志

server-id=1 # 主数据库的唯一ID,范围为1-2^32-1,要保证主从不一样

重启MySQL服务器。

2. 建立从库/Slave

在从库中创建一个名为repl的用户,并授予SUPER、REPLICATION CLIENT和REPLICATION SLAVE权限。

CREATE USER 'repl'@'%' IDENTIFIED BY 'password';

GRANT SUPER,REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'repl'@'%';

打开MySQL配置文件 `/etc/my.cnf`,添加以下内容:

[mysqld]

server-id=2 # 从数据库的唯一ID,要保证主从不一样

重启MySQL服务器。

3. 配置主从同步

在从库中执行以下命令:

CHANGE MASTER TO

MASTER_HOST='master_host', # 主数据库IP地址

MASTER_USER='repl', # 主数据库的用户名

MASTER_PASSWORD='password', # 主数据库的密码

MASTER_LOG_FILE='mysql-bin.000001', # 主数据库中最后的二进制日志文件名字

MASTER_LOG_POS=120; # 主数据库中最后的日志文件位置

通过SHOW MASTER STATUS命令获取主数据库中的二进制日志文件名和位置。

SHOW MASTER STATUS;

执行START SLAVE在从数据库中启动主从同步。

START SLAVE;

通过SHOW SLAVE STATUS命令,可以查看从数据库中的主从同步状态。

SHOW SLAVE STATUS;

4. 验证主从同步

在主库中插入一条数据,例如:

USE test;

INSERT INTO demo VALUES ('1', 'hello, world');

在从库中查询数据,可以看到主库中插入的数据已经同步到从库中了。

USE test;

SELECT * FROM demo;

以上就是MySQL主从复制的配置步骤,通过主从复制可以提高数据的可用性以及读写分流的效率,适用于数据库集群的搭建。

MySQL主从复制是MySQL数据库中的一个重要功能,能够将一份数据库的数据备份到另外一台或多台服务器上,从而实现数据的高可用性、负载均衡以及灾备备份等功能。

下面是实现MySQL主从复制的详细步骤:

1. 首先确认主从服务器的MySQL版本是否相同,如果不相同,则需要升级或降级MySQL版本。

2. 打开主服务器上的my.cnf文件,找到[mysqld]的标识符,在该标识符下增加以下信息:

log-bin=mysql-bin

server-id=1

其中log-bin用于开启MySQL二进制日志, server-id用于设置主服务器的唯一ID。

3. 重启主服务器MySQL服务。

4. 在从服务器上,同样打开my.cnf文件,增加以下信息:

server-id=2

其中server-id用于设置从服务器的唯一ID,其值必须与主服务器不同。

5. 重启从服务器MySQL服务。

6. 登录主服务器MySQL,为从服务器创建一个专门负责从主服务器复制数据的用户,例如:

GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password';

其中%代表允许从任意的IP地址上进行,slaver_user为用户名称,password为密码。

7. 查看当前主服务器的binlog文件名和binlog位置(offset):

SHOW MASTER STATUS;

将该结果记录下来,备用。

8. 登录从服务器MySQL,执行以下命令:

CHANGE MASTER TO

MASTER_HOST='ip_address_or_hostname_of_master',

MASTER_USER='slave_user',

MASTER_PASSWORD='password',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=107;

其中,MASTER_HOST为主服务器IP或hostname,MASTER_USER和MASTER_PASSWORD是之前为从服务器创建的用户和密码。

MASTER_LOG_FILE与MASTER_LOG_POS用于指定从服务器从哪个binlog文件的哪个位置开始复制数据。

9. 执行以下命令开启从服务器到主服务器的连接:

START SLAVE;

10. 查看从服务器的状态:

SHOW SLAVE STATUS\G

如果Slave_IO_Running和Slave_SQL_Running的值都为Yes,则说明主从复制已经成功建立。

总结:MySQL主从复制是MySQL数据库中的一个重要功能,通过该功能可以实现数据的灾备备份、负载均衡、数据可靠性等,需要具备一定的MySQL基础知识才能完成以上步骤操作。