mysql主从复制从机_mysql主从复制(一主一从)

概念

085ef0e1e69a040f7c0aa4c758ba786f.png

162c1ef7eaf0bf19144affcdca162a5f.png

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

安装mysql(一主一从)

192.168.138.187  主机

192.168.138.188  丛机

步骤一:检查虚拟机中是否有mysql环境,并将其卸载,命令如下

rpm -qa | grep -i mysql

d484b5dec28fb5d6dda057245d38a467.png

如果有使用【rpm -e --nodeps MySQL-client-5.5.44-1.linux2.6.x86_64】命令将其删除;

使用【find / -name mysql】命令查看是否有相关的mysql文件夹

971565c576e85d84a87bb6d8cd2a20d7.png

有的话,使用【rm -rf 文件名】删除相关文件或文件夹

03834d4c9731de229fad99bdd8e99418.png

步骤二:在【/usr/local】目录下使用命令【mkdir mysql】新建一个文件夹名为mysql,将tar文件放在该mysql文件夹下

058f6fc2a9a779324bd71fa4c9d1416e.png

步骤三:使用【tar -xvf MySQL-5.5.44-1.linux2.6.x86_64.rpm-bundle.tar】命令解压文件

cf6add171bfebaae155e36890652122d.png

步骤四:安装mysql客户端,命令如下:

rpm -ivh MySQL-client-5.5.44-1.linux2.6.x86_64.rpm --nodeps

6a1c8fa5bc8dd4d94bb2a978b488b8e2.png

注意:安装客户端和服务端的时候,如果版本冲突,使用【yum remove mysql-libs】命令;

步骤五:安装服务端,命令如下:

rpm -ivh MySQL-server-5.5.44-1.linux2.6.x86_64.rpm --nodeps

ec11132a524a357ff31d57de3e1a7c5c.png

步骤六:检测是否安装了客户端和服务端

40f7d9bad5e637ee9a138b1e2964c8db.png

步骤七:启动mysql服务

service mysql start

步骤八:修改密码

如果使用【mysqladmin -uroot -p password 'root'】命令修改报如下错误

ae75a16b4d64c1f26983af3ba133346a.png

解决方案:

8.1 使用命令【service mysql stop】

8.2 使用命令【mysqld_safe --skip-grant-tables &】

8.3 输入【mysql -uroot -p】命令回车

8.4 输入【use mysq;】命令

a7587347e25702034ff37b782ef16d31.png

8.5 输入【update user set password=PASSWORD("root")where user="root";】命令,修改密码为root

4c275e894c2199acfb895dc9ad649809.png

8.6 输入【flush privileges; 】更新权限

9bfcd59ff269cb7e2389133c97695934.png

8.7 输入【quit】退出

8.8 输入【service mysql restart】命令启动

8.9 输入【mysql -uroot -p】回车

8.10 输入修改的密码

81591df27ceb19564494cc90c6454772.png

步骤九:SQLyog连接虚拟机mysql

连接报1130错误,就代表没有权限进行远程连接,需要更改权限

f8bfe4188062ea29bcb187ee2af0345a.png

9.1 登录mysql服务器,使用【use mysql;】命令切换到mysql数据库下

d032359b1484f3327b32be9410544d3d.png

9.2 查询当前用户表的用户名和host信息,命令如下:

select user,host from user;

80fd3901ab9d5fa380ca0311f5fe5152.png

host文件为127.0.0.1代表只能本机使用,外界用不了,所以我们需要修改host属性为%;

9.3 更改权限,命令如下:

update user set host='%' where user='root';

455149d1024a673ee67903c64a6f177c.png

如果报23000的错误,请忽略;

9.4 使用【select user,host from user;】命令查看host权限是否修改成功

d1f2524b8b1911287349f1d6ec208a54.png

9.5 刷新权限

flush privileges;

869ff2fd31a33c02a9d3aa1d95bda8db.png

9.6 退出客户端,重启mysql,然后去连接SQLyog

搭建主从复制环境

配置主节点

找到my.cnf配置文件,rpm方式安装在/etc下没有该文件,mysql默认启动的时候会加载/usr/share/mysql/my-medium.cnf,只需要将这个文件复制到/etc下改名为my.cnf即可

步骤一:复制文件到【/etc】目录下

cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

步骤二:修改my.cnf文件

vim /etc/my.cnf

步骤三:更改内容如下:

server-id =187 #保证唯一,建议配置成ip地址第四位

log-bin=mysql-bin #为了让主机生成二进制SQL日志执行文件

步骤四:重启mysql服务器

service mysql restart

步骤五:在数据库中查看当前server-id是否生效

07e8ac4518a387358cf631e26d41f360.png

步骤六:查看当前主服务器状态,如果值为不是null代表成功

818e55cbdb66224e07da9b0445c37c42.png

配置从节点

步骤一:复制文件到【/etc】目录下

cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

步骤二:编辑my.cnf文件

vim /etc/my.cnf

步骤三:更改内容如下:

server-id = 188

log-bin=mysql-bin

binlog_do_db=test

步骤四:重启mysql服务器

service mysql restart

步骤五:查看当前service-id是否生效

SHOW VARIABLES LIKE 'server_id'

8b741d59ccbcfbca03c4201bd30dc6d8.png

设置服务器读取权限

主服务器创建一个账号,将账号分配给从服务器,从服务器拿到该账号然后才可以进行同步操作

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

从服务器执行同步操作

设置同步,根据主服务器的ip地址,生成的权限账号的用户名和密码以及二进制文件的名称还有文件大小进行同步

CHANGE MASTER TO MASTER_HOST='192.168.138.187',MASTER_USER='wn',MASTER_PASSWORD='wn',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=235;

开启同步

START SLAVE

测试

在主服务中创建表,测试从服务器会不会同步

810b288c92da001a0eec3721366d9367.png

查看从服务器

4c54227e6ef597f70b059d35aef2acde.png

这样就实现了主从复制

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值