my.cnf 的 [mysql] 部分和 [mysqld] 部分中指定的套接字之间有什么关系?

my.cnf 的 [mysql] 部分和 [mysqld] 部分中指定的套接字之间有什么关系?

我遇到了一个奇怪的问题,我确信这是套接字的问题。我无法在 my.cnf 配置的 mysqld 部分中指定套接字,如果我指定,服务器将无法启动。

我还有另一个更广泛的问题,在这里my.cnf 中的 MySQL Socket 配置问题但我觉得这就是问题的关键,所以我在这里特别询问 [mysql] 部分(客户端)中指定的套接字与守护进程部分 [mysqld] 中指定的套接字之间的关系。

它们必须匹配吗?如果我无法在那里指定套接字,这意味着什么?

谢谢。

答案1

是的,套接字设置需要匹配。套接字是进程之间的一种通信模式。服务器指定一个路径,例如电话号码或 IP 地址,它将监听请求/通信。客户端软件连接到套接字的路径。如果客户端和服务器的值不同,那么就像拨错号码或访问错误的 URL 一样。

如果在指定套接字后无法启动服务器,则可能是路径无效,或者您指向的位置由于某种原因服务器无法写入。修复该问题。如果您想要将其更改为服务器可以访问的其他位置,然后使用新路径更新客户端。

答案2

您应该确保 mysql.sock 文件所在的目录可由 MySQL 进程写入。目录中的其他文件仅归 mysql:mysql 所有是不够的。

相关内容