MySQL搭建主从复制

从0开始搭建MySQL主从复制

MySQL 复制优势:

  • 主库出现问题,可以快速切换到从库提供服务。
  • 可以在从库上执行查询操作,从主库中更新,实现读写分离,降低主库的访问压力。
  • 可以在从库中执行备份,以避免备份期间影响主库的服务。

搭建步骤

一、master

1) 在master 的配置文件(/usr/my.cnf)中,配置如下内容:

#mysql 服务ID,保证整个集群环境中唯一
server-id=1

#mysql binlog 日志的存储路径和文件名
log-bin=master-bin

#是否只读,1 代表只读, 0 代表读写
read-only=0

#忽略的数据, 指不需要同步的数据库
binlog-ignore-db=mysql

#指定同步的数据库
#binlog-do-db=db01

2) 执行完毕之后,需要重启Mysql:

service mysql restart ;

3) 创建同步数据的账户,并且进行授权操作:

# mysql 5.7
grant replication slave on *.* to 'feng'@'192.168.192.131' identified by 'feng';	
# mysql 8.0
create user feng@'%' identified by 'feng';
grant replication slave on *.* to 'feng'@'192.168.192.131';

flush privileges;

4) 查看master状态:(记住file和position的内容,从服务器第一次同步要用到)

show master status

记住file和position的内容,从服务器要用到
字段含义:

File : 从哪个日志文件开始推送日志文件 
Position : 从哪个位置开始推送日志
Binlog_Ignore_DB : 指定不需要同步的数据库

二、slave

1) 在 slave 端配置文件中,配置如下内容:

    #mysql服务端ID,唯一
    server-id=2

    # 启动MySQL二进制日志,可以用来做数据备份和崩溃恢复,或主服务器挂掉,将此服务器作为其他服务器的主服务器
	relay-log=slave-relay-bin

2) 执行完毕之后,需要重启Mysql:

service mysql restart;

3) 执行如下指令 :

change master to master_host= '192.168.192.130', master_user='feng', master_password='feng', master_log_file='master-bin.000003', master_log_pos=14707;

指定当前从库对应的主库的IP地址,用户名,密码,从哪个日志文件开始的那个位置开始同步推送日志。

4) 开启同步操作

start slave;

show slave status\G;

至此,在从库中插入输入,验证从库同步数据成功。

下期进阶,MySQL读写分离。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL Shell 是 MySQL 官方提供的一款基于 Python 和 JavaScript 开发的交互式 Shell 工具,可以用于管理 MySQL 数据库、执行 SQL 语句、监控 MySQL 实例等。在 MySQL Shell 中,可以使用内置的 ReplicationShell 插件来搭建主从复制。 以下是在 MySQL Shell 中搭建主从复制的步骤: 1. 安装 MySQL Shell 首先需要安装 MySQL Shell。可以在 MySQL 官网下载对应平台的安装包,或者使用操作系统自带的包管理器进行安装。安装完成后,可以通过以下命令启动 MySQL Shell: ``` $ mysqlsh ``` 2. 连接到主服务器 在 MySQL Shell 中,可以通过以下命令连接到主服务器: ``` mysql-js> \connect root@localhost:3306 ``` 其中,`root` 是连接到主服务器的用户名,`localhost` 是主服务器的地址,`3306` 是主服务器的端口号。连接成功后,可以使用以下命令检查主服务器的配置: ``` mysql-js> \sql mysql-sql> SHOW MASTER STATUS; ``` 该命令将显示当前主服务器的二进制日志文件和位置,用于后续配置从服务器。 3. 连接到从服务器 在 MySQL Shell 中,可以通过以下命令连接到从服务器: ``` mysql-js> \connect root@localhost:3307 ``` 其中,`root` 是连接到从服务器的用户名,`localhost` 是从服务器的地址,`3307` 是从服务器的端口号。连接成功后,可以使用以下命令配置从服务器的复制: ``` mysql-js> \sql mysql-sql> CHANGE MASTER TO MASTER_HOST='localhost', MASTER_PORT=3306, MASTER_USER='root', MASTER_PASSWORD='password', MASTER_LOG_FILE='[主服务器的二进制日志文件名]', MASTER_LOG_POS=[主服务器的二进制日志位置]; mysql-sql> START SLAVE; ``` 其中,`localhost` 和 `3306` 分别是主服务器的地址和端口号,`root` 和 `password` 分别是连接到主服务器的用户名和密码,`[主服务器的二进制日志文件名]` 和 `[主服务器的二进制日志位置]` 是主服务器当前二进制日志的文件名和位置。执行以上命令后,从服务器就会开始复制主服务器的数据。 4. 检查主从复制状态 可以使用以下命令检查主从复制状态: ``` mysql-sql> SHOW SLAVE STATUS\G ``` 如果显示 `Slave_IO_Running` 和 `Slave_SQL_Running` 都为 `YES`,则表示主从复制配置成功。 希望以上步骤对您有所帮助!如有任何疑问,欢迎随时追问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值