如果无法通过套接字连接,如何连接 MySQL 服务器?

如果无法通过套接字连接,如何连接 MySQL 服务器?

我在共享服务器上有一个帐户。我有 jailshell 访问权限以及 PhpMyAdmin。

我想通过 SSH 运行 mysql 命令但出现错误:

$ mysql -u mySqlUser -p mySqlPw
无法通过套接字“/var/lib/mysql/mysql.sock”连接到本地 MySQL 服务器

我可以连接 PHP 和 phpMyAdmin,因此是否可以从 shell 调用 mysql 并让其通过 ip 和端口而不是套接字进行连接?该文件/var/lib/mysql/mysql.sock不存在 - 也许这是故意的,唯一的问题/etc/my.cnf

[mysqld]
跳过innodb

更多信息

我没有权限更改系统设置。我在 /var 中搜索了 mysql.sock,但一无所获。但是,phpMyAdmin 可能以某种方式通过套接字进行连接:

图像

确实,如果我可以通过 IP 连接就太好了。

还尝试了这两种语法:

$ mysql -u mySqlUser -p mySqlPw -h 本地主机
$ mysql -u mySqlUser -p mySqlPw -h 本地主机 -P 3306

两者的结果相同:

错误 2002 (HY000):无法通过套接字“/var/lib/mysql/mysql.sock”连接到本地 MySQL 服务器 (2)

答案1

您缺少协议参数:

mysql --protocol=tcp -u mySqlUser -p mySqlPw

或者

mysql -u mySqlUser -p mySqlPw -h localhost --protocol=tcp -P 3306

两者应该相同(localhosst:3306 是默认值)

答案2

mysql(1)手册页中:

  ·   --host=host_name, -h host_name

      Connect to the MySQL server on the given host.

答案3

$ mysql -u...-p...-h 127.0.0.1

或者

$ mysql -u ... -p ... -h 主机名.example.com

我相信这会阻止使用套接字,使用 -h localhost 使用套接字。另一个选项是,在服务器上查找 mysql.sock 文件,然后...

$ mysql -u ... -p ... -S /path/to/mysql.sock

相关内容