目录
- MySQL 简介
- MySQL 安装
- MySQL 基础配置
- MySQL 主从复制配置
- MySQL 集群配置
- 总结
1. MySQL 简介
MySQL 是一个广泛使用的关系型数据库管理系统,具有高性能、高可靠性和易用性等特点。它支持多种部署模式,包括单机模式、主从复制模式(用于高可用性和读写分离)以及集群模式(用于分布式部署和高扩展性)。
2. MySQL 安装
MySQL 可以安装在各种操作系统上,这里介绍在 Ubuntu 和 CentOS 系统上的安装方法。
2.1 在 Ubuntu 上安装 MySQL
-
更新包列表并安装 MySQL:
sudo apt-get update sudo apt-get install mysql-server
-
安装完成后,MySQL 服务会自动启动。你可以通过以下命令检查 MySQL 服务状态:
sudo systemctl status mysql
2.2 在 CentOS 上安装 MySQL
-
添加 MySQL 官方 YUM 源并安装 MySQL:
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm sudo yum install mysql-community-server
-
安装完成后,启动 MySQL 服务并设置开机自启:
sudo systemctl start mysqld sudo systemctl enable mysqld
-
检查 MySQL 服务状态:
sudo systemctl status mysqld
3. MySQL 基础配置
3.1 安全初始化
在安装完 MySQL 后,推荐进行安全初始化,以确保数据库的安全性。
-
获取 MySQL 默认生成的 root 密码:
sudo grep 'temporary password' /var/log/mysqld.log
-
运行 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)
-
编辑主服务器上的 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),用于记录数据库的更改操作。
-
创建一个复制用户,并为其授予复制权限:
CREATE USER 'replica_user'@'%' IDENTIFIED BY 'your_password'; GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%'; FLUSH PRIVILEGES;
-
获取主服务器的二进制日志文件名和位置:
SHOW MASTER STATUS;
记下输出的
File
和Position
,在配置从服务器时会用到。 -
重启 MySQL 服务:
sudo systemctl restart mysql
4.2 配置从服务器(Slave)
-
编辑从服务器上的 MySQL 配置文件
my.cnf
,添加如下配置:[mysqld] server-id = 2 relay-log = /var/log/mysql/mysql-relay-bin.log
-
登录从服务器的 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_FILE
和MASTER_LOG_POS
:使用在主服务器上获取的日志文件名和位置。
-
启动从服务器的复制进程:
START SLAVE;
-
检查从服务器的复制状态:
SHOW SLAVE STATUS\G;
确保
Slave_IO_Running
和Slave_SQL_Running
都显示为Yes
。
5. MySQL 集群配置
MySQL 集群是一个分布式数据库架构,提供高可用性和高扩展性。以下是 MySQL InnoDB Cluster 的配置方法。
5.1 安装 MySQL Shell 和 Router
-
安装 MySQL Shell 和 MySQL Router:
sudo apt-get install mysql-shell mysql-router
-
启动 MySQL Shell 并连接到 MySQL 服务器:
mysqlsh root@localhost
5.2 配置 InnoDB Cluster
-
在 MySQL Shell 中,创建 InnoDB Cluster:
dba.createCluster('myCluster')
-
添加 MySQL 实例到集群中:
cluster = dba.getCluster('myCluster') cluster.addInstance('root@server2') cluster.addInstance('root@server3')
确保各实例的 MySQL 配置文件中已启用
group_replication
。 -
检查集群状态:
cluster.status()
5.3 配置 MySQL Router
-
在 MySQL Router 上进行路由配置:
mysqlrouter --bootstrap root@localhost --directory /etc/mysqlrouter
-
启动 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