MYSQL主从搭建

MYSQL主从的原理:

在这里插入图片描述

1.首先需要两台服务器【可以和同事/朋友一起搭建】

找到mysql的配置文件进行编辑修改:( /etc/my.cnf)

主库修改:

在主库的mysqld下面追加这一段

#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin
#设置logbin格式
binlog_format=STATEMENT
# 设置不要复制的数据库,可以设置多个
binlog-ignore-db=mysql 
#设置需要同步的数据库(未创建的数据库)
binlog-do-db=table1 
#binlog-do-db设置后,可以不设置binlog-ignore-db

退出并重载配置:

#重载mysql配置
service mysqld restart

进入mysql终端,在主库的mysql上注册从库的账号及密码:

#创建远程连接账号密码
GRANT REPLICATION SLAVE ON *.* TO 'slave_username'@'%' IDENTIFIED BY 'slave_password';
#刷新mysql系统权限相关表
flush privileges;
#查看是否建立完成
select user from mysql.user where user='slave_password';

【slave_username从库账号,slave_password从库密码】

配置完后可以检查主库的配置状态

show master status;

  • File:binlog日志的名字
  • Position :接入点 
  • Binlog_Do_DB :需要复制的数据库
  • Binlog_Ignore_DB :不需要复制的数据库
  • Executed_Gtid_Set:写入binlog日志的事务产生的Gtid的集合

切换从服务器打开从服务器的mysql配置

在mysqld下面加上这一段,

#主服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay
#启用二进制日志
log-bin=mysql-bin

重载配置:

show master status;

如果曾经配置过主从,则需要先重启服务器再进行配置

#停止从服务
stop slave;
#重置master
reset master;

 然后进行主从连接

CHANGE MASTER TO MASTER_HOST='主服务器IP地址', //服务器ip地址
MASTER_USER='远程连接账号',                                           //slave_username
MASTER_PASSWORD='远程连接密码',                                //slave_password
MASTER_LOG_FILE='主库binlog日志名称',                          //FIle
MASTER_LOG_POS=主库接入点;                                        //postion

 主从连接成功后开启同步功能

# 开启同步功能

start slave;

#查看从库状态

show slave status\G;

注意:Slave_IO_Running和Slave_SQL_Running的状态都为Yes时,说明从库配置成功。

主从测试

(1)、在主库上创建jgyw模式,即:

create schema jgyw;

(2)、在主库上的jgyw模式里面创建comm_config表,即:

use jgyw;
CREATE TABLE comm_config (configId varchar(200) NOT NULL ,configValue varchar(1024) DEFAULT NULL ,description varchar(2000) DEFAULT NULL ,PRIMARY KEY (configId)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

(3)、在主库上往comm_config表中插入一条记录,即:

insert into comm_config(configId, configValue, description) values('name', '架构与我', '测试一下');

 

(4)、在从库上查看模式,即:

show schemas;

结果为:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| jgyw               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

说明jgyw模式同步到从库了

(5)、在从库上查看jgyw模式下的表及数据,即:

use jgyw;
show tables;

结果为:

+----------------+
| Tables_in_jgyw |
+----------------+
| comm_config    |
+----------------+
1 row in set (0.00 sec)

说明表也同步好了,再查看数据,即:

select * from comm_config;

结果为:

+----------+--------------+--------------+
| configId | configValue  | description  |
+----------+--------------+--------------+
| name     | 架构与我     | 测试一下     |
+----------+--------------+--------------+
1 row in set (0.00 sec)

说明数据也同步过来了。

MySQL主从复制是一种常用的数据库复制技术,用于实现数据的备份、读写分离和负载均衡。下面是一种简单的MySQL主从搭建步骤: 1. 确保主服务器和从服务器上都安装了MySQL数据库,并且版本一致。 2. 在主服务器上编辑MySQL配置文件(my.cnf),启用二进制日志功能。在配置文件中添加以下内容: ``` [mysqld] log-bin=mysql-bin server-id=1 ``` `log-bin`参数指定二进制日志文件的名称,`server-id`参数指定主服务器的唯一ID。 3. 重启主服务器使配置生效。 4. 在主服务器上创建一个用于复制的用户,并授予适当的权限。例如,可以使用以下命令创建用户并授予权限: ``` CREATE USER 'replication_user'@'slave_ip' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_ip'; FLUSH PRIVILEGES; ``` `slave_ip`是从服务器的IP地址,`password`是用户的密码。 5. 在主服务器上执行以下命令,获取当前二进制日志文件和位置的信息: ``` SHOW MASTER STATUS; ``` 记下输出结果中的文件名和位置信息,稍后在从服务器上配置时会使用。 6. 在从服务器上编辑MySQL配置文件(my.cnf),启用复制功能。在配置文件中添加以下内容: ``` [mysqld] server-id=2 ``` `server-id`参数指定从服务器的唯一ID,与主服务器不同即可。 7. 重启从服务器使配置生效。 8. 在从服务器上执行以下命令,配置从服务器连接到主服务器并开始复制: ``` CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_log_file', MASTER_LOG_POS=master_log_pos; ``` `master_ip`是主服务器的IP地址,`replication_user`和`password`是之前创建的复制用户的用户名和密码,`master_log_file`和`master_log_pos`是之前在主服务器上获取的二进制日志文件和位置信息。 9. 启动从服务器上的复制进程: ``` START SLAVE; ``` 10. 在从服务器上执行以下命令,检查复制状态: ``` SHOW SLAVE STATUS\G ``` 如果输出结果中的`Slave_IO_Running`和`Slave_SQL_Running`都为`Yes`,表示主从复制已成功搭建。 这只是一个简单的MySQL主从搭建步骤,实际环境中可能还需要考虑更多因素,如网络配置、防火墙设置等。具体操作还需要根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值