很多开发者在部署后端服务时,都会遇到数据库安装的问题。MySQL 5.7作为长期稳定的版本,在Linux环境下依然有大量用户在使用。下面直接给出最稳妥的安装步骤,适合CentOS和Ubuntu系统,避开各种坑点。
第一步:检查系统环境并清理旧版本
打开终端后,先确认你的Linux发行版版本。如果是CentOS,执行cat /etc/os-release查看内核信息。老机器里如果有残留的mysql或者mariadb,一定要彻底卸载干净,否则会导致端口冲突和依赖报错。用yum remove mysql*或者apt-get purge mysql*清理,然后删除/var/lib/mysql目录和/etc/my.cnf配置文件。这一步不干净,后面装不上或者启动失败的概率极高。
第二步:下载官方RPM包或配置软件源
现在推荐直接用系统自带的包管理器安装,比手动解压tar包省心。对于CentOS系统,去MySQL官网找到Yum Repository页面,复制对应版本的repo链接。用wget命令下载到/etc/yum.repos.d/目录下。如果是Ubuntu,直接执行sudo apt-get update更新索引即可,系统默认源里通常有5.7版本。注意别把源配成8.0的,否则会覆盖或拉错包。
第三步:执行安装命令
CentOS用户执行sudo yum install mysql-community-server -y。中间会提示导入GPG密钥,输入y确认。系统会自动解决依赖关系并下载安装。Ubuntu用户执行sudo apt-get install mysql-server -y。整个过程大概几分钟,网络好的话非常快。安装完成后,可以用rpm -qa | grep mysql或者dpkg -l | grep mysql检查是否安装成功,看到mysql-community-server版本号是5.7.x就说明没问题。
第四步:启动服务并设置开机自启
执行sudo systemctl start mysqld启动数据库。如果没有报错,说明核心程序正常。接着执行sudo systemctl enable mysqld把它加入开机自启列表。用systemctl status mysqld查看运行状态,绿色active表示一切就绪。如果提示找不到mysqld.service,可能是包没装全,退回第三步重新检查依赖。
第五步:获取初始密码并完成安全初始化
这是最关键的一步。MySQL 5.7在安装后会随机生成一个临时root密码,记录在/var/log/mysqld.log文件里。用grep temporary password /var/log/mysqld.log命令提取出来。登录数据库执行mysql -u root -p,粘贴临时密码进去。登录后必须立刻修改密码,否则无法执行任何操作。执行ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';修改完后,退出数据库。
接下来运行mysql_secure_installation脚本。它会问你要不要启用密码强度验证插件,建议选y并设置中等或高强度密码。接着会询问移除匿名用户、禁止root远程登录、删除test库,全部输入y确认。这些步骤能大幅减少被暴力破解的风险。
第六步:修改字符集与开启远程访问
默认的utf8在某些场景下会有乱码问题,建议改成utf8mb4。打开/etc/my.cnf文件,在[mysqld]下方添加character-set-server=utf8mb4和collation-server=utf8mb4_unicode_ci。保存后重启服务sudo systemctl restart mysqld生效。
如果需要从其他电脑连接这台服务器,需要放行防火墙并授权root账号。执行firewall-cmd --zone=public --add-port=3306/tcp --permanent然后reload。登录数据库执行GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;最后刷新权限flush privileges;。记得把%换成具体IP更安全。
常见问题排查
如果启动失败,第一看日志tail -f /var/log/mysqld.log。大部分情况是数据目录权限不对,执行chown -R mysql:mysql /var/lib/mysql修复。如果遇到端口被占用,用netstat -tlnp | grep 3306查看进程,杀掉冲突的mariadb。密码策略太严导致改不了,可以在my.cnf里加validate_password_policy=LOW和validate_password_length=4,重启后就能设简单密码了。按这套流程走一遍,5.7基本不会出岔子,后续直接连接客户端工具操作即可。定期备份数据目录也是保持服务稳定运行的基础习惯,建议养成定时导出sql文件的规范。



