温馨提示×

Linux MySQL安装步骤是什么

小樊
44
2025-12-27 19:37:37
栏目: 云计算

Linux 上安装 MySQL 的标准步骤

一 准备与环境检查

  • 以具备 sudo 权限的账号操作,更新索引并安装依赖:
    • Debian/Ubuntu:sudo apt update && sudo apt install -y libaio1 libnuma1
    • CentOS/RHEL:sudo yum install -y libaio libnuma
  • 建议资源配置:至少 2GB 内存20GB 磁盘空间,以保证数据与日志写入顺畅。

二 使用包管理器安装

  • Debian/Ubuntu
    1. 安装服务器:sudo apt install -y mysql-server
    2. 启动与自启:sudo systemctl start mysql && sudo systemctl enable mysql
    3. 运行安全脚本:sudo mysql_secure_installation(设置 root 密码、移除匿名用户、禁止远程 root 等)
  • CentOS/RHEL(以 EL7 为例)
    1. 添加官方仓库:sudo yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    2. 安装服务器:sudo yum install -y mysql-community-server
    3. 启动与自启:sudo systemctl start mysqld && sudo systemctl enable mysqld
    4. 获取临时密码:sudo grep ‘temporary password’ /var/log/mysqld.log
    5. 运行安全脚本:mysql_secure_installation(首次登录使用上一步的临时密码)

三 配置文件与基础优化

  • 主要配置文件路径:Debian/Ubuntu 为 /etc/mysql/my.cnf,CentOS/RHEL 为 /etc/my.cnf。可按需调整:
    • 性能:设置 InnoDB 缓冲池,例如 innodb_buffer_pool_size = 1G
    • 字符集:使用 utf8mb4 以支持多语言
    • 示例片段: [mysqld] innodb_buffer_pool_size = 1G character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci

四 防火墙与远程访问

  • 开放 3306 端口:
    • UFW(Debian/Ubuntu):sudo ufw allow 3306/tcp && sudo ufw reload
    • Firewalld(CentOS/RHEL):sudo firewall-cmd --permanent --add-port=3306/tcp && sudo firewall-cmd --reload
  • 创建应用专用账号(示例):
    • 登录:mysql -u root -p
    • 建用户:CREATE USER ‘app’@‘192.168.1.%’ IDENTIFIED BY ‘StrongPass!’;
    • 授权:GRANT ALL PRIVILEGES ON appdb.* TO ‘app’@‘192.168.1.%’;
    • 刷新:FLUSH PRIVILEGES;
  • 建议:生产环境避免直接使用 root 远程登录,按需最小化授权并限制来源网段。

五 验证与常用维护

  • 验证与登录:
    • 服务状态:sudo systemctl status mysql(或 mysqld)
    • 登录测试:mysql -u root -p
  • 备份与恢复:
    • 备份单库:mysqldump -u root -p dbname > backup.sql
    • 备份全库:mysqldump -u root -p --all-databases > all.sql
    • 恢复:mysql -u root -p dbname < backup.sql
  • 故障排查与服务管理:
    • 查看错误日志:Debian/Ubuntu 常见路径 /var/log/mysql,CentOS/RHEL 常见路径 /var/log/mysqld.log
    • 常用命令:sudo systemctl restart|stop|status mysql(或 mysqld)。

0