失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 解决mysql.sock连接不上问题:Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)

解决mysql.sock连接不上问题:Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)

时间:2024-05-21 01:20:24

相关推荐

解决mysql.sock连接不上问题:Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)

Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)

知其所以然

这是个本人之前遇到过多次的问题,今天在实验室做数据库测验,没带充电器只好用实验室的旧主机通过远程连接云服务器上linux下安装的数据库,再次遇到。而本人有时会突然有强迫症,花了大量时间来解决这个问题,但是测验只能延期完成了。

该错误提示的意思:无法通过socket /tmp/MySQL.sock连接到本地MySQL服务器

该错误会导致的问题:无法通过socket连接数据库,有些同学例如我之前使用软连接link的方式暂时解决了问题,但是没有从根源的配置文件f上去修改,导致了数据库重启时软连接失效,而重复多次出现该问题。

如果你只是想暂时登录,用下面的方法即可

暂时登录

1.使用TCP/IP登录

使用TCP/IP登录暂时登录到数据库,但是如果设置了外部地址登录用户权限,可能会被限制权限。

mysql -h localhost(主机地址) -P端口地址

2.如果你知道服务器启动时创建sock的路径,一般为/var/lib/mysql/mysql.sock(安装目录)与/tmp/mysql.sock,使用指定sock路径登录

mysql -u -root(用户名) -p -s sock路径

3.设置软连接,主要的思路是设置/var/lib/mysql/mysql.sock(安装目录)与/tmp/mysql.sock的软连接。

因为在数据库重启即失效,不推荐,还不如用第二个方法。

修改f配置文件,解决根源问题

首先,mysql8.0.17版本默认登录时连接的mysql.sock文件路径:

/tmp/mysql.sock

(如果你不了解mysql的连接方式,文章后面有详细解释)

这时我们需要用vim命令将f配置中,mysqld服务器启动时创建的mysql.sock修改成与连接路径匹配。

或者将mysql默认登录时连接的sock文件改为/var/lib/mysql/mysql.sock(安装目录),在f里面写上[client]的相关配置,并将socket路径写在[client]下方的配置里,否则登陆时,mysql只会去默认的/tmp下寻找mysql.sock

mysql的连接方式有什么?

1.Socket(本地连接)

登录本地数据库默认方式是使用socket连接,即当server和client在同一台服务器上的时候,我们可以直接用mysql命令登陆。连接的代码:

mysql -u root(用户名) -p或 mysql -u -root(用户名) -p -s sock路径

2.TCP/IP(协议连接)

通过协议连接mysql,mysql登陆的时候,指定参数-h,会使用tcp/ip的方式连接,如果没有指定端口的话,默认是使用3306端口。代码为:

mysql -h主机地址 -P端口地址

我们平时使用的数据库管理工具如navicat,workbench等可以使用TCP/IP连接,这样可以实现远程连接,当然在本机上也可以使用TCP/IP协议并将主机地址改为localhost连接本地数据库,但是我认为在使用本机端口还多使用了TCP/IP端口,这样效率自然不如socket高。

如果觉得《解决mysql.sock连接不上问题:Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。