在 Linux 服务器上搭建 MySQL 数据库服务,通常有以下几种主流方式,具体选择取决于你的发行版(如 Ubuntu、CentOS/RHEL)和需求。下面以 Ubuntu 22.04 和 CentOS 8/9 为例,提供详细步骤:
✅ 一、使用官方 YUM/APT 源安装(推荐)
🐧 Ubuntu / Debian 系
# 1. 更新软件包索引
sudo apt update
# 2. 安装 MySQL Server(会自动安装客户端)
sudo apt install mysql-server -y
# 3. 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql
# 4. 安全初始化(可选但强烈建议)
sudo mysql_secure_installation
# 按提示设置 root 密码、移除匿名用户、禁止远程 root 登录等
💡 验证安装:
mysql --version sudo mysql -u root -p
🐧 CentOS / RHEL / Rocky Linux / AlmaLinux
# 1. 安装 EPEL 和 MySQL 仓库(以 CentOS 8+ 为例)
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
# 或从官网下载对应版本 RPM(访问 https://dev.mysql.com/downloads/repo/yum/)
# 2. 启用 MySQL 8.0 社区版(默认已启用)
sudo dnf config-manager --set-enabled mysql80-community
# 3. 安装 MySQL Server
sudo dnf install mysql-community-server -y
# 4. 启动服务
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 5. 获取临时 root 密码(首次安装后生成)
sudo grep 'temporary password' /var/log/mysqld.log
# 6. 登录并修改密码
mysql -u root -p
# 输入临时密码 → 执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword!';
FLUSH PRIVILEGES;
🔒 后续可运行
mysql_secure_installation进一步加固。
🛠️ 二、常用配置与优化(可选)
修改配置文件(路径因系统而异)
| 系统 | 配置文件路径 |
|---|---|
| Ubuntu | /etc/mysql/mysql.conf.d/mysqld.cnf |
| CentOS | /etc/my.cnf 或 /etc/my.cnf.d/server.cnf |
示例:调整最大连接数、字符集、缓冲池大小:
[mysqld]
max_connections = 500
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
innodb_buffer_pool_size = 2G
保存后重启服务:
sudo systemctl restart mysql # Ubuntu
sudo systemctl restart mysqld # CentOS
🌐 三、允许远程访问(谨慎操作!)
⚠️ 生产环境请配合防火墙、SSH 密钥、SSL 加密等措施,不要直接暴露裸端口。
步骤:
-
编辑配置文件,注释掉绑定地址(默认只监听 127.0.0.1):
bind-address = 0.0.0.0 -
创建远程用户(避免用 root 远程登录!):
CREATE USER 'appuser'@'%' IDENTIFIED BY 'StrongPassword!'; GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%'; FLUSH PRIVILEGES; -
开放防火墙端口(默认 3306):
# Ubuntu (ufw) sudo ufw allow 3306/tcp # CentOS (firewalld) sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload -
测试远程连接(从另一台机器):
mysql -h <服务器IP> -u appuser -p
📦 四、其他部署方式(高级场景)
| 方式 | 适用场景 |
|---|---|
| Docker 容器部署 | 快速测试、微服务架构 |
| 二进制编译安装 | 特殊定制需求、旧系统兼容 |
| 云数据库(RDS/Aurora) | 高可用、免运维(推荐生产) |
Docker 示例(快速体验):
docker run -d
--name mysql
-e MYSQL_ROOT_PASSWORD=yourpassword
-p 3306:3306
mysql:8.0
🔍 五、常见问题排查
| 问题现象 | 解决方法 |
|---|---|
| 服务无法启动 | systemctl status mysql + 查看日志 /var/log/mysql/error.log |
| 忘记 root 密码 | 跳过授权表启动 → 重置密码(见官方文档) |
| 连接被拒绝 | 检查防火墙、bind-address、用户权限 |
| 中文乱码 | 确保 utf8mb4 字符集 + 客户端指定 charset |
需要我根据你的具体系统版本(如 Ubuntu 20.04、Debian 12、CentOS 7)提供定制化脚本?或者需要自动化部署(Ansible/SaltStack)方案?欢迎告诉我你的环境细节 😊
CLOUD技术博