阿里云服务器MySQL安装全攻略:环境准备+安全加固+性能调优一步到位
阿里云服务器MySQL安装全攻略:环境准备+安全加固+性能调优一步到位
2026-09-22 12:29
阿里云服务器安装MySQL全流程:从环境准备到性能优化指南
阿里云服务器安装MySQL:从环境准备到性能优化全流程
一、准备工作:阿里云服务器环境搭建
在安装MySQL前,需先完成阿里云服务器的基础配置,确保网络和环境可达,避免后续操作受阻。
1. 实例与镜像选择
登录阿里云控制台,进入“ECS实例”页面,选择一台运行中的云服务器:
- 镜像推荐:优先选择CentOS 8/9或Ubuntu 22.04/24.04(均为长期支持版本,兼容性和社区维护更优);
- 配置建议:至少4核8G内存(满足中小企业日常业务并发需求),存储选择SSD云盘(IOPS高达数万,大幅提升MySQL读写速度);
- 地域选择:尽量靠近用户或业务所在地(如华东2区覆盖江浙沪,降低延迟)。
2. 安全组端口开放
MySQL默认通过3306端口进行通信,需在安全组中开放该端口,否则远程连接会被阿里云防火墙拦截:
- 进入实例“安全组”配置页,点击“添加安全组规则”;
- 协议类型选“TCP”,端口范围填写“3306/3306”,源地址推荐“0.0.0.0/0”(允许所有IP访问,生产环境建议限制为具体客户端IP,如办公网段);
- 保存后刷新页面,确保规则生效(通常5分钟内同步至实例)。
3. 远程连接服务器
使用SSH工具登录服务器(推荐阿里云“Workbench”或第三方工具如Xshell):
- 输入服务器公网IP、用户名(CentOS为
root,Ubuntu为ubuntu)和密码; - 连接成功后,命令行界面会显示服务器信息(如系统版本、内存使用情况),即可开始后续操作。
二、环境检查:避免重复安装与依赖冲突
安装前需确认系统状态,杜绝因重复安装或依赖缺失导致的安装失败。
1. 检查是否已安装MySQL
不同Linux发行版的检查命令不同:
- CentOS/RHEL:
yum list installed | grep mysql或rpm -qa | grep mysql; - Ubuntu/Debian:
dpkg -l | grep mysql或apt list --installed | grep mysql;
若有输出结果(如mysql-server-8.0),说明已安装MySQL,需先卸载:- CentOS:
yum remove mysql-server -y; - Ubuntu:
apt purge mysql-server -y,避免残留文件冲突。
- CentOS:
2. 安装系统依赖
MySQL依赖部分基础库,提前安装可避免安装过程中报错:
- CentOS:
yum install -y gcc-c++ ncurses-devel perl(编译依赖,官方仓库安装会自动处理,可跳过); - Ubuntu:
apt install -y build-essential libncurses5-dev(仅自定义编译需安装,官方APT安装无需手动操作)。
三、安装MySQL:基于官方仓库的标准流程
为获取最新稳定版本和长期支持,强烈推荐通过MySQL官方仓库安装,而非系统自带源(版本可能滞后1~2年)。
1. CentOS系统安装步骤
(1)下载MySQL官方YUM仓库文件(以CentOS 9为例):
wget https://dev.mysql.com/get/mysql80-community-release-el9-3.noarch.rpm # MySQL 8.0 LTS版
# 若需MySQL 9.0:wget https://dev.mysql.com/get/mysql90-community-release-el9-1.noarch.rpm
(2)安装仓库文件:
rpm -ivh mysql80-community-release-el9-3.noarch.rpm
(3)更新YUM缓存并安装MySQL Server:
yum update -y # 同步仓库信息
yum install -y mysql-server # 自动安装依赖和MySQL服务
2. Ubuntu系统安装步骤
(1)更新系统源并安装依赖:
sudo apt update
sudo apt install -y curl software-properties-common # 用于添加仓库
(2)导入MySQL官方GPG密钥(验证软件完整性):
curl -fsSL https://dev.mysql.com/doc/refman/9.0/en/checking-gpg-signature.html | gpg --dearmor | sudo tee /usr/share/keyrings/mysql-keyring.gpg > /dev/null
(3)添加MySQL APT仓库(以Ubuntu 24.04为例):
echo "deb [signed-by=/usr/share/keyrings/mysql-keyring.gpg] https://repo.mysql.com/apt/ubuntu/ noble mysql-9.0" | sudo tee /etc/apt/sources.list.d/mysql.list
(4)更新源并安装MySQL:
sudo apt update
sudo apt install -y mysql-server # 自动完成安装和初始化
四、初始化与安全配置:加固MySQL防御
安装完成后,MySQL会自动生成临时密码并启动服务,但默认配置存在安全风险,需立即初始化。
1. 获取临时密码
MySQL 8+安装后,临时密码存储在错误日志中,提取命令:
- CentOS:
grep "temporary password" /var/log/mysqld.log; - Ubuntu:
grep "temporary password" /var/log/mysql/error.log;
示例输出:[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xYb8#v9sQr2t,记录xYb8#v9sQr2t。
2. 运行安全初始化脚本
执行mysql_secure_installation,按提示完成关键配置:
mysql_secure_installation
- 步骤1:输入临时密码,验证身份;
- 步骤2:设置root密码:需输入强密码(建议规则:≥8位,包含大小写字母、数字、特殊字符,如
Admin@2026#); - 步骤3:移除匿名用户:输入
Y(匿名用户可无密码登录,严重威胁安全); - 步骤4:禁止远程root登录:输入
Y(后续通过专用用户远程连接,降低风险); - 步骤5:删除测试数据库:输入
Y(测试库test易被攻击者利用); - 步骤6:刷新权限:输入
Y,使配置立即生效。
3. 创建专用用户与授权
为避免root账号暴露,创建普通用户管理数据库(推荐生产环境做法):
mysql -u root -p # 输入新设置的root密码登录
进入MySQL命令行后,执行:
-- 创建用户:用户名`dev`,密码`Dev@123456`,允许所有IP访问
CREATE USER 'dev'@'%' IDENTIFIED BY 'Dev@123456';
-- 授予`dev`用户对所有数据库的读写权限(可按需缩小范围,如`db_name.*`仅授权特定库)
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON *.* TO 'dev'@'%';
-- 刷新权限,使授权生效
FLUSH PRIVILEGES;
五、配置优化:提升MySQL性能
默认配置适用于微型场景,需根据服务器资源调整,满足业务并发需求。
1. 修改字符集为utf8mb4
utf8mb4支持Emoji、繁体中文等全字符集,避免存储异常:
编辑MySQL配置文件:
- CentOS:
/etc/my.cnf.d/mysql-server.cnf(或/etc/my.cnf); - Ubuntu:
/etc/mysql/mysql.conf.d/mysqld.cnf;
在[mysqld]节下添加:character-set-server=utf8mb4 # 服务器字符集 collation-server=utf8mb4_unicode_ci # 字符集排序规则(兼容多语言) init_connect='SET NAMES utf8mb4' # 客户端连接时自动设置字符集
2. 调整缓冲区与连接数(以8G内存为例)
InnoDB缓冲池是MySQL性能关键参数,占内存的50%~70%最佳:
[mysqld]
innodb_buffer_pool_size=4G # 缓存数据和索引,减少磁盘IO
max_connections=1000 # 最大并发连接数(根据业务峰值调整,避免超过服务器负载)
innodb_log_file_size=1G # redo日志文件大小,提升事务处理速度
query_cache_type=0 # MySQL 8.0已弃用查询缓存,关闭避免性能损耗
3. 开启慢查询日志
定位慢SQL,优化查询性能:
在配置文件中添加:
slow_query_log=ON # 开启慢查询日志
slow_query_log_file=/var/log/mysql/slow.log # 日志路径
long_query_time=2 # 记录执行时间≥2秒的查询
log_queries_not_using_indexes=ON # 记录未使用索引的查询(辅助优化)
修改后重启MySQL服务:
- CentOS:
systemctl restart mysqld; - Ubuntu:
systemctl restart mysql。
六、远程连接与故障排查
配置完成后,可通过客户端工具远程连接,若失败按以下步骤排查:
1. 远程连接操作(以Navicat为例)
- 点击“连接”→“MySQL”;
- 输入“主机”(服务器公网IP)、“端口”(3306)、“用户名”(
dev)、“密码”(Dev@123456); - 点击“测试连接”,提示“连接成功”即可。
2. 常见故障排查
- 端口未开放:检查安全组(是否添加3306端口)和服务器防火墙(
firewall-cmd --list-ports查看,未开放则执行firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload); - 绑定地址限制:配置文件中
bind-address=127.0.0.1会限制仅本地连接,需修改为0.0.0.0; - 用户权限不足:确认用户授权时
@'%'而非@'localhost'(localhost仅允许127.0.0.1访问); - 密码错误:重新核对密码,或通过“跳过授权表”重置(见文末小贴士)。
总结
阿里云服务器安装MySQL的核心流程可概括为:环境准备→官方仓库安装→安全初始化→配置优化→远程测试。过程中需重点关注安全(如强密码、禁止远程root)和性能(如字符集、缓冲区调整),避免因默认配置导致的漏洞或卡顿。无论是个人项目还是企业级应用,掌握自建MySQL的方法,能根据业务需求灵活定制,相比云数据库RDS更具自主性。
小贴士:忘记root密码?停止MySQL服务(systemctl stop mysqld),以mysqld_safe --skip-grant-tables启动,登录后执行ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';重置即可。