CentOS服务器Mysql主从复制集群的搭建

简介:         在配置Mysql数据库主从复制集群的时候要保证:              1.主从服务器操作系统版本和位数一致。              2.Mysql版本一致。

        在配置Mysql数据库主从复制集群的时候要保证:

             1.主从服务器操作系统版本和位数一致。

             2.Mysql版本一致。

         为了保证稳定性,最好服务器操作系统和Mysql数据库环境一致。


        CentOS服务器上Mysql的安装方法可以参见博客:

        http://blog.csdn.net/jhq0113/article/details/43812895

        

         服务器配置:

         Master:192.168.1.18

         Slave:192.168.1.16


         Master(192.168.1.18)服务器:

         1.编辑/etc/my.cnf

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

        2.配置

       

[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql

#主从复制配置
innodb_flush_log_at_trx_commit=1
sync_binlog=1
#需要备份的数据库
binlog-do-db=orders
#不需要备份的数据库
binlog-ignore-db=mysql

#启动二进制文件
log-bin=mysql-bin

#服务器ID
server-id=1

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


        若没有配置binlog-do-db和binlog_ignore_db,表示备份全部数据库。

        3.重启Mysqld服务

        [root@jhq0229 ~]# service mysqld restart

 

        4.为从Mysql创建用户

         登录

        [root@jhq0229 ~]# mysql -uroot -p
        Enter password:


        创建用户

        mysql> create user 'mastj'@'192.168.1.16' identified by '123456';

       

        配置主从复制权限

        mysql> grant replication slave on *.* to 'mastj'@'192.168.1.16' identified by '123456';


        若orders数据库中已经有数据,还需要:

        锁定数据库

        mysql> flush tables with read lock;

        将数据导入到从数据库,方法有多种,我是用Navicat复制的,复制完成后:

         查看master状态并解锁:

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 |     2005 | orders       | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql> unlock tables;

   

         Slave(192.168.1.16)服务器:

         1.配置服务ID

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

         在[mysqld]下面加入

         server-id=2

        

         重启Mysql服务

         [root@jhq0113 ~]# service mysqld restart


       2.配置复制

        登录mysql

       [root@jhq0113 ~]# mysql -uroot -p

      

       执行

      mysql> change master to master_host='192.168.1.18',

                master_user='mastj',

                master_password='123456',

                master_port=3306,

                master_log_file='mysql-bin.000003',

                master_log_pos=2005,

                master_connect_retry=10;


       参数详解:

      master_host:主服务器的IP。
      master_user:配置主服务器时建立的用户名
      master_password:用户密码
      master_port:主服务器mysql端口,如果未曾修改,默认即可。

      master_log_file:日志文件名称,填写查看master状态时显示的File

      master_log_pos:日志位置,填写查看master状态时显示的Position

      master_connect_retry:重连次数

      启动进程

      mysql> start slave;


      检查主从复制状态

     

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.18
                  Master_User: mastj
                  Master_Port: 3306
                Connect_Retry: 10
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 2369
               Relay_Log_File: jhq0113-relay-bin.000002
                Relay_Log_Pos: 647
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
        若Slave_IO_Running和Slave_SQL_Running均为Yes,则表示连接正常。


       此时就可以测试主从复制了。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
2920 16
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
965 10
|
安全 Linux Shell
使用SCP命令在CentOS 7上向目标服务器传输文件
以上步骤是在CentOS 7系统上使用SCP命令进行文件传输的基础,操作简洁,易于理解。务必在执行命令前确认好各项参数,尤其是目录路径和文件名,以避免不必要的传输错误。
1237 17
|
Ubuntu 安全 小程序
服务器版本的CentOS和Ubuntu哪个更适合你?
但是以上的比较并不说明Ubuntu是不稳定的或者是不安全的,只是以上比较过程中,在稳定性方面Ubuntu稍微逊色了一点。由于Ubuntu在个人桌面电脑的使用率远远高于CentOS,用Ubuntu搭建服务器,如果遇到什么问题,寻找解决方案相对比较容易,这让Ubuntu在选择方面更优于CentOS。如果你是一个初学者,那么毫无疑问Ubuntu是更适合的选择。如果你正在经营自己的公司,在这两者之间,CentOS会更好一些。
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
3600 26
|
安全 关系型数据库 网络安全
安全加固:启动PostgreSQL 14服务器SSL加密的方法指南在CentOS 7环境中
通过上述步骤,你可以为PostgreSQL数据库服务器设置SSL加密,从而增加数据在传输中的安全性。确保维持证书的有效性,并且定期更新和管理密钥,以防止未授权访问。
652 0
|
Kubernetes Ubuntu Linux
阿里云服务器使用centos还是ubuntu?
在选择阿里云服务器操作系统时,CentOS和Ubuntu各有优势。CentOS以企业级稳定性著称,适合数据库、ERP等长期稳定需求;而Ubuntu开发者友好,支持最新硬件与功能,更适合开发/测试环境及云计算场景。两者在阿里云上均有官方镜像支持,性能差异可忽略。无特殊需求时推荐Ubuntu 22.04 LTS,若需RHEL生态则选AlmaLinux。根据实际需求、团队技术栈及场景灵活决策,阿里云还支持更换系统盘降低试错成本。
|
SQL 网络协议 关系型数据库
MySQL 主从复制
主从复制是 MySQL 实现数据冗余和高可用性的关键技术。主库通过 binlog 记录操作,从库异步获取并回放这些日志,确保数据一致性。搭建主从复制需满足:多个数据库实例、主库开启 binlog、不同 server_id、创建复制用户、从库恢复主库数据、配置复制信息并开启复制线程。通过 `change master to` 和 `start slave` 命令启动复制,使用 `show slave status` 检查同步状态。常见问题包括 IO 和 SQL 线程故障,可通过重置和重新配置解决。延时原因涉及主库写入延迟、DUMP 线程性能及从库 SQL 线程串行执行等,需优化配置或启用并行处理
488 40
|
关系型数据库 MySQL 数据库
RDS用多了,你还知道MySQL主从复制底层原理和实现方案吗?
随着数据量增长和业务扩展,单个数据库难以满足需求,需调整为集群模式以实现负载均衡和读写分离。MySQL主从复制是常见的高可用架构,通过binlog日志同步数据,确保主从数据一致性。本文详细介绍MySQL主从复制原理及配置步骤,包括一主二从集群的搭建过程,帮助读者实现稳定可靠的数据库高可用架构。
1137 9
RDS用多了,你还知道MySQL主从复制底层原理和实现方案吗?