说真的,我见过太多人在CentOS 8上装MySQL时栽跟头了。不是报错就是版本冲突,折腾半天连个数据库的影子都没见着。今天我就把踩过的坑、绕过的弯路都摊开来聊,手把手带你在CentOS 8上把MySQL装稳了。别担心,咱们不搞那些虚头巴脑的理论,就盯着终端窗口,一条命令地来。

先说说为啥CentOS 8装MySQL总出幺蛾子。CentOS 8默认的软件源里藏着一个叫“mysql”的模块,可它不是正儿八经的MySQL,而是MariaDB——一个MySQL的分支版本。很多新手一上来就敲,结果装了个MariaDB,后面配置时发现命令对不上,气得直拍桌子。更坑的是,CentOS 8在2021年底就停止维护了,官方源里的MySQL包版本老旧得能当古董。所以第一步不是装软件,而是先禁用那个捣乱的默认模块。打开终端,输入,回车,完事儿。这一步就像给电脑清了场子,免得后面安装时系统自作主张给你塞个MariaDB。
接下来是添加真正的MySQL官方源。CentOS 8的包管理工具是dnf,但MySQL官方只提供rpm包,得手动下载。去MySQL官网找到“MySQL Yum Repository”页面,复制适合CentOS 8的rpm包链接。然后在终端执行。注意看输出,如果提示“warning”或者“error”,八成是网络问题或者URL写错了。我建议你直接用浏览器打开那个链接,确认能下载后再复制地址。这一步做完后,用检查一下,看到类似“mysql80-community”的源列表,说明仓库加成功了。这时候别急着装,先跑一遍清理缓存,免得后续安装时包索引混乱。
安装过程其实简单,就一条命令:。但这里有个细节——dnf会自动处理依赖关系,MySQL需要的共享库、工具链都会一并装上。我见过有人装到一半卡住,提示“Public key for mysql-community-server-8.0.36-1.el8.x8664.rpm is not installed”。别慌,这是GPG签名验证失败,执行导入公钥就行。装完后用确认,看到“mysql-community-server.x8664”出现,说明安装已成功。这时候先别急着启动服务,MySQL 8.0默认有个“authsocket”插件,用root账号登录时要求系统用户也是root,得先把这玩意儿关了,不然远程连接时能把你整疯。
启动MySQL跟配置安全策略是重头戏。执行,再用设置开机自启。MySQL 8.0在首次启动时会生成一个临时密码,藏在日志文件里。用找出来,复制下来备用。然后跑,这个脚本会引导你改root密码、删除匿名用户、禁止root远程登录。注意,MySQL 8.0的密码策略很严格,长度至少8位,还得包含大小写字母、数字和特殊符号。我建议你设成一个自己能记住但不容易被猜到的密码,比如“Abcd@12345”这种组合。脚本跑完后,用刚设的密码登录试试:,看到“mysql>”提示符,说明数据库已经活蹦乱跳了。
数据库装好了,但离真正能用还差一步——配置远程访问。默认情况下,MySQL只允许本地连接,你要是想用Navicat或者Workbench从另一台电脑连过来,必须改配置。先登录MySQL,执行然后,再。但别急着退出,MySQL 8.0的加密方式改了,旧版客户端可能连不上。跑一句,把认证方式改成兼容模式。编辑,在[mysqld]段下加一行,重启服务。这时候用另一台电脑的客户端试试连接,如果防火墙没拦着,应该能连上了。
防火墙这块得单独说说。CentOS 8默认开启firewalld,3306端口可能被屏蔽。执行,再让规则生效。如果你用的是云服务器,还得去云控制台的安全组里放行3306端口。我见过有人本地防火墙配好了,但云平台那边没开,白折腾半小时。检查防火墙状态用,看到“3306/tcp”出现在ports列表里才算完。另外,生产环境不建议用root直接远程连接,最好新建一个普通用户,比如,再,这样安全得多。
常见问题得提前打个预防针。装完后用检查服务状态,如果显示“active (running)”但连不上,八成是SELinux在捣乱。CentOS 8的SELinux默认强制模式,会阻止MySQL读写某些文件。临时关闭用,永久关闭得改文件,把SELINUX改成disabled。但说实话,生产环境不建议关SELinux,更稳妥的办法是用查看被阻止的操作,然后针对性地放行。还有种情况是MySQL启动报“Can't start server: Bind on TCP/IP port: Address already in use”,说明3306端口被占用了,用查是谁占的,杀了冲突进程就行。
说点实在的。CentOS 8虽然官方停了维护,但用MySQL 8.0跑些内部应用完全没问题。装好后别忘了定时备份,写个crontab任务每天凌晨用导出数据。还有,MySQL 8.0的性能调优是个大坑,默认配置只适合开发环境,生产环境至少得改和这两个参数。不过那是后话了——先把今天这套流程走通,你就能在CentOS 8上稳稳当当地用上MySQL。下次遇到装数据库的任务,别再傻乎乎地yum install了,按这个步骤来,十有八九一次过。


