首页 > 数据库 >MySQL 安装与配置教程:单机、主从复制与集群模式

MySQL 安装与配置教程:单机、主从复制与集群模式

时间:2024-08-19 13:23:22浏览次数:14  
标签:主从复制 配置 单机 sudo MASTER mysql MySQL 服务器

目录
  1. MySQL 简介
  2. MySQL 安装
  3. MySQL 基础配置
  4. MySQL 主从复制配置
  5. MySQL 集群配置
  6. 总结

1. MySQL 简介

MySQL 是一个广泛使用的关系型数据库管理系统,具有高性能、高可靠性和易用性等特点。它支持多种部署模式,包括单机模式、主从复制模式(用于高可用性和读写分离)以及集群模式(用于分布式部署和高扩展性)。

2. MySQL 安装

MySQL 可以安装在各种操作系统上,这里介绍在 Ubuntu 和 CentOS 系统上的安装方法。

2.1 在 Ubuntu 上安装 MySQL
  1. 更新包列表并安装 MySQL:

    sudo apt-get update
    sudo apt-get install mysql-server
    
  2. 安装完成后,MySQL 服务会自动启动。你可以通过以下命令检查 MySQL 服务状态:

    sudo systemctl status mysql
    
2.2 在 CentOS 上安装 MySQL
  1. 添加 MySQL 官方 YUM 源并安装 MySQL:

    sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    sudo yum install mysql-community-server
    
  2. 安装完成后,启动 MySQL 服务并设置开机自启:

    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    
  3. 检查 MySQL 服务状态:

    sudo systemctl status mysqld
    

3. MySQL 基础配置

3.1 安全初始化

在安装完 MySQL 后,推荐进行安全初始化,以确保数据库的安全性。

  1. 获取 MySQL 默认生成的 root 密码:

    sudo grep 'temporary password' /var/log/mysqld.log
    
  2. 运行 MySQL 安全配置脚本:

    sudo mysql_secure_installation
    

    根据提示设置 root 密码,并禁用匿名用户、删除测试数据库、禁用远程 root 登录等。

3.2 修改配置文件

MySQL 的配置文件通常位于 /etc/mysql/mysql.conf.d/mysqld.cnf/etc/my.cnf,可以根据需求进行修改。

一些常见的配置项包括:

  • bind-address: MySQL 监听的 IP 地址,默认是 127.0.0.1。可以修改为 0.0.0.0 以允许外部访问。

    bind-address = 0.0.0.0
    
  • max_connections: 设置最大连接数。

    max_connections = 200
    
  • default-authentication-plugin: 设置默认的认证插件。MySQL 8.0 默认使用 caching_sha2_password,但你可以更改为 mysql_native_password 以支持旧的客户端:

    default-authentication-plugin = mysql_native_password
    

修改完成后,重启 MySQL 服务以应用更改:

sudo systemctl restart mysql

4. MySQL 主从复制配置

MySQL 主从复制(Master-Slave Replication)是实现数据冗余和负载均衡的重要机制。在主从模式中,主服务器负责写操作,从服务器负责读操作,实现读写分离和故障转移。

4.1 配置主服务器(Master)
  1. 编辑主服务器上的 MySQL 配置文件 my.cnf,添加如下配置:

    [mysqld]
    server-id = 1
    log-bin = /var/log/mysql/mysql-bin.log
    binlog-format = ROW
    
    • server-id:为每个 MySQL 服务器指定一个唯一的 ID,主服务器和从服务器的 ID 必须不同。
    • log-bin:启用二进制日志(Binary Log),用于记录数据库的更改操作。
  2. 创建一个复制用户,并为其授予复制权限:

    CREATE USER 'replica_user'@'%' IDENTIFIED BY 'your_password';
    GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
    FLUSH PRIVILEGES;
    
  3. 获取主服务器的二进制日志文件名和位置:

    SHOW MASTER STATUS;
    

    记下输出的 FilePosition,在配置从服务器时会用到。

  4. 重启 MySQL 服务:

    sudo systemctl restart mysql
    
4.2 配置从服务器(Slave)
  1. 编辑从服务器上的 MySQL 配置文件 my.cnf,添加如下配置:

    [mysqld]
    server-id = 2
    relay-log = /var/log/mysql/mysql-relay-bin.log
    
  2. 登录从服务器的 MySQL 控制台,执行如下命令以配置主从复制:

    CHANGE MASTER TO
    MASTER_HOST='master_ip',
    MASTER_USER='replica_user',
    MASTER_PASSWORD='your_password',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=12345;
    
    • MASTER_HOST:主服务器的 IP 地址。
    • MASTER_LOG_FILEMASTER_LOG_POS:使用在主服务器上获取的日志文件名和位置。
  3. 启动从服务器的复制进程:

    START SLAVE;
    
  4. 检查从服务器的复制状态:

    SHOW SLAVE STATUS\G;
    

    确保 Slave_IO_RunningSlave_SQL_Running 都显示为 Yes

5. MySQL 集群配置

MySQL 集群是一个分布式数据库架构,提供高可用性和高扩展性。以下是 MySQL InnoDB Cluster 的配置方法。

