千家信息网

基于centos6的mysql5.7.13主从部署(二)

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,基于centos6的mysql5.7.13主从部署(二)一、部署主mysql说明:mysql1是主机,mysql2是备机。创建库[root@mysql1 ~]# mysql -uroot -p1234
千家信息网最后更新 2025年02月02日基于centos6的mysql5.7.13主从部署(二)

基于centos6的mysql5.7.13主从部署(二)

一、部署主mysql
说明:mysql1是主机,mysql2是备机。

  1. 创建库

    [root@mysql1 ~]# mysql -uroot -p123456

    mysql> create database shiyan;

    mysql> exit

    Bye

  2. 将mysql库拷贝到shiyan库中

    [root@mysql1 ~]# mysqldump -uroot -p123456 mysql > 234.sql

    [root@mysql1 ~]# mysql -uroot -p123456 shiyan < 234.sql

  3. 查看是否拷贝成功

    [root@mysql1 ~]# mysql -uroot -p123456

    mysql> use shiyan;

    mysql> show tables;

  4. 修改主my.cnf配置文件

    [root@mysql1 ~]# vim /etc/my.cnf

    修改内容如下:


    21 server_id = 1 # 设置1为主,2为从,注意主从的id不要相同

    15 log_bin = mysql-bin # 打开注释,名字可以更改,但是必须和从库配置相同名字

    16 binlog-ignore-db = mysql # 不允许mysql库同步

    17 binlog-do-db = shiyan #允许shiyan库同步



    保存,退出!


  5. 说明:

    binlog-do-db=db1,db2 //类似白名单,将需要同步的库添进去

    binlog-ignore-db=db3 //类似黑名单,将不需要同步的库列出来

  6. 重启mysqld服务

    [root@mysql1 ~]# /etc/init.d/mysqld restart

    [root@mysql1 ~]# ll /usr/local/mysql/data

    可以看到两个以mysql-bin开头的文件,这个就是它的log-bin!

  7. 做授权相关的,做主从一定要有一个专门传输mysql-bin(log-bin)的用户

    [root@mysql1 ~]# mysql -uroot -p123456

    mysql> grant replication slave on *.* to 'repl'@'192.168.100.128' identified by '123456';

    说明:

    上面命令的意思是:授权从机(slave)IP:192.168.100.128,能以账户repl,密码123456远程登入到主机复制的权限!

    授权(grant)格式:grant 权限(select查询、insert插入、update更新、delete删除)on 数据库对象(表、链) to 用户

  8. 刷新权限

    [root@mysql1 ~]# mysql -u root -p123456

    mysql> flush privileges;

  9. 表的读锁死

    mysql> flush tables with read lock;

    说明:为了防止在操作过程中数据更新,导致数据不一致,所以需要先刷新数据并锁定数据库:flush tables with read lock。

  10. 读一个数据

    mysql> show master status;

  11. 登入数据库验证(在从机上)

    [root@mysql2 ~]# mysql -urepl -h292.168.100.129 -p123456

二、部署从mysql2

  1. 编辑从mysql2配置文件

    [root@mysql2 ~]# vim /etc/my.cnf

    修改内容如下:


    21 server_id = 2 # 设置1为主,2为从,注意主从的id不要相同

    15 log_bin = mysql-bin # 打开注释,名字可以更改,但是必须和从库配置相同名字

    16 binlog-ignore-db = mysql # 不允许mysql库同步

    17 binlog-do-db = shiyan #允许shiyan库同步

    保存,退出!

  2. 说明:

    binlog-do-db=db1,db2 //类似白名单,将需要同步的库添进去

    binlog-ignore-db=db3 //类似黑名单,将不需要同步的库列出来

  3. 重启mysql服务

    [root@mysql2 ~]# /etc/init.d/mysqld restart

    [root@mysql2 ~]# ll /usr/local/mysql/data

  4. 在mysql2中创建shiyan库

    [root@mysql2 ~]# mysql -uroot -p123456

    mysql> create database shiyan;

    Query OK, 1 row affected (0.01 sec)

  5. 将主库备份的234.sql文件导入到从库中的shiyan库中


    [root@mysql1 ~]# scp 234.sql root@192.168.100.128:/root/

    报错:

    解决方法:

    [root@mysql1 ~]# yum install openssh-clients -y

    说明:openssh-clients包在主从服务器上都要安装!

    [root@mysql2 ~]# mysql -uroot -p123456 shiyan < 234.sql

  6. 查看下shiyan库

    mysql> use shiyan;

    mysql> show databases shiyan;

  7. 停止(从)mysql2

    [root@mysql2 ~]# mysql -uroot -p123456

    mysql> stop slave;

    Query OK, 0 rows affected, 1 warning (0.00 sec)

  8. 指定主库信息(非常重要的一步)在从库上操作!

    mysql> change master to master_host='192.168.100.129',master_port=3306,master_user='repl',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=603;

    说明:

    这里的master_host为主库的ip地址,特别注意语法,数字不用加单引号!

    master_log_file:就是在主库中通过show master status;查看出来的file部分;

    master_log_pos:为主库中查看出来的position部分。

  9. 启动(从)mysql2,在mysql2上操作!

    mysql> start slave;

  10. 检测同步是否成功

    说明:在mysql2上操作

    mysql> show slave status\G;

    注意:Slave_IO_Running和Slave_SQL_Running必须都是yes!

至此,两台数据库服务器已经是同步状态,下一步就要进行同步测试!

扩展:

如果在mysql2做同步检查时出现如下错误:

可以看到Slave_IO_Running:NO

解决方法:

先查看mysql错误日志

[root@mysql2 ~]# cd /usr/local/mysql/data

[root@mysql2 data]# cat mysqld.err

原因分析:

mysql5.7(5.6也有)的复制引入了uuid的概念,各个复制结构中的server_uuid得保证不一样,但是查看到直接copy data文件夹后server_uuid是相同的,show variables like '%server_uuid%';

解决方法:

找到data文件夹下的auto.cnf文件,修改里面的uuid值,保证各个db的uuid不一样,重启db即可!


同步 数据 文件 主从 相同 名字 数据库 服务 配置 方法 权限 成功 主机 内容 名单 就是 拷贝 文件夹 服务器 注释 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 药学信息资源中文数据库有哪些 壹町美网络技术 数据库表的内容如何删除 腾讯云推出首款自研服务器星星海 数据库在备份是可以操作吗 软件开发方案设计软件 新乡星易网络技术有限公司 pg数据库垂直分表 软件开发岗位上游下游看法 社区网络安全防范措施 3家公司被网络安全审查 软件开发有研究生专业吗 剑网三我的发言被服务器屏蔽 陕西西安软件开发有限公司 基于内容的推荐算法数据库 计算机网络技术第二版徐红 互联网掌阅科技 网络服务器不能运行 多玩诛仙数据库 收货单软件开发 考勤管理系统 数据库设计 零基础自学网络安全培训 三级计算机网络技术考试 软件开发有研究生专业吗 实惠的进销存管理软件开发机构 多久才能成为软件开发师 单招软件开发技能测试什么 学软件开发技术需要啥条件 炬华科技能源互联网 im服务器地址
0