当前位置:首页>Linux>Linux下MySQL保姆级部署教程|从零到一,新手也能一次成功

Linux下MySQL保姆级部署教程|从零到一,新手也能一次成功

  • 2026-09-02 19:38:09
Linux下MySQL保姆级部署教程|从零到一,新手也能一次成功

     哈喽各位开发者、运维小伙伴👋

MySQL是开源数据库,而Linux作为服务器主流系统,掌握MySQL的标准部署流程,既能避开各种坑,又能保证服务稳定安全。

「本文内容源自个人实操笔记,限于经验有限,如有错误欢迎指正,不胜感激」

📌 部署前必看:核心准备工作

动手前先做好基础检查,避免中途踩坑,这是部署成功的关键前提!

1. 系统环境确认

本文适配主流Linux发行版,大家按需选择对应步骤:

  • CentOS 7/8/RHEL:企业服务器首选,用yum/dnf包管理器

  • Ubuntu 20.04/22.04:云服务器常用,用apt包管理器

查看系统版本命令:

# CentOS/RHELcat /etc/redhat-release

# Ubuntucat /etc/os-release

2. 卸载冲突组件(关键!)

多数Linux系统默认预装MariaDB(MySQL分支),会和官方MySQL冲突,必须先卸载:

# CentOS/RHEL 卸载MariaDBsystemctl stop mariadbyum remove mariadb* -y# Ubuntu 卸载MariaDBsystemctl stop mariadbapt remove mariadb* -yapt autoremove -y

3. 关闭防火墙/开放端口(可选)

MySQL默认端口3306,如需远程连接,务必开放端口;测试环境可临时关闭防火墙简化操作。

⚙️  CentOS/RHEL 系统部署MySQL 8.0(主流稳定版)

CentOS默认源无官方MySQL,需先配置官方YUM源,全程无复杂操作,跟着命令走即可。

步骤1:安装MySQL官方YUM源

# 下载并安装MySQL 8.0源rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el8-4.noarch.rpm

# 禁用系统默认mysql模块(CentOS 8+)
dnf module disable mysql -y

步骤2:安装MySQL服务

# 安装MySQL服务端yum install -y mysql-community-server

步骤3:启动服务+开机自启

# 启动MySQLsystemctl start mysqld

# 设置开机自启(服务器必备)systemctl enable mysqld

# 查看服务状态,显示active (running)即为成功systemctl status mysqld

步骤4:初始化密码+安全配置

MySQL 8.0安装后会自动生成临时root密码,存放在日志文件中:

# 提取临时密码grep 'temporary password' /var/log/mysqld.log

登录MySQL并修改密码(默认密码策略要求:大小写+数字+特殊字符,长度≥8位):

# 登录MySQL,输入刚才提取的临时密码mysql -uroot -p

# 修改root密码(替换为你的强密码)ALTER USER 'root'@'localhost' IDENTIFIED BY '你的强密码';

# 刷新权限FLUSH PRIVILEGES;

# 退出MySQLexit;

步骤5:执行安全加固(必做)

MySQL自带安全脚本,一键删除匿名用户、禁止root远程空登录、删除测试库:

mysql_secure_installation

按提示操作,全程回车+输入密码即可,大幅提升数据库安全性。

⚙️  Ubuntu 系统部署MySQL 8.0

Ubuntu操作更简洁,无需配置第三方源,直接用apt安装即可。

步骤1:更新软件源+安装MySQL

# 更新源apt update

# 安装MySQL服务apt install -y mysql-server

步骤2:启动服务+开机自启

# 启动服务systemctl start mysql

# 开机自启systemctl enable mysql

# 查看状态systemctl status mysql

步骤3:配置root密码(Ubuntu特殊点)

Ubuntu默认采用socket认证,root无需密码登录,需手动修改为密码认证:

# 免密登录MySQLsudo mysql

# 切换mysql库USE mysql;

# 修改认证方式+设置密码ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的强密码';

# 刷新权限FLUSH PRIVILEGES;

# 退出exit;

步骤4:安全加固

mysql_secure_installation

🌐 开启MySQL远程连接(可选,项目必备)

默认MySQL仅允许本地登录,如需Navicat、DBeaver等工具远程连接,按以下操作:

1. 修改MySQL配置文件

# CentOS/RHEL 配置文件路径vim /etc/my.cnf

# Ubuntu 配置文件路径vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到bind-address,注释掉或改为0.0.0.0,允许所有IP访问:

# 注释该行# bind-address = 127.0.0.1

2. 授权远程访问权限

# 登录MySQLmysql -uroot -p

# 授权root远程访问(%代表所有IP,可替换为固定IP)GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;

# 刷新权限FLUSH PRIVILEGES;

# 退出exit;

3. 开放3306端口

# CentOS/RHELfirewall-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --reload

# Ubuntuufw allow 3306/tcpufw reload

🚫 常见坑+避坑指南

1. 密码强度不够报错:MySQL 8.0密码策略严格,必须包含大小写、数字、特殊字符,临时降低策略可执行:set global validate_password.policy=0;

2. 远程连接失败:检查防火墙是否开放3306端口、配置文件bind-address是否修改、远程权限是否授权

3. 服务启动失败:查看日志排查错误 cat /var/log/mysqld.log,大概率是权限或配置文件语法问题

4. 中文乱码:在my.cnf中添加utf8mb4编码配置,彻底解决中文和emoji乱码

🧩 运维常用命令(收藏备用)

# 启动MySQLsystemctl start mysqld

# 停止MySQLsystemctl stop mysqld

# 重启MySQLsystemctl restart mysqld

# 查看MySQL版本mysql -V

# 登录MySQLmysql -uroot -p

最新文章

随机文章