MySQL 的双主配置:打造高效、强大的数据库架构!

一、MySQL 安装入门

在构建强大的数据库系统之前,首先需要安装MySQL。无论你是新手还是老手,我们的文章《Linux yum安装Mysql5.7》都将为你提供详尽的步骤和技巧,确保你的MySQL 5.7安装过程既快速又顺利。

二、my.cnf 配置

正确的配置,my.cnf是关键,以满足双主数据库架构的特殊需求。

  • 配置mysql1:

    [mysqld]basedir=/data/mysqldatadir=/data/mysql/datasocket=/data/mysql/mysql.sockcharacter_set_server = utf8lower_case_table_names=1symbolic-links=0log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pidlog-bin=/data/mysql/mysql-bin-masterserver-id=1binlog-ignore-db=performance_schemabinlog-ignore-db=information_schemabinlog-ignore-db=sysbinlog-ignore-db=mysqlslave-skip-errors = allrelay_log=mysql-relay-binlog-slave-updates=1sync_binlog = 1auto_increment_offset = 1auto_increment_increment = 2sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONmax_allowed_packet = 512Minnodb_log_file_size = 2GBdefault-storage-engine = INNODBmax_connections=3000max_user_connections=800innodb_lock_wait_timeout = 50wait_timeout = 86400interactive_timeout = 86400max_connect_errors = 10000back_log=500transaction_isolation = READ-COMMITTEDcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_connect=\\\'SET NAMES utf8mb4\\\'default-time_zone = \\\'+8:00\\\'
    [client]port=3306default-character-set = utf8mb4
    [mysql]default-character-set = utf8mb4socket=/data/mysql/mysql.sock

    • 配置mysql2:
      如下配置不同,其它与mysql1一样。

    server-id=3auto_increment_offset = 2

    三、主节点状态的确认

    在双主配置中,确认每个MySQL节点(mysql1 和 mysql2)的master状态是至关重要的。我们将向你展示如何轻松检查和确认每个节点的角色,确保它们准备就绪。

    • 重启mysql1、mysql2

    systemctl restart mysqld
    • 分别查看mysql1、mysql2的状态

    show master status;

    mysql1 如下:

    mysql2 如下:

    上图mysql1与mysql2的File和Position这两个参数在后续步骤用于建立关系。

    四、授权与安全

    安全性是数据库管理中不可忽视的一环。我们将指导你如何分别为mysql1 和 mysql2 进行授权,确保只有授权用户才能访问和操作数据库,保护你的数据不受威胁。

    分别登录mysql1、mysql2进行授权,这里以root用户为列。

      grant replication slave on *.* to \\\'root\\\'@\\\'%\\\' identified by \\\'当前mysql root密码\\\';grant all privileges on *.* to \\\'root\\\'@\\\'%\\\' identified by \\\'当前mysql root密码\\\';flush privileges;

      五、3306端口的开启

      为了实现数据库的远程访问和同步,必须确保MySQL的默认端口3306在mysql1 和 mysql2 上均已开启。我们提供了一份《Linux firewall几个最常用的操作:开放端口、删除开放的端口、查看端口是否开启、重启防火墙等》,帮助你轻松管理防火墙规则,确保数据流畅传输。

      • 测试mysql1连接mysql2,在mysql1服务器上输入以下命令:

      mysql -uroot -p mysql1密码 -h mysql2IP -P 3306
      • 测试mysql2连接mysql1,在mysql2服务器上输入以下命令:

      mysql -uroot -p mysql1密码 -h mysql1IP -P 3306

      能正常连接说明端口畅通。

      六、实现数据库的无缝同步

      双主数据库的核心优势在于数据的实时同步。我们将详细介绍如何配置mysql1 和 mysql2 之间的数据同步,无论数据更新发生在哪一台服务器上,都能保证另一台服务器上的数据保持最新。

      • 建立mysql1 与 mysql2的关系

      change master to master_host=\\\'mysql2的IP\\\',master_port=3306,master_user=\\\'root\\\',master_password=\\\'mysql2 root用户密码\\\',master_log_file=\\\'上图mysql2的File(mysql-bin-master.000013)\\\',master_log_pos=上图mysql2的Podition(1746);

      mysql1启动slave,并查看状态

      start slave;show slave status \\\\G;

      Slave_IO_Running和Slave_SQL_Running都为YES,则配置成功。如果不是则配置失败,需要查看到mysql2的3306是否开通。

      • 建立mysql2 与 mysql1的关系

      与上面步骤一样,只是将mysql2相关地方换成mysql1,如下:

      change master to master_host=\\\'mysql2的IP\\\',master_port=3306,master_user=\\\'root\\\',master_password=\\\'mysql1 root用户密码\\\',master_log_file=\\\'上图mysql1的File\\\',master_log_pos=上图mysql1的Podition;

      七、全面测试与验证

      在配置完成后,即可进行测试,验证双主配置的效果和稳定性。如果没有同步,可重复步骤三与步骤六,重新更新Position。


      跟随本篇全攻略,你将能够构建一个高效、稳定且安全的MySQL 双主数据库架构。无论你是数据库管理员、开发者还是技术爱好者,这篇文章都将为你提供宝贵的知识和技巧。现在就开始你的数据库优化之旅吧!??

      关键词:MySQL , 双主配置, 数据库优化, 数据同步,, 数据库安全, 防火墙配置

      原创文章,作者:网络技术联盟站,如若转载,请注明出处:https://www.sudun.com/ask/49883.html

      (0)
      网络技术联盟站's avatar网络技术联盟站
      上一篇 2024年5月12日 下午9:51
      下一篇 2024年5月12日 下午9:53

      相关推荐

      发表回复

      您的邮箱地址不会被公开。 必填项已用 * 标注