5.1 安装 MySQL Shell 和 Router
  1. 安装 MySQL Shell 和 MySQL Router:

    sudo apt-get install mysql-shell mysql-router
    
  2. 启动 MySQL Shell 并连接到 MySQL 服务器:

    mysqlsh root@localhost
    
5.2 配置 InnoDB Cluster
  1. 在 MySQL Shell 中,创建 InnoDB Cluster:

    dba.createCluster('myCluster')
    
  2. 添加 MySQL 实例到集群中:

    cluster = dba.getCluster('myCluster')
    cluster.addInstance('root@server2')
    cluster.addInstance('root@server3')
    

    确保各实例的 MySQL 配置文件中已启用 group_replication

  3. 检查集群状态:

    cluster.status()
    
5.3 配置 MySQL Router
  1. 在 MySQL Router 上进行路由配置:

    mysqlrouter --bootstrap root@localhost --directory /etc/mysqlrouter
    
  2. 启动 MySQL Router:

    sudo mysqlrouter -c /etc/mysqlrouter/mysqlrouter.conf
    

    MySQL Router 将自动处理客户端连接的路由请求,并将其分配到集群的各个节点。

6. 总结

本教程介绍了如何安装 MySQL,并配置单机模式、主从复制模式和集群模式。通过这些配置,你可以充分利用 MySQL 的高性能和高可用性特性,构建一个稳定、可靠的数据库服务架构。

标签:主从复制,配置,单机,sudo,MASTER,mysql,MySQL,服务器
From: https://blog.csdn.net/boydoy1987/article/details/141245367

相关文章

  • Redis 安装与配置教程:单机、哨兵模式与集群模式
    目录Redis简介Redis安装Redis单机配置Redis哨兵模式配置Redis集群模式配置总结1.Redis简介Redis是一个开源的键值对存储系统,支持丰富的数据结构,如字符串、哈希、列表、集合等。它被广泛用于缓存、会话存储、实时分析等场景。Redis提供了多种部署模式,包括单机模......
  • mysql相关命令学习
    查看mysql服务是否启动service mysql status Windows下通过任务管理器即可查看启动mysql服务service mysql start登录Mysqlmima #查看用户密码可以看到两个用户一个是root一个是admin,然后还有登录密码。启动:mysql -u用户名 -p密码mysql -u用户名......
  • 使用duckdb加载mysql
    安装duckdbhttps://duckdb.org/docs/installation/index加载mysql扩展https://duckdb.org/docs/extensions/mysql.html离线安装的话,可以等INSTALLmysql;超时后,根据它提示的URL到有网环境下载,再传到服务器挂载Nginx,修改/etc/hosts指向,再重新执行INSTALL。Demo代码如下:import......
  • MySQL中的char与varchar
    MySQL中的char与varcharchar类型为固定长度的字符串varchar类型是长度可变的字符串char为固定长度的字符串意思是当我们设置一个字段类型为char时,指定char(100),在计算机底层就会分配足够存储这100个字符的空间。那怕我们使用的长度不够100,剩余的空间在存储时将会被填充以空......
  • ElasticSearch IK分词器的MySQL热部署字典(Docker)
    1.下载插件源码找到自己对应ES版本的下载Releases·infinilabs/analysis-ik·GitHub2.添加mysql驱动依赖<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.......
  • .MySQL数据库主从复制
    数据库主从复制Mysql的主从架构模式,是很多企业⼴泛使⽤,并且是⼴为熟知的⼀种架构模式,这是DBA所应该熟练掌握的技能。1.mysql主从复制主要⽤途a.⽤于备份,避免影响业务b.实时灾备,⽤于故障切换c.读写分离,提供查询服务2.mysql主从复制存在的问题a.主库宕机后,数据可能丢失......
  • MySQL 组复制故障恢复的有效策略
    没有MGR环境,只是学学别人经验。原文地址:https://www.percona.com/blog/effective-strategies-for-recovering-mysql-group-replication-from-failures/ 组复制是一种容错/高可用复制拓扑结构,可确保在主节点宕机时,由其他候选成员或辅助成员之一接管,从而使写入和读取操作不间断......
  • 不是 PHP 不行了,而是 MySQL 数据库扛不住啊
    大家好,我是码农先森。大多数的业务场景下PHP还没有达到性能瓶颈,然而MySQL数据库就先行驾崩了。但我们总是不分青红皂白,一股脑的把原因归结于是PHP语言不行了,每当遇到这种情形我就会感叹到PHP的命真苦啊。PHP作为一门优秀的开源编程语言,在编程语言界一直享有「PHP是世界......
  • 如何为MySQL数据库设置有效的账户权限管理策略?
    为MySQL数据库设置有效的账户权限管理策略是确保数据库安全的关键步骤。以下是一些最佳实践:1.**最小权限原则**:  -只为用户分配完成其任务所必需的最小权限集。例如,如果一个用户只需要从特定表中读取数据,就只为他们授予该表的`SELECT`权限。2.**用户账户隔离**:  -......
  • 第二章---MySQL部署
    Windows系统1、安装#1.先到官方进行下载http://dev.mysql.com/downloads/mysql/#2.解压如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.7.16-winx64#3.添加环境变量【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》......