在MySQL访问权限上栽倒

之前和rst合伙用Flarum建站,用到的软件需要使用MySQL。然而我平时接触的都是SQLite,对MySQL的操作和注意事项并不熟悉;加之使用的发行版是CentOS7,无形中加重了用惯包管理器的我们的试错成本。还好不是我装数据库程序(被打

数据库的创建和配置我跟着网上的教程一步一步弄了下来,没什么大问题。不过当我启动安装程序时,出现了问题:之前安装时为了方便,我用了sudo -i提权,导致程序以root身份运行,触发了MySQL的root权限保护政策,报错ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’

当初不知道哪里出错,便尝试bing一下:

报错原因:没有生成Mysql的sock链接文件
临时解决方案:把连结地址从localhost改为127.0.0.1
终极解决方案:复原mysql.sock:重置数据库

尝试了临时方案,效果挺好的,不过那“临时”二字让患有强迫症的我不爽,果断尝试第二个。于是我跟着这个思路,越走越偏⋯⋯

在根目录下递归搜索mysql.sock,好像确实没有这个文件,重置了数据库,不曾想,这是我恶梦的开始。重启安装程序,发现2002错误还是没有解决。奇怪,明明mysql命令行版都能正常连结,怎么一到网站程序就⋯⋯

真的得赞同ect前辈这句话:“如果一件事情过于麻烦,它很有可能就不是正确的。”后来仔细翻找网页,我才发现,mysql为了安全,不能直接用系统root帐户在本地连接。

解决了这个最基本的问题,这下网站能顺利安装了不?好,安装成功;但这下网站端用户一登录,MySQL就报查询字符串出现问题。

好像别人都没怎么出过这个问题啊⋯重装从头来试试?

果然,rst重装完数据库以后重装,就什么事也没出了。

数据库我爱你😭

标签: Linux, 踩坑

许可协议

本文作者 , 采用 CC-BY-SA-4.0 许可协议,转载请注明出处。

已有 2 条评论

添加新评论

  1. 这件事告诉了我们用中文搜索会制造99%的问题,用英文搜索会解决99%的问题(