Ubuntu   发布时间:2022-05-10  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ubuntu – / etc / mysql权限不允许非超级用户连接到套接字大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们在Vagrant下运行ubuntu服务器13.10,并遇到了一个有趣的问题.

我们正在覆盖conf.d / my.cnf中的套接字位置

[client]
port                           = 3306
socket                         = /tmp/MysqL.sock


[MysqLd_safe]
socket                         = /tmp/MysqL.sock

[MysqLd]
user                           = MysqL
pid-file                       = /var/run/MysqLd/MysqL.pid
socket                         = /tmp/MysqL.sock
port                           = 3306
datadir                        = /var/lib/MysqL
bind-address                   = 0.0.0.0

到现在为止还挺好.启动服务器,实际上有一个套接字在/ tmp中监听.

但是,只有超级用户才能访问它!

作为非超级用户,MysqL -u root -pXXXX会收到以下错误:

ERROR 2002 (HY000): Can't connect to local MysqL server through socket '/var/run/MysqLd/MysqLd.sock'

客户端尝试连接错误的套接字.

我们假设问题是我们的非特权用户无法访问conf文件以找到正确的套接字,事实上,将/ etc / MysqL上的权限更改为0755修复了这个问题,但它似乎不像正确的解决方案.

作为旁注,在12.04这个行为是相同的,但是当MysqL启动时,它在/ tmp创建套接字,但也在/ var / run / MysqLd下创建了一个符号链接,所以当客户端尝试时要连接,它会找到默认套接字.

在两台机器上,MysqL是版本5.5.37.

根据您的确切配置,下面可能足以解决您的连接问题.

你可以使用–socket = / tmp / MysqL.sock启动MysqL

从Mysql Manual

--socket=path,-S path

为了在不让用户读取整个MysqL配置的情况下存储该设置,您可以更改〜/ .my.cnf文件的设置

详见Option Files

在您的情况下,您将socket = / tmp / MysqL.sock添加到此文件.

大佬总结

以上是大佬教程为你收集整理的ubuntu – / etc / mysql权限不允许非超级用户连接到套接字全部内容,希望文章能够帮你解决ubuntu – / etc / mysql权限不允许非超级用户连接到套接字所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: