无法通过mysql.sock连接Mysql

直接指定路径连接。
命令:mysql -u root -p -S /var/lib/mysql/mysql.sock。

先停止服务,更改配置,然后启动它。

使用以下命令确认路径:ls /var/lib/mysql/mysql.sock。

如果您不确定,请搜索:find / -name mysql.sock。

自己掂量一下。

(linux)mysql.sock文件不存在智能重装

如果mysql.sock丢失,则无需重新安装。
我们先来看看这个方法。

首先检查/tmp目录的粘滞位。
如果删除该目录中的文件,则必须更改权限。
以 root 身份登录并键入命令 chmod+t/tmp。
然后使用lsld /tmp查看末尾是否有t字符。
如果有的话,你是对的。

不想再使用 /tmp 了吗?插座的位置可以改变。
在mysql配置文件中添加socket=/new路径。
客户端使用 mysqld_safesocket=/new 路径。
环境变量也设置为 MYSQL_UNIX_PORT。

如果是编译MySQL,配置时添加unixsocketpath=/new路径。
进行更改后,尝试重新启动服务。

mysqladminsocket=/新路径版本,看看是否有效。
如果这个技巧有效,重新安装将被保存。

/var/lib/mysql/mysql.sock

坦率地说,文件 /var/lib/mysql/mysql.sock 是 MySQL 数据库用于本地 Unix 域套接字连接的密钥。
其实很简单,这个文件允许客户端和服务器通过网络套接字而不是网络接口进行本地通信。

我们先来说说最重要的事情。
如果找不到这个socket文件,首先要确认MySQL服务是否正在运行。
我们在去年进行的项目中就遇到了这种情况。
经过检查发现MySQL没有启动。
还有一点,检查MySQL的配置文件。
确保套接字配置元素指向正确的路径。
例如,我发现在项目的错误目录中配置错误。

我一开始以为只要MySQL服务在运行,socket文件就自然存在,但后来发现这是错误的。
它是在 MySQL 服务启动时创建的。
还有另一个关键细节。
如果无法通过socket文件连接MySQL,可以先停止MySQL服务,然后以安全模式启动,忽略权限表和网络连接,这样就可以直接登录并更新root用户的密码。

说实话,这是一个彻头彻尾的骗局。
很多人不注意这一点。
更新密码时,新旧版本MySQL的SQL语句不同,需要根据版本确定。
然后刷新权限以使更改生效。
最后退出MySQL并重启服务,然后再次登录验证一切正常。

注意:执行这些步骤时,您必须至少拥有停止和启动 MySQL 服务的权限。
更新root密码时,一定要使用强密码,这是提高数据库安全性的基础。
如果问题仍然存在,请检查 MySQL 服务器日志文件,其中通常包含更详细的错误消息。

我认为在执行这些操作之前尝试备份重要数据是值得的,以防万一。
此外,定期检查和更新数据库安全配置也是避免此类问题再次发生的有效方法。

出现: Can't connect to local MySQL server through socket '/tmp/mysql.sock'

说实话,这个错误是相当令人沮丧的。
这通常是解决方案...
首先,您必须检查套接字文件是否存在。
在 tmp 目录中。
尝试 ls -l /tmp/mysql.sock。
如果不存在这样的文件。
MySQL 8 0% 的时间都不会运行。
或者配置文件中写入的路径不正确。

首先检查你是否有MySQL服务。
如果你不跑,就必须开始。
不同系统的命令不同。
有的地方是mysql.server启动。
或者到安装目录的support-files下找到mysql.server脚本;然后开始。
启动后再次检查socket文件。

如果没有出现该文件,可能是配置文件中写入的路径不正确。
默认打开/etc/my.cnf或/etc/mysql/my.cnf配置文件。
找到 [mysqld] 部分,查看套接字设置是否为 /tmp。
如果无效,请更改为正确的路径,例如/usr/local/var/mysql/mysql.sock。
更改后重新启动 MySQL。

如果不起作用,请使用 TCP/IP 进行连接。
在连接命令中将 localhost 替换为 1 2 7 .0.0.1 例如 mysql -h 1 2 7 .0.0.1 -u root -p。

检查MySQL服务是否正在运行。
使用 mysqld status 命令。
如果可以但无法连接。
可能存在权限问题。
您必须查看数据目录的权限。
例如,MySQL 用户(通常是 mysql)必须具有 /usr/local/var/mysql/ 目录的权限。
如果权限不正确。
使用 sudo chown -R mysql:mysql /usr/local/var/mysql/ 来更改它。

如果MySQL无法启动,端口可能被占用。
使用 lsof -i :3 3 06 查看。
如果3 3 06 端口被其他进程占用。
使用kill -9 PID 来终止该进程。
杀死MySQL后再次尝试。

最后,如果您更改配置或权限;您必须重新启动 MySQL。
使用 mysql.server restart 或 systemctl mysql restart 等命令。

如果您尝试这样做,通常可以解决。
如果这仍然不起作用,请检查系统日志或MySQL自己的错误日志以获取更详细的信息。