在Linux系统中部署MySQL数据库是很多服务端开发、运维工作的基础操作,不同发行版的安装方式略有差异,但核心配置逻辑基本一致。本文以Ubuntu和CentOS两个主流发行版为例,讲解完整的安装配置流程。

一、不同Linux发行版的MySQL安装步骤
1. Ubuntu/Debian系发行版安装
Ubuntu系统默认的包管理器是apt,安装前先更新软件源索引,再执行安装命令:
# 更新软件源 sudo apt update # 安装MySQL服务端和客户端 sudo apt install mysql-server mysql-client -y
2. CentOS/RHEL系发行版安装
CentOS系统使用yum包管理器,需要先添加MySQL官方源再安装,避免安装到系统自带的MariaDB:
# 下载MySQL官方yum源 sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm # 安装yum源 sudo rpm -ivh mysql80-community-release-el7-5.noarch.rpm # 安装MySQL服务 sudo yum install mysql-community-server -y
二、MySQL服务初始化与启动
安装完成后需要先初始化数据库,再启动服务并设置开机自启:
# Ubuntu系统启动服务 sudo systemctl start mysql # CentOS系统启动服务 sudo systemctl start mysqld # 设置开机自启 sudo systemctl enable mysql # Ubuntu sudo systemctl enable mysqld # CentOS # 查看服务运行状态 sudo systemctl status mysql # Ubuntu sudo systemctl status mysqld # CentOS
CentOS系统安装完成后,会在/var/log/mysqld.log中生成临时root密码,需要先获取该密码用于首次登录:
sudo grep 'temporary password' /var/log/mysqld.log
三、MySQL安全配置
首次登录MySQL后,建议执行安全配置脚本,设置root密码、移除匿名用户、禁止root远程登录等:
# 执行安全配置脚本 sudo mysql_secure_installation
脚本执行过程中会提示以下操作:
- 输入当前root密码,CentOS输入之前获取的临时密码,Ubuntu默认root无密码直接回车
- 是否设置新的root密码,建议选择是并设置复杂度足够的密码
- 是否移除匿名用户,选择是
- 是否禁止root远程登录,生产环境建议选择是
- 是否移除测试数据库,选择是
- 是否重新加载权限表,选择是
四、基础配置调整
MySQL的配置文件路径在不同系统略有差异,Ubuntu默认是/etc/mysql/mysql.conf.d/mysqld.cnf,CentOS默认是/etc/my.cnf,可以修改以下常用配置:
[mysqld] # 设置字符集为utf8mb4,支持emoji等特殊字符 character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci # 设置监听地址,0.0.0.0表示允许所有IP访问,生产环境建议指定具体IP bind-address=0.0.0.0 # 设置默认存储引擎 default-storage-engine=INNODB # 设置最大连接数 max_connections=200
修改完成后重启MySQL服务使配置生效:
sudo systemctl restart mysql # Ubuntu sudo systemctl restart mysqld # CentOS
五、创建用户与权限分配
不建议直接使用root用户操作数据库,建议创建普通用户并分配对应权限:
-- 登录MySQL mysql -u root -p -- 创建用户,允许所有IP访问,密码设置为Test_1234 CREATE USER 'testuser'@'%' IDENTIFIED BY 'Test_1234'; -- 创建测试数据库 CREATE DATABASE testdb; -- 给用户分配testdb数据库的所有权限 GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'%'; -- 刷新权限使配置生效 FLUSH PRIVILEGES;
六、验证安装配置结果
使用新创建的用户登录数据库,验证是否可以正常操作:
# 使用testuser登录
mysql -u testuser -p -h 127.0.0.1
# 查看所有数据库
SHOW DATABASES;
# 切换到testdb数据库
USE testdb;
# 创建测试表
CREATE TABLE user_info (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT
);
# 插入测试数据
INSERT INTO user_info (name, age) VALUES ('张三', 25);
# 查询数据
SELECT * FROM user_info;
如果能正常执行上述操作,说明MySQL已经安装配置完成,可以正常提供服务。