阿里云Linux服务器安装MySQL完整指南
阿里云Linux服务器安装MySQL完整指南
在阿里云Linux服务器上部署MySQL数据库,是搭建网站、业务系统及数据分析平台的基础操作。MySQL作为开源关系型数据库,凭借高性能、高稳定性及广泛兼容性,成为云服务器部署的首选数据库之一。本文将以主流的MySQL 8.0版本为例,详细讲解阿里云Linux服务器(涵盖Alibaba Cloud Linux、CentOS、Ubuntu三大系统)从环境准备、安装部署、安全配置到远程访问、日常运维及故障排查的全流程,全程提供可直接复制的命令,兼顾新手友好性与生产环境安全性,帮助用户快速完成MySQL的标准化部署。
一、安装前准备工作
1.1 服务器远程连接
安装MySQL前,需先远程登录阿里云Linux服务器,常用连接方式有Workbench、Xshell、Putty等,核心是确保服务器已开放22端口(SSH协议)且绑定公网IP。
需要先登录阿里云控制台,点击:阿里云控制台
登录控制台后,进入「云服务器ECS」实例列表,确认目标服务器状态为「运行中」,记录公网IP地址。以Workbench为例,连接步骤如下:
- 在ECS实例详情页,点击「远程连接」,选择「Workbench远程连接」;
- 输入服务器用户名(默认root)、登录密码,点击「登录」即可进入命令行界面。
若使用Xshell等第三方工具,需在阿里云安全组入方向规则中放行22端口,协议选择TCP,授权对象可设置为个人IP(避免0.0.0.0/0全网开放,降低安全风险)。
1.2 系统环境检查与更新
不同Linux系统的包管理器不同(Alibaba Cloud Linux/CentOS用yum/dnf,Ubuntu用apt),安装前需更新系统软件包,避免依赖冲突:
Alibaba Cloud Linux/CentOS系统:
sudo yum clean all sudo yum makecache sudo yum update -y
Ubuntu/Debian系统:
sudo apt update sudo apt upgrade -y
同时关闭系统自带的MariaDB(MySQL分支),防止端口冲突:
sudo systemctl stop mariadb sudo systemctl disable mariadb
1.3 关键依赖安装
MySQL 8.0运行需依赖compat-openssl10、libaio等库文件,Alibaba Cloud Linux 3系统需额外安装兼容包,避免安装失败:
Alibaba Cloud Linux 3专属依赖:
sudo rpm -Uvh https://mirrors.aliyun.com/alinux/3/updates/x86_64/Packages/compat-openssl10-1.0.2o-4.0.1.al8.x86_64.rpm
所有系统通用依赖:
sudo yum install -y libaio-devel # Alibaba Cloud Linux/CentOS sudo apt install -y libaio-dev # Ubuntu/Debian
二、添加MySQL官方软件源
阿里云Linux默认源不含MySQL官方包,直接安装会提示「No package mysql-server available」,需手动添加MySQL 8.0官方Yum源(Ubuntu系统可直接用apt安装,无需添加源)。
2.1 Alibaba Cloud Linux/CentOS添加官方源
根据系统版本选择对应源包(CentOS 7用el7,CentOS 8/Alibaba Cloud Linux 3用el8):
CentOS 7系统:
sudo rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-7.noarch.rpm
CentOS 8/Alibaba Cloud Linux 3系统:
sudo rpm -Uvh https://repo.mysql.com/mysql84-community-release-el8-1.noarch.rpm
导入官方GPG密钥,校验安装包完整性,避免篡改风险:
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
验证源是否生效,执行以下命令,输出含mysql80-community则配置成功:
sudo yum repolist enabled | grep mysql
2.2 Ubuntu/Debian系统源配置
Ubuntu默认源已包含MySQL,无需额外添加源,直接更新缓存即可:
sudo apt update
三、MySQL 8.0安装步骤
本节分三大系统详细讲解安装命令,全程使用社区版(免费商用),安装过程自动处理依赖,无需手动干预。
3.1 Alibaba Cloud Linux/CentOS系统安装
执行安装命令,启用MySQL 8.0仓库并跳过GPG校验(避免网络超时导致校验失败):
sudo yum -y install mysql-community-server --enablerepo=mysql80-community --nogpgcheck
安装完成后,验证版本,输出版本号(如8.0.33)则安装成功:

mysql -V
3.2 Ubuntu/Debian系统安装
直接通过apt安装,安装过程中会提示设置root密码(务必牢记):
sudo apt install -y mysql-server
验证版本:
mysql -V
四、MySQL服务启动与开机自启
安装完成后,需启动MySQL服务并设置开机自启,确保服务器重启后MySQL自动运行。
4.1 启动MySQL服务
Alibaba Cloud Linux/CentOS系统:
sudo systemctl start mysqld
Ubuntu/Debian系统:
sudo systemctl start mysql
4.2 设置开机自启
Alibaba Cloud Linux/CentOS系统:
sudo systemctl enable mysqld
Ubuntu/Debian系统:
sudo systemctl enable mysql
4.3 查看服务状态
执行以下命令,输出「active (running)」表示服务正常运行:
Alibaba Cloud Linux/CentOS系统:
sudo systemctl status mysqld
Ubuntu/Debian系统:
sudo systemctl status mysql
五、初始安全配置(必做)
MySQL首次启动后,root用户会生成临时密码(CentOS/Alibaba Cloud Linux),需通过安全脚本修改密码、删除匿名用户、禁止远程root登录,避免安全漏洞。

5.1 获取root临时密码(CentOS/Alibaba Cloud Linux)
临时密码存储在mysqld.log日志中,执行以下命令快速提取:
echo $(PASSWORD=$(sudo grep 'temporary password' /var/log/mysqld.log); PASSWORD=${PASSWORD##* }; echo $PASSWORD)
复制输出的临时密码(如`&abc123xyz`),后续配置需使用。
5.2 运行安全配置向导
执行官方安全脚本,交互式完成安全加固:
sudo mysql_secure_installation
配置步骤(全程建议选y,生产环境安全最优):
- 输入临时密码(CentOS/Alibaba Cloud Linux)或安装时设置的密码(Ubuntu),输入时无回显,直接回车即可;
- 「是否启用密码强度校验」:输入y,密码需包含大小写字母、数字、特殊符号,长度≥8位;
- 「是否修改root密码」:输入y,设置高强度新密码(牢记,后续登录用);
- 「是否删除匿名用户」:输入y,避免未授权用户登录;
- 「是否禁止root远程登录」:输入y,root仅本地登录,远程需创建普通用户;
- 「是否删除test数据库」:输入y,test库为默认测试库,无实际用途且有安全风险;
- 「是否重新加载权限表」:输入y,使所有配置生效。
六、MySQL远程访问配置
默认MySQL仅本地(127.0.0.1)监听,需配置监听地址、授权远程用户、放行阿里云安全组端口,才能实现远程工具(如Navicat、DBeaver)连接。
6.1 修改MySQL监听地址
编辑配置文件,将bind-address从127.0.0.1改为0.0.0.0(允许所有IP访问)或指定内网IP:
Alibaba Cloud Linux/CentOS配置文件路径:
sudo vi /etc/my.cnf
Ubuntu/Debian配置文件路径:
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
找到`bind-address = 127.0.0.1`,修改为:
bind-address = 0.0.0.0
保存退出(vi编辑器按Esc,输入:wq回车),重启MySQL服务使配置生效:
Alibaba Cloud Linux/CentOS系统:

sudo systemctl restart mysqld
Ubuntu/Debian系统:
sudo systemctl restart mysql
6.2 创建远程用户并授权
root用户禁止远程登录,需创建普通用户,授权指定IP或所有IP访问,权限按需分配(ALL为所有权限):
本地登录MySQL:
mysql -u root -p
输入root密码后,执行授权命令:
授权所有IP访问(测试环境用,生产环境建议指定IP):
CREATE USER 'admin'@'%' IDENTIFIED BY 'Admin@123456'; GRANT ALL ON *.* TO 'admin'@'%'; FLUSH PRIVILEGES;
授权指定IP访问(生产环境安全配置):
CREATE USER 'admin'@'192.168.1.100' IDENTIFIED BY 'Admin@123456'; GRANT ALL ON mydb.* TO 'admin'@'192.168.1.100'; FLUSH PRIVILEGES;
命令说明:admin为用户名,%代表所有IP,mydb为指定数据库,Admin@123456为密码(符合强度要求)。
6.3 放行阿里云安全组3306端口
远程连接需放行MySQL默认端口3306,步骤如下:
- 登录阿里云控制台,进入「云服务器ECS」→「安全组」;
- 选择服务器绑定的安全组,点击「入方向」→「添加规则」;
- 协议类型:TCP,端口范围:3306/3306,授权对象:个人IP(如113.XX.XX.XX/32),避免0.0.0.0/0全网开放;
- 点击「确定」,规则即时生效。
七、MySQL常用管理命令
掌握以下命令,可快速完成MySQL的日常运维,包括服务启停、用户管理、数据库操作、日志查看等。
7.1 服务管理命令
# 启动服务 sudo systemctl start mysqld # CentOS/Alibaba Cloud Linux sudo systemctl start mysql # Ubuntu # 停止服务 sudo systemctl stop mysqld # 重启服务 sudo systemctl restart mysqld # 查看服务状态 sudo systemctl status mysqld # 关闭开机自启 sudo systemctl disable mysqld
7.2 数据库与用户操作命令
# 本地登录MySQL mysql -u root -p # 查看所有数据库 SHOW DATABASES; # 创建数据库 CREATE DATABASE IF NOT EXISTS mydb DEFAULT CHARSET utf8mb4; # 删除数据库 DROP DATABASE IF EXISTS mydb; # 查看所有用户 SELECT User,Host FROM mysql.user; # 删除用户 DROP USER 'admin'@'%';
7.3 日志与配置查看命令
# 查看MySQL错误日志(CentOS/Alibaba Cloud Linux) sudo tail -f /var/log/mysqld.log # 查看MySQL配置文件路径 mysqld --help --verbose | grep 'Default options' # 查看MySQL监听端口 ss -tlnp | grep :3306
八、MySQL数据备份与恢复
数据备份是生产环境必备操作,避免数据丢失,MySQL常用mysqldump工具实现备份与恢复。
8.1 数据库备份命令
# 备份单个数据库(mydb) mysqldump -u root -p mydb > /home/mydb_20260610.sql # 备份所有数据库 mysqldump -u root -p --all-databases > /home/all_db_20260610.sql # 备份并压缩(节省空间) mysqldump -u root -p mydb | gzip > /home/mydb_20260610.sql.gz
8.2 数据库恢复命令
# 恢复单个数据库 mysql -u root -p mydb < /home/mydb_20260610.sql # 恢复压缩备份文件 gunzip < /home/mydb_20260610.sql.gz | mysql -u root -p mydb
九、常见问题与解决方案
9.1 安装时提示「No package mysql-server available」
原因:未添加MySQL官方源或源未生效。解决方案:重新执行2.1节添加官方源命令,执行`yum repolist enabled | grep mysql`验证源是否生效。

9.2 远程连接提示「连接超时」
原因:安全组未放行3306端口、MySQL监听地址为127.0.0.1、服务器防火墙拦截。解决方案:检查安全组规则、修改bind-address为0.0.0.0、关闭服务器防火墙(sudo systemctl stop firewalld)。
9.3 忘记root密码
解决方案:
- 停止MySQL服务:sudo systemctl stop mysqld;
- 跳过权限验证启动:sudo mysqld --skip-grant-tables &;
- 本地登录修改密码:mysql -u root,执行`ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';`;
- 重启服务:sudo systemctl restart mysqld。
9.4 安装时提示GPG签名校验失败
原因:未导入官方GPG密钥。解决方案:执行`sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022`导入密钥后重新安装。
十、总结
本文详细完成了阿里云Linux服务器(Alibaba Cloud Linux、CentOS、Ubuntu)MySQL 8.0的全流程部署,从环境准备、源配置、安装启动、安全加固、远程访问到日常运维与故障排查,覆盖新手部署的所有核心环节。生产环境中,需严格遵循安全规范:禁止root远程登录、放行指定IP端口、定期备份数据、设置高强度密码,确保MySQL数据库安全稳定运行。
常见问答
Q1:阿里云Linux服务器默认支持哪个MySQL版本?
A1:默认源不含MySQL,需添加官方源安装8.0版本,Ubuntu默认源可直接安装8.0。
Q2:MySQL安装后无法启动,如何排查?
A2:查看错误日志(/var/log/mysqld.log),常见原因是依赖缺失、端口冲突、配置文件错误,针对性解决即可。
Q3:远程连接MySQL时,密码正确但提示权限拒绝?
A3:未授权远程用户或授权IP不匹配,需执行CREATE USER和GRANT命令授权对应IP。
Q4:Alibaba Cloud Linux和CentOS的MySQL安装命令是否通用?
A4:基本通用,仅Alibaba Cloud Linux 3需额外安装compat-openssl10依赖包。
Q5:如何设置MySQL开机自启?
A5:执行sudo systemctl enable mysqld(CentOS/Alibaba Cloud Linux)或sudo systemctl enable mysql(Ubuntu)。
Q6:生产环境中,MySQL 3306端口如何安全放行?
A6:阿里云安全组入方向规则,协议选TCP,端口3306,授权对象设为办公网IP或固定IP,禁止0.0.0.0/0全网开放。




