在Linux服务器上如何搭建MySQL数据库服务?

在 Linux 服务器上搭建 MySQL 数据库服务,通常有以下几种主流方式,具体选择取决于你的发行版(如 Ubuntu、CentOS/RHEL)和需求。下面以 Ubuntu 22.04CentOS 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 加密等措施,不要直接暴露裸端口

步骤:

  1. 编辑配置文件,注释掉绑定地址(默认只监听 127.0.0.1):

    bind-address = 0.0.0.0
  2. 创建远程用户(避免用 root 远程登录!):

    CREATE USER 'appuser'@'%' IDENTIFIED BY 'StrongPassword!';
    GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%';
    FLUSH PRIVILEGES;
  3. 开放防火墙端口(默认 3306):

    # Ubuntu (ufw)
    sudo ufw allow 3306/tcp
    
    # CentOS (firewalld)
    sudo firewall-cmd --permanent --add-port=3306/tcp
    sudo firewall-cmd --reload
  4. 测试远程连接(从另一台机器):

    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技术博 » 在Linux服务器上如何搭建MySQL数据库服务?