Не может соединиться с MySQL с помощью 'localhost', но с помощью '127.0.0.1' он в порядке?

Значение по умолчанию ssh_config должен автоматически установить IPQoS соответственно для интерактивного по сравнению с неинтерактивными вызовами.

Просто удостоверьтесь, что Вы повинуетесь тем опциям IP в своем конфигурировании стратегии формирования трафика.

11
задан 7 October 2013 в 05:53
7 ответов

Вы можете проверить одну вещь (которая требует входа в консоль MySQL) - убедитесь, что у вас есть разрешения для входа в root через localhost .

mysql -h 127.0.0.1 -u root -p

- После того, как вы успешно вошли в систему -

mysql> select user,host from mysql.user;
+------+--------------------------------+
| user | host                           |
+------+--------------------------------+
| root | 127.0.0.1                      | 
| root | ::1                            |
| root | localhost                      | <-- Make sure you have a localhost entry for root
+------+--------------------------------+
3 rows in set (0.00 sec)

Просто выбросьте его туда, на всякий случай, в чем проблема .

14
ответ дан 2 December 2019 в 21:45

Странность большинства клиентов MySQL состоит в том, что если вы указываете хост как localhost , они присваивают ему псевдоним сокет-соединения вместо TCP-соединения. У вас есть варианты: либо придерживаться 127.0.0.1 , либо, если клиент поддерживает его (как двоичный файл командной строки mysql с флагом - protocol ), принудительно использовать TCP вместо сокета unix.

8
ответ дан 2 December 2019 в 21:45

Вы можете проверить разрешение, например this:

[learner@localhost ~]$ sudo netstat -npa | grep mysqld  
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      6284/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     233040 6284/mysqld         /var/lib/mysql/mysql.sock

Если он прослушивает 0 0.0.0.0:*, это означает, что каждый может получить доступ к этой mysql.

вы можете редактировать привязку для этого в файле my.conf. В Linux путь по умолчанию для этого:

[learner@localhost ~]$ sudo vi /etc/my.cnf

Добавьте эти строки в файл my.conf, чтобы разрешить нужный IP-адрес.

bind-address = 127.0.0.1   
bind-address = 0.0.0.0
1
ответ дан 2 December 2019 в 21:45

Следует отметить, что если гранты верны, это то, что при использовании MariaDB произошла ошибка, которая вызвала такое поведение в версиях 10.0.1 и 5.5.30 https: // mariadb .atlassian.net / browse / MDEV-4356

1
ответ дан 2 December 2019 в 21:45

Вам нужен mysql.sock в / tmp

ln -s /var/lib/mysql/mysql.sock mysql.sock

после этого должен работать нормально.

-1
ответ дан 2 December 2019 в 21:45

PHP все еще пытается использовать расположение сокета по умолчанию. Эта проблема может возникнуть, если вы переместили папку MariaDB / MySQL из / var / lib / mysql в другое место. Чтобы решить эту проблему, вам необходимо определить местоположение нового сокета в файле /etc/php.ini .

mysqli.default_socket =/newDBLocation/mysql/mysql.sock
0
ответ дан 2 December 2019 в 21:45

Я решил эту проблему, создав symlink, sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock. Но сначала я должен создать папку /var/run/mysqld/, потому что папки изначально не существовало.

.
0
ответ дан 2 December 2019 в 21:45

Теги

Похожие вопросы