MySQL主从搭建

1、环境

mysql5.6.37 + centos7.0 64位

2、一主多从

主从复制原理

     Mysql主从复制的实现原理如下图所示:

  MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。

1.  master节点上的操作

1.1 linux配置my.cnf, 注意:修改要放到mysqld下面

1.1 开启二进制日志

修改/usr/my.cnf  文件,加入如下配置

vi  /usr/my.cnf


 

log-bin=mysql-bin  //将mysql二进制日志取名为mysql-bin

binlog-ignore-db  //表示不同步什么数据库

binlog-do-db        //表示只同步什么数据库,除此之外,其它不同步(如果这个参数配置了,上面那个参数可以不配置)

1.2 配置唯一的server-id,一般使用

server-id=247


重启mysql

#


1.2 获得master二进制日志文件名及位置(Position)

1、查看serverid是否正确

show variables like '%server_id%';

 

2、查看位置

show master status;

执行完之后记录下这两值(File,Position),然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变

1.3 MySql允许用户远程访问

//允许所有用户访问所有权限。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'admin123' WITH GRANT OPTION;
FLUSH PRIVILEGES;

2.  slave节点上的配置

 注意事项:如果主库里面有初始化数据,那么在主从复制前需要把数据先导入到从库以保证初始一致性

2.1 配置唯一的server-id

server-id=247

2.2 配置需要读取的库

binlog_do_db=cloud   ###同步数据库

2.3 查看master状态

2.4根据master状态设置slave

登录mysql,先关闭slave,

关闭slave(如果你以前配置过主从的话,一定要先关闭,然后重设)

stop slave;
reset slave;

修改slave配置

change master to master_host='10.10.26.163',master_user='root',master_password='admin123',
         master_log_file='mysql-bin.000002',master_log_pos=75721192;

2.5 启用slave服务

start slave;

查看是否配置成功:
 

show slave status;

 

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、付费专栏及课程。

余额充值