这里提到的错误:http://docs.memsql.com/latest/tshoot/2002/我正在使用Ubuntu 14.04.2。 MySQL客户端和最新的MemSQL建议将'my.cnf'配置指向位于'/ var / lib / memsql'中的'memsql.sock'文件,但是没有这样的文件。
经过大量的搜索和故障排除,有类似的错误,但没有正确的文件,他们是无关紧要的,没有'memsql.sock'文件可能没有连接。我正在考虑很快在生产中使用MemSQL。
答案 0 :(得分:2)
您可能会观察到此行为有多种原因。
首先,请注意文档表明该文件位于/var/lib/memsql/data
下,而根据您的问题,您可能会在/var/lib/memsql
下查找该文件。
也可能是你的MemSQL没有安装在/var/lib/memsql
中,而是安装在其他地方。在这种情况下,memsql.sock
文件将位于安装MemSQL的目录的data
子目录中。
最后,可能是您的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
文件将不会被使用。
答案 1 :(得分: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的行为。