2

这里提到的错误:http: //docs.memsql.com/latest/tshoot/2002/我正在使用 Ubuntu 14.04.2。MySQL 客户端和最新的 MemSQL 建议将 'my.cnf' 配置指向位于 '/var/lib/memsql' 中的 'memsql.sock' 文件,但是没有这样的文件。

经过大量搜索和故障排除后,出现了类似的错误,但没有正确的文件,它们是无关紧要的,因为没有“memsql.sock”文件就无法连接。我正在考虑尽快在生产中使用 MemSQL。

4

2 回答 2

2

您可能会观察到这种行为有多种原因。

  1. 首先,请注意文档表明该文件位于 下/var/lib/memsql/data,而根据您的问题,您可能会在/var/lib/memsql.

  2. 也可能是您的 MemSQL 未安装在 中/var/lib/memsql,而是安装在其他位置。在这种情况下,该memsql.sock文件将位于dataMemSQL 安装目录的子目录中。

  3. 最后,可能是您memsql.cnf缺少socket论点。您需要将客户端和服务器都配置为使用相同的套接字。您指向的文档页面建议更改/etc/mysql/my.cnf- 那是客户端配置。您的服务器配置位于memsql.cnf文件中,该文件很可能位于/var/lib/memsql/memsql.cnf. 确保它具有以下行:

socket              = memsql.sock

然后,当您重新启动 MemSQL 时,它将创建该memsql.sock文件。

如果这些都不起作用,您也可以只连接到127.0.0.1而不是localhost,在这种情况下,memsql.sock将不会使用该文件。

于 2015-05-25T06:35:57.787 回答
0

如果您在mysql没有-h 127.0.0.1它的情况下使用客户端,则会尝试连接到套接字,该套接字默认设置为/var/run/mysqld/mysqld.sock. 这通常设置在/etc/mysqld/my.cnf您的文件中或my.conf文件所在的任何位置。如果您将$HOME/.my.cnf文件更改为

[client] port = 3306 socket = /var/lib/memsql/data/memsql.sock

这应该有效。请注意,这是mysql客户端的行为,而不是 MemSQL。

于 2015-05-26T17:37:18.863 回答