Ладно, так отказ от ответственности: я абсолютный нуб. Дай мне любой другой тип развития области, и я в порядке.

Итак, я только начал использовать Ubuntu 12.04 для установки MySQL. Я никогда не использовал localhost, так как у нас на работе есть промежуточная среда, к которой я обычно обращаюсь. Однако у клиента был очень большой дамп БД, к которому мне нужно было получить доступ, и я не хотел помещать его на сервер, чтобы все имели дело с ним, поэтому я попытался использовать localhost

Всякий раз, когда я пытаюсь получить к нему доступ через MySQL Workbench, я получаю сообщение об ошибке, поэтому я просмотрел несколько статей в Интернете и попробовал несколько разных вещей, но если я запускаю следующую команду в терминале, я получаю ошибку:

mysql -u root -p -h 127.0.0.1

Производит следующее

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

Тем не менее, если я получаю доступ к mysql так:

mysql -u root -p

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

Вот что

/etc/mysql/my.cnf

содержит на данный момент (я пытался искать другие версии этого файла). Для краткости я оставил все закомментированные фрагменты.

[client] 
port            = 3306 
socket          = /var/run/mysqld/mysqld.sock

[mysqld_safe] 
socket          = /var/run/mysqld/mysqld.sock 
nice            = 0

[mysqld]
user            = mysql 
pid-file        = /var/run/mysqld/mysqld.pid 
socket          = /var/run/mysqld/mysqld.sock 
port            = 3306
basedir         = /usr 
datadir         = /var/lib/mysql 
tmpdir          = /tmp 
lc-messages-dir = /usr/share/mysql 
skip-external-locking

key_buffer              = 16M 
max_allowed_packet      = 16M
thread_stack            = 192K 
thread_cache_size       = 8

myisam-recover         = BACKUP

query_cache_limit       = 1M 
query_cache_size        = 16M

log_error = /var/log/mysql/error.log

expire_logs_days        = 10 
max_binlog_size         = 100M

[mysqldump] 
quick quote-names 
max_allowed_packet      = 16M

[mysql]

[isamchk] key_buffer              = 16M

!includedir /etc/mysql/conf.d/

4 ответа4

0

У меня была такая же проблема при попытке подключиться к удаленной базе данных mysql.

Я исправил это, открыв брандмауэр на сервере базы данных, чтобы пропускать трафик через:

sudo ufw allow mysql
0

проверьте, работает ли сервер mysql, настроен ли брандмауэр, разрешающий порт mysql server. проверьте эту ссылку также

0

Прочтите это и проверьте конфигурацию вашего брандмауэра.

0

Когда вы входите в MySQL с

mysql -u root -p

пожалуйста, запустите эту команду

SELECT USER(),CURRENT_USER();

USER() сообщает, как вы пытались пройти аутентификацию в MySQL

CURRENT_USER() сообщает, как вам разрешили проходить аутентификацию в MySQL

Я обсуждал это раньше: как я могу увидеть, какой пользователь вошел в систему, как в MySQL?

В вашем случае, я думаю, что CURRENT_USER() является 'root'@'localhost' .

Есть две вещи, которые вам нужно подключить к MySQL, используя 127.0.0.1:

  • Вам нужно определить пользователя 'root'@'127.0.0.1' . Это, вероятно, то, что сказал пользователь () .
  • Вам нужно явно использовать протокол TCP/IP

Чтобы создать пользователя, войдите в MySQL и запустите SHOW GRANTS;

Что бы ни делалось резервное копирование, скопируйте и вставьте его в редактор, замените localhost на 127.0.0.1 , введите отредактированную команду в mysql и выполните ее.

Теперь, чтобы войти через TCP/IP, сделайте это:

mysql -u root -p -h 127.0.0.1 --protocol=tcp

После входа запустите SELECT USER(),CURRENT_USER(); и вы увидите что-то другое.

Попробуйте!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .