基于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

    wKioL1k_85-QZr__AAAiZD6eSPw387.png

  3. 查看是否拷贝成功

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

    mysql> use shiyan;

    mysql> show tables;

    wKioL1k_9DmCQFkRAAA2diM1KFA608.png

  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库同步



    保存,退出!

    wKiom1lBKKPS2PoEAAAuEmoUQC0672.png

  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

    wKioL1k_98fAqLd5AABN3o3pNXw817.png

    wKioL1lB49yQJVLDAAAXbNiuo0c702.png

    可以看到两个以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';

    wKioL1lBZF2ijUaeAAARSzTNJpM946.png

    说明:

    上面命令的意思是:授权从机(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;

    wKioL1lBZo_AN7clAAAjeMdfJlc610.png

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

    [root@mysql2 ~]# mysql -urepl -h192.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库同步

    保存,退出!

    wKiom1lBKnehQykUAAAvc7qXqeI241.png

  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

    wKioL1lBZ6_zbVZJAACBQDNOlHg240.png

  4. 在mysql2中创建shiyan库

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

    mysql> create database shiyan;

    Query OK, 1 row affected (0.01 sec)

    wKiom1lBLLWwypxNAAAJ6RpkgbI863.png

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


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

    报错:

    wKioL1lBLuvyTAfPAAAMo_JNp-c058.png

    解决方法:

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

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

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

    wKiom1lBMADTqu5GAAAPWZc1o7s183.png

  6. 查看下shiyan库

    mysql> use shiyan;

    mysql> show databases shiyan;

    wKiom1lBaLWzvyf_AAAofS3b_uY382.png

  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;

    wKioL1lBUHDzVz1UAAAKMPVDIyA760.pngwKiom1lBaWWw42VgAAAXkqKl3o8207.png

    说明:

    这里的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;

    wKioL1lBbYuwouw0AABD5HcghwE896.png

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

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

扩展:

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

wKioL1lBbm2z-5F6AAA_9U-e5RE750.png

可以看到Slave_IO_Running:NO

解决方法:

先查看mysql错误日志

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

[root@mysql2 data]# cat mysqld.err

wKioL1lBbyHgsl1gAAAXaIcykDU366.png

原因分析:

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

解决方法:

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


     本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1936873如需转载请自行联系原作者





相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
10月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
2519 16
|
9月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
1228 4
|
11月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
799 10
|
11月前
|
关系型数据库 MySQL 数据库
为什么 MySQL 不推荐用 Docker 部署?
本文探讨了MySQL是否适合容器化的问题,分析了Docker容器在数据安全、性能瓶颈、状态管理及资源隔离等方面的挑战,并指出目前主流分布式数据库如TDSQL和OceanBase仍倾向于部署在物理机或KVM上。
493 0
|
Linux 应用服务中间件 nginx
在CentOS上部署Minikube教程
至此,您已成功在CentOS上部署并使用Minikube。您可以自由探索Kubernetes的世界,熟练配置和管理Kubernetes集群。
1131 20
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
843 17
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
588 18
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
379 10
|
10月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
598 158
|
10月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。