在CentOS 7上装MySQL这事儿,说难不难,说简单也真能折腾人。我见过不少朋友,照着网上的教程一步步来,结果卡在初始化密码那一步,或者干脆连不上服务,只能重装系统。其实大部分坑都是固定的,只要你摸清了CentOS 7和MySQL之间的那些小脾气,整个过程也就二十分钟的事儿。今天这篇就按我自己的实操经验,把步骤拆开了揉碎了讲给你听,顺便把那些高频的报错也一并收拾了。

先说最基础的一步,装之前你得想清楚用哪个版本。CentOS 7自带的软件源里那个MySQL是旧版的MariaDB分支,虽然命令一样,但如果你项目里有特定的存储引擎或者函数依赖,最好还是装官方MySQL。这里我建议直接装MySQL 5.7或者8.0,别用5.6了,太老,安全补丁都不怎么更新了。装之前先检查一下系统里有没有残留的mariadb-libs,有的话必须卸掉,不然装的时候会撞包。命令很简单:,有输出就,这一步千万别跳过,我见过太多人卡在这里报依赖错误。
接下来是添加官方Yum仓库。这一步是很多人容易忽略的,因为不添加仓库的话,你装出来的还是那个老掉牙的版本。去MySQL官网找到对应CentOS 7的rpm包,用下载下来,然后安装。装完仓库后,确认一下。这里有个小细节,如果你网络慢,建议用国内的镜像源,比如阿里云或者中科大的,把repo文件里的baseurl替换一下,速度能快十倍。我一般直接换源,省得等。
仓库搞定后就是正式安装了。,这个命令会自动装好服务端和客户端。装的过程会下载不少依赖包,你耐心等着就行。装完之后先别急着启动,先改一下配置文件。默认的里datadir是,如果你磁盘空间紧张,或者想把数据放到独立的数据盘,就在启动前改好。改完目录记得用把权限给对了,然后初始化——注意,我特意用这个参数,因为生产环境用安全初始化会让你设个临时密码,但很多人就是记不住那个临时密码,结果折腾半天。你要是图省事,就用,初始化完root是空密码,然后自己登录去改密码,反而清爽。
启动服务这一步也有讲究。,然后设成开机自启。启动之后第一件事就是看日志:,看看有没有报错。我遇到过最常见的问题就是,这通常是因为socket路径对不上。解决方法是检查f里的socket配置,或者直接跳过socket用TCP连接:。
登录进去之后,第一件事就是改密码。用,注意MySQL 8.0的密码策略默认是强制的,密码得至少8位,还得带大小写和特殊字符。要是你觉得太麻烦,可以改一下策略,但我不建议你这么做,毕竟安全要紧。改完密码后,再创建一个远程登录账号,不然你本地开发机连不上服务器上的数据库。,然后。
说到权限和防火墙,这是新手最容易踩的第二个大坑。即使你账号建好了,远程连不上,十有八九是防火墙拦着。CentOS 7默认用firewalld,你得把3306端口放出来:,然后。如果你用的是阿里云或者腾讯云,还得去控制台的安全组里也放行3306,不然本地怎么都ping不通。我去年帮一个客户排查,折腾了半小时,发现是云盾没开端口,气得我直拍大腿。
再聊聊字符集的问题。MySQL 8.0默认的字符集已经是utf8mb4了,但如果你装的是5.7,默认可能是latin1。改字符集得在f的段下加一行,然后重启服务。不然你存入的数据里有中文或者emoji表情,查出来就是一堆问号。这个坑特别隐蔽,平时用英文测试没问题,一上生产数据就露馅。我建议不管版本,都直接加上这个配置,一劳永逸。
说说备份和日常维护。我见过很多人装完数据库就撒手不管了,等数据丢了才来哭。至少得配一个每天凌晨自动备份的cron任务,用导出全库,压缩后存到别的盘或者远程服务器。命令很简单:。还有,定期看一下里的错误日志,特别是磁盘空间快满的时候,MySQL会拒绝写入,那个报错叫,实际上就是磁盘满了。
回到开头说的那个问题。CentOS 7上装MySQL,其实每一步都有固定的解法,你只要按着流程走,别跳步,别急,基本不会出大问题。真遇到报错了也别慌,先把日志翻出来,看几行关键信息,Google一下或者直接问我就行。数据库这东西,装一次你会觉得繁琐,装三次你就熟得跟自家后院一样了。


