我有一个共享服务器上的帐户。 我有jailshell访问和PhpMyAdmin。
我想通过SSH运行mysql命令,但我得到一个错误:
$ mysql -u mySqlUser -p mySqlPw 无法通过套接字“/var/lib/mysql/mysql.sock”连接到本地MySQL服务器
我可以连接PHP和phpMyAdmin,所以将有可能从shell调用MySQL,并通过IP和端口,而不是连接sockets连接? 文件/var/lib/mysql/mysql.sock不存在 – 也许这是故意的,而/etc/my.cnf唯一的是
的[mysqld] 跳跃式的InnoDB
我无权更改系统设置。 我在/ var中查找了mysql.sock,但什么也没find。 但是,phpMyAdmin可能会通过套接字以某种方式连接:

真的,如果我可以通过IP进行连接,那就太好了。
还尝试了这两个语法:
$ mysql -u mySqlUser -p mySqlPw -h localhost $ mysql -u mySqlUser -p mySqlPw -h localhost -P 3306
两者都有相同的结果:
错误2002(HY000):无法通过套接字“/var/lib/mysql/mysql.sock”连接到本地MySQL服务器(2)
您缺less协议参数:
mysql --protocol=tcp -u mySqlUser -p mySqlPw
要么
mysql -u mySqlUser -p mySqlPw -h localhost --protocol=tcp -P 3306
两者应该是相同的(localhosst:3306是默认值)
从mysql(1)手册页:
· --host=host_name, -h host_name Connect to the MySQL server on the given host.
$ mysql -u … -p … -h 127.0.0.1
要么
$ mysql -u … -p … -h hostname.example.com
我相信这个防止使用套接字,使用-h localhost使用套接字。 另一个选项,查找服务器上的mysql.sock文件然后…
$ mysql -u … -p … -S /path/to/mysql.sock