在云服务器上安装和配置mysql是搭建后端服务的基础操作,无论是部署网站、APP后台还是其他数据型应用,都需要稳定的mysql数据库支撑。下面以CentOS 7系统为例,完整讲解整个安装部署流程。

前期环境准备
在开始安装前,需要先确认云服务器的基础环境符合要求,避免后续安装过程中出现兼容性问题。
- 确认云服务器的系统版本,本文演示基于CentOS 7,其他linux发行版操作逻辑类似,仅包管理命令有差异
- 确保云服务器有足够的磁盘空间,建议预留至少2GB以上的可用空间用于mysql安装和数据存储
- 提前开放云服务器的3306端口,这是mysql默认的对外服务端口,需要在云服务商的安全组规则中添加入站规则允许该端口的访问
- 更新系统的基础软件包,执行命令
yum update -y完成系统组件更新
mysql安装步骤
添加mysql官方yum源
CentOS 7默认的yum源中没有最新版的mysql,需要先添加mysql官方的yum仓库,方便后续直接通过yum安装。
# 下载mysql yum源安装包,这里选择mysql 8.0版本对应的源 wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm # 安装yum源 rpm -ivh mysql80-community-release-el7-5.noarch.rpm # 清理yum缓存 yum clean all # 生成新的yum缓存 yum makecache
安装mysql服务
添加源之后,就可以直接通过yum命令安装mysql服务端和客户端组件。
# 安装mysql服务,包含服务端和客户端 yum install mysql-community-server -y
安装过程会自动下载所需的依赖包,等待执行完成即可。
启动mysql服务并设置开机自启
安装完成后,需要启动mysql服务,同时设置开机自动启动,避免服务器重启后数据库服务停止。
# 启动mysql服务 systemctl start mysqld # 查看mysql服务运行状态,显示active (running)表示启动成功 systemctl status mysqld # 设置mysql开机自启 systemctl enable mysqld
mysql基础配置
获取初始root密码
mysql安装完成后,会为root用户生成一个临时初始密码,存储在日志文件中,需要先获取这个密码才能登录数据库做后续配置。
# 查看mysql日志获取初始密码,密码在日志中root@localhost: 后面的字符串 grep 'temporary password' /var/log/mysqld.log
登录并修改root密码
使用初始密码登录mysql后,必须先修改root密码,否则无法执行其他操作,mysql默认要求密码包含大小写字母、数字和特殊字符,长度不低于8位。
# 登录mysql,输入刚才获取的初始密码 mysql -u root -p # 修改root用户密码,替换Your_New_Password为你的新密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'Your_New_Password'; # 刷新权限使配置生效 FLUSH PRIVILEGES;
配置远程访问权限
默认情况下,root用户只允许本地登录,如果需要从其他设备连接云服务器上的mysql,需要配置远程访问权限。
# 切换到mysql系统数据库 USE mysql; # 修改root用户的host为%,表示允许所有IP远程连接,也可以替换为指定IP段 UPDATE user SET host='%' WHERE user='root'; # 刷新权限 FLUSH PRIVILEGES; # 退出mysql EXIT;
安全加固配置
为了保证数据库的安全,建议执行mysql自带的安全配置脚本,进一步优化数据库的安全设置。
# 执行安全配置脚本 mysql_secure_installation
执行过程中会提示以下配置选项,按照需求选择即可:
- 是否设置密码验证强度,建议选择中等强度
- 是否修改root密码,如果之前已经修改过可以选择否
- 是否删除匿名用户,建议选择是
- 是否禁止root用户远程登录,如果已经配置了远程访问权限可以选择否,否则建议选择是
- 是否删除test测试数据库,建议选择是
- 是否刷新权限表,选择是
验证部署结果
完成所有配置后,可以验证mysql是否正常提供服务,以及远程连接是否可用。
本地验证
# 使用新密码登录mysql mysql -u root -p # 查看当前数据库列表,能正常显示表示服务正常 SHOW DATABASES;
远程验证
在本地电脑的命令行或者其他mysql客户端工具中,输入云服务器的公网IP、3306端口、root用户名和新密码,尝试连接,能正常连接表示远程配置生效。
常见问题排查
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 启动mysql失败 | 端口被占用或者权限不足 | 执行netstat -tulnp | grep 3306查看端口占用情况,关闭占用进程后重启服务;检查/var/lib/mysql目录权限是否为mysql用户所有 |
| 远程连接失败 | 安全组未开放3306端口或者远程权限未配置 | 检查云服务商安全组规则是否开放3306端口;登录mysql检查user表的host字段是否为% |
| 忘记root密码 | 密码遗失 | 修改/etc/my.cnf文件,在[mysqld]段添加skip-grant-tables,重启服务后无密码登录修改密码,再删除该配置重启服务 |