У меня есть учетная запись на общем сервере. У меня есть доступ к jailshell, а также PhpMyAdmin.
Я хочу запускать команды mysql через SSH, но получаю сообщение об ошибке:
$ mysql -u mySqlUser -p mySqlPw Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
Я могу подключиться к PHP и phpMyAdmin, поэтому можно ли вызвать mysql из оболочки и подключить его через ip и порт вместо сокета? Файл /var/lib/mysql/mysql.sock
не существует - возможно, это намеренно, и единственное, что в /etc/my.cnf
является
[mysqld] skip-innodb
У меня нет доступа к изменению настроек системы. Я поискал mysql.sock в / var, но ничего не нашел. Однако phpMyAdmin может каким-то образом подключаться через сокет:
На самом деле было бы здорово, если бы я мог подключиться через IP.
Также пробовал эти два синтаксиса:
$ mysql -u mySqlUser -p mySqlPw -h localhost $ mysql -u mySqlUser -p mySqlPw -h localhost -P 3306
Оба с одинаковым результатом:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Вам не хватает параметра протокола:
mysql --protocol=tcp -u mySqlUser -p mySqlPw
или
mysql -u mySqlUser -p mySqlPw -h localhost --protocol=tcp -P 3306
Оба должны быть одинаковыми (localhosst: 3306 - значения по умолчанию)
$ 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
Из mysql(1)
страница руководства:
· --host=host_name, -h host_name Connect to the MySQL server on the given host.