Не удается подключиться к серверу базы данных (рабочая среда mysql)

87

Не могли бы вы помочь мне решить эту проблему?

Когда я пытаюсь щелкнуть «запрос базы данных» в меню базы данных в рабочей среде Mysql. это дает мне ошибку:

Cannot Connect to Database Server

Your connection attempt failed for user 'root' from your host to server at 
127.0.0.1:3306:Can't connect to mysql server on '127.0.0.1'(10061)

Please:

 1. Check that mysql is running on server 127.0.0.1
 2. Check that mysql is running on port 3306 (note: 3306 is the default, but this can 
    be changed)
 3. Check the root has rights to connect to 127.0.0.1 from your address (mysql rights 
    define what clients can connect to the server and from which machines) 
 4. Make sure you are both providing a password if needed and using the correct 
    password for 127.0.0.1 connecting from the host address you're connecting from
user948950
источник
связанные dba.stackexchange.com/questions/44485/…
Adrien Be
3
Этот ответ сработал для меня. stackoverflow.com/questions/16129399/…
mcaleaa 08
В моем случае простая помощь по перезапуску - но сначала я проверяю предложение @sergio - stackoverflow.com/a/7875732/6705161 .
dannydedog 02

Ответы:

104

Проблема, вероятно, связана с тем, что проверка подлинности сокета включена для пользователя root по умолчанию, когда пароль не установлен, во время обновления до ubuntu 16.04.

Решение состоит в том, чтобы вернуться к собственной аутентификации по паролю. Вы можете сделать это, войдя в MySQL, используя аутентификацию сокета, выполнив:

sudo mysql -u root

После входа в систему:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

который вернется к исходному (старому по умолчанию) парольной аутентификации.

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

Аян
источник
3
Это сработало для меня, я удивлен, я уже настроил строгий пароль при установке mysql и тот же строгий пароль, который используется с данным запросом на изменение. Мне любопытно узнать, почему это не сработало с первой попытки
Випул Патил
Большое спасибо! Это поведение создано только для выгоды пользователя root unix, выполняющего вход в mysql без ввода пароля?
Игорь де Лоренци,
1
Отличное решение. Спасибо, бро!
Валней Фариа,
56

Попробуйте открыть services.mscокно поиска в меню «Пуск» и попробуйте запустить службу MySQL вручную или введите текст services.msc в Runполе.

Колин
источник
1
У меня не получилось. запускается непосредственно из командной строки «C: \ Program Files \ MySQL \ MySQL Server 5.6 \ bin \ mysqld.exe --console» (обратите внимание, что «d» между «mysql» и «.exe» действительно сработало (при открытии командная строка «от имени администратора»). Так что я полагаю, что поиск способа запустить службу «от имени администратора» решит эту проблему.
Адриан Би
5
Где находится поле поиска в меню "Пуск"?
Everyone_Else
Мое решение было запустить Mysql-Workbench с Судом: sudo mysql-workbench . Не знал, где найти services.msc
Луиджи Лопес
33

Похоже, у этой ошибки много причин.

Моя причина / решение

В моем случае причина заключалась в том, что мой сервер был настроен на прием соединений только с localhost. Я исправил это, прочитав эту статью: Как включить удаленный доступ к серверу базы данных MySQL? . В моем my.cnfфайле не было skip-networkingстроки, поэтому я просто изменил строку

bind-address = 127.0.0.1

к

bind-address = 0.0.0.0

Это позволяет подключаться с любого IP-адреса, а не только с 127.0.0.1.

Затем я создал пользователя MySql, который мог подключаться с моей клиентской машины, выполнив следующие команды терминала:

# mysql -u root -p
mysql> CREATE USER 'username'@'1.2.3.4' IDENTIFIED BY 'password';
    -> GRANT ALL PRIVILEGES ON *.* TO 'username'@'1.2.3.4' WITH GRANT OPTION;
    -> \q

где 1.2.3.4IP-адрес клиента, с которого вы пытаетесь подключиться. Если у вас действительно есть проблемы, вы можете использовать '%'вместо того, '1.2.3.4'чтобы разрешить пользователю подключаться с любого IP-адреса.

Другие причины

Достаточно обширный список см. В разделе Причины ошибок отказа в доступе .

Эй Джей Ричардсон
источник
AFAIK, создание пользователя необходимо, потому что пользовательский root должен использоваться только для работы администратора, и разумно, что это должно быть ограничено localhost. какого пользователя вы создадите, зависит от вас!
user3791372
Ссылка на причины ошибок отказа в доступе теперь не работает.
Мэтт Коубро
20

Вы пытались определить, проблема ли это в Workbench или общая проблема с подключением? Попробуй это:

  1. Откройте терминал
  2. Тип mysql -u root -p -h 127.0.0.1 -P 3306
  3. Если вы можете подключиться успешно, после ввода пароля вы увидите приглашение mysql (введите quitи введите Enter для выхода).

Сообщите, как это работало.

Серджио
источник
Привет, он говорит: «mysql не распознается как внутренняя или внешняя команда, работающая программа или командный файл». Огромное спасибо.
user948950
1
Возможно, вы захотите добавить каталог bin mysql ( binкаталог в основном каталоге MySQL) к системному пути . Тогда клиентская программа mysql будет доступна откуда угодно. Или вы можете просто запустить эту команду после перехода в каталог bin MySQL. Оба должны работать.
Серхио,
2
Когда я подключаюсь к mysql с помощью этой команды $> mysql -u root -p -h 127.0.0.1 -P 3306 Введите пароль: ОШИБКА 1045 (28000): доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: NO) [root @ localhost ~] # mysql -u root -p -h 127.0.0.1 -P 3306 Введите пароль: ОШИБКА 1045 (28000): доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: ДА) [root @ localhost ~] # mysql -u admin -p -h 127.0.0.1 -P 3306 Введите пароль: ОШИБКА 1045 (28000): доступ запрещен для пользователя 'admin' @ 'localhost' (с использованием пароля: YES) [root @ localhost ~] #
Sumit Munot
15

У меня была аналогичная проблема в Mac OS, и я смог исправить ее следующим образом:

Из терминала запустите:

mysql -u root -p -h 127.0.0.1 -P 3306

Затем меня попросили ввести пароль. Я просто нажал клавишу ввода, поскольку пароль не был установлен.

Я получил следующее сообщение:

Добро пожаловать в монитор MySQL. Команды заканчиваются на; или \ g. Ваш идентификатор подключения к MySQL - 181. Версия сервера: 8.0.11 Homebrew.

Если вам удалось войти в mysql>, выполните следующую команду:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Вы должны получить такое сообщение:

Запрос в порядке, затронуто 0 строк (0,19 сек)

Теперь ваш пароль - « пароль », а ваше имя пользователя - « root ».

Удачного кодирования :)

алмавхуб
источник
Это, вероятно, больше не будет работать с более новыми установками, поскольку анонимный вход в систему отключен.
en_lorithai
9

Выполните команду ALTER USER. Обязательно смените пароль на надежный пароль по вашему выбору.

  1. sudo mysql # Войдите в mysql`

  2. Запустите команду ниже

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
    

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

Ссылка: https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04

Атира Рамачандран
источник
7

Мне пришлось запустить Workbench как администратор. По-видимому, у него не было необходимых разрешений для подключения к моему процессу сервера базы данных localhost.

Щелкните правой кнопкой мыши ярлык Workbench и выберите Run as Administrator. В окне свойств ярлыка вы можете нажать «Дополнительно» и поставить отметку рядом с «Запуск от имени администратора», чтобы всегда запускать Workbench с правами администратора.

Стивен Райссарт
источник
5

Ошибка возникает из-за того, что сервер mysql не запускается на вашем компьютере. Вам следует запустить его вручную. Сделайте следующие шаги:

  1. Загрузите и установите Wamp-сервер в соответствии с вашей битовой версией (32-битной или 64-битной) на свой компьютер ( http://wampserver-64bit.en.softonic.com/ ), эта ссылка позволяет вам загрузить Wamp-сервер для 64- битной версии .

  2. Как только вы установите его, вы можете дважды щелкнуть и запустить его ... (вы можете увидеть значок в правой части панели задач. Он может быть скрыт, поэтому вы можете щелкнуть стрелку, которая показывает вам скрытые запущенные приложения). щелкните значок и перейдите в Mysql

  3. Затем перейдите в Сервис и там вы найдете « Пуск / возобновление служб», нажмите на него.

  4. И теперь это сделано. Откройте рабочую среду mysql и посмотрите, все будет работать ..

Санджая
источник
4

Некоторое время я боролся с этой проблемой и сделал несколько переустановок MySQL, прежде чем обнаружил это.

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

Надеюсь, что это работает для вас.

В MySQL Workbench (5.2.47 CE)

нажмите Mange Server Instances (нижний правый угол)

нажмите Подключение

в поле подключения выберите:

Локальный экземпляр ($ ServerName) - root@127.0.0.1: 3306 '<' Стандартный (TCP / IP)>

нажмите Edit Selected ...

в разделе Параметры имя хоста измените localhost или 127.0.0.1 на ваше имя NetBIOS

нажмите Проверить соединение

Если это сработает для вас, отлично. Если нет, измените имя хоста на то, что было.

KuBand12
источник
1
что такое имя NetBIOS?
UserYmY
2
ЭТО сработало для меня. NetBIOS-имя - это имя компьютера, его можно прочитать в свойствах системы, на вкладке «Имя компьютера», «Полное имя компьютера».
NeonMan 01
3

Для тех, кто проигнорировал это сообщение об ошибке, отображается следующее:

Имя org.freedesktop.secrets не было предоставлено никакими файлами .service

Обязательно установите gnome-keyring, используя следующие

sudo apt install gnome-keyring
Бруно Кос
источник
2

По-моему, причина заключалась в том, что я пытался использовать новейшую версию MySQL Workbench 8.x для подключения к MySQL Server 5.1 (оба работают на Windows Server 2012).

Когда я удалил MySQL Workbench 8.x и установил MySQL Workbench 6.3.10, он успешно подключился к localhostбазе данных.

Алекс
источник
1

Чтобы быть в курсе последних версий и более поздних версий:

В настоящее время я работаю над 64-битной Win7 с различными инструментами, включая python 2.7.4 в качестве предварительного условия для google android ...

Когда я обновился с WB 6.0.8-win32 до более высоких версий, чтобы иметь 64-битную производительность, у меня были некоторые проблемы, например, на 6.3.5-winx64 у меня была ошибка в подробном представлении таблиц (неупорядоченный вид), из-за чего я понизил до 6.2. 5-винкс64.

Как пользователь GUI, легкая прямая / обратная инженерия и относительные элементы сервера db работали хорошо, но когда мы попытаемся, у Database>Connect to Databaseнас будет Not connectedи будет ошибка python, если мы попытаемся выполнить запрос, однако служба сервера БД абсолютно запущена и работает хорошо и эта проблема не с сервера, а с рабочего места. Чтобы решить эту проблему, мы должны использовать Query>Reconnect to Serverдля явного выбора соединения с БД, и тогда почти все выглядит хорошо (это может быть связано с моими множественными подключениями к базе данных, и я не смог найти какое-то решение для определения подключения к базе данных по умолчанию в рабочей среде).

В качестве примечания: поскольку я использую последнюю версию Xampp (даже в Linux вызывает привыкание :)), в последнее время Xampp использует mariadb 10 вместо mysql 5.x приводит к тому, что версия файла mysql равна 10, что может вызвать некоторые проблемы, такие как прямое проектирование процедур который может быть решен с помощью, mysql_upgrade.exeно все же, когда мы пытаемся проверить соединение с базой данных, wb сообщит о неправильной версии, но это не критично и работает хорошо.

Вывод: Таким образом, иногда проблемы с подключением к базе данных в рабочей среде могут быть связаны с самим собой, а не с сервером (если у вас нет других проблем с подключением к базе данных).

Аликс
источник
1

В моем случае я только что установил MySQL Workbench, но после удаления MySQL Workbench и установки установщика MySQL, он одинаков как для 32, так и для 64-разрядной версии, а затем работает как шарм. Надеюсь, это может быть полезно.

Шайк Элиас
источник
0

Я тоже довольно долго боролся с этой проблемой.

Я попал в эту интересную ветку с форума MySQL: http://forums.mysql.com/read.php?11,11388,11388#msg-11388

Я также встретил (очевидно) несколько хороших SO Q / A.

Кажется, что сообщение, упомянутое в вопросе "user948950", может быть вызвано целым рядом причин: слишком большой файл журнала, неправильные значения файла mysql.ini, пробелы в пути к файлу, проблема безопасности / ACL, старые записи в реестр и так далее.

Итак, после 3х попыток исправить это ... Я отказался и решил сделать старую добрую переустановку.

Вот где этот пост (снова) из этой ветки MySQL оказался полезным , цитирую:

Гэри Уильямс написал: Привет, ребята,

У меня была точно такая же проблема, и именно так я получил ее, начиная с неработающей установки.

  1. Остановите службу Windows для любой существующей установки mysql.

  2. Удалите Mysql.

Как и при большинстве удалений, старые файлы остаются. Если ваш каталог - C: \ mysql \ etc, удалите файлы innob и т.д., но оставьте сами каталоги, а также любые существующие базы данных в 'data'. Если ваш каталог - C: \ Program Files \ etc, удалите все каталоги mysql.

  1. Теперь стоит запустить regedit, чтобы убедиться, что старые записи реестра также удалены при удалении. Если нет, удалите их.

  2. Однако можно использовать новый установщик .msi (только важные файлы) ....

  3. Не используйте их путь установки по умолчанию! Какой-то гений проложил путь с пробелами! Выберите пользовательскую установку и выберите разумный путь, например, C: \ mysql (примечание от Адриена: C: \ mysqldata для ... данных)

  4. Не выбирайте изменение настроек безопасности. Снимите флажок в соответствующем поле, и установка завершится без установки пароля root.

Думаю, я все вспомнил.

Удачи

Гэри

У меня действительно возникли проблемы, когда я просто скопировал / вставил базы данных, которые были в моем предыдущем каталоге "данных", в новый. Итак, я обнаружил, что нужно экспортировать каждую базу данных (я знаю ... очень весело), ​​а затем повторно импортировать их одну за другой.

К вашему сведению: я использовал следующую команду для импорта C:/<MySQLInstallDir>/My SQL Server x.x/bin/mysql -u root -p <dbName> < "<dirPathOfDump>\<dumpName>.sql", напримерC:/mysql/MySQL Server 5.6/bin/mysql -u root -p mySupaCoolDb < "C:\mySupaCoolDbDump20130901.sql"

Адриан Бе
источник
0

Я был в подобных ситуациях раньше и в последний раз обнаружил, что это проблема с обновлением Windows (не уверен). На этот раз я открыл рабочую среду MySQL и не обнаружил связи с моей локальной базой данных. Я не вижу свои таблицы, но вчера я смог подключиться к базе данных.

Я обнаружил, что моя причина в том, что после того, как мой компьютер некоторое время спал и снова его разбудил, служба mysql не запускается. Мое решение: перезапустите службу с именем «mysql» и перезапустите рабочую среду. Перезапуск службы занимает некоторое время, но работает.

WesternGun
источник
0

Моя проблема заключалась в том, что сервер MySQL фактически не был установлен. Я запустил установщик MySQL, но он не установил сервер MySQL.

Я перезапускаю программу установки, нажимаю «Добавить», а затем добавляю сервер MySQL в список. Теперь работает нормально.

Пикамандер2
источник
0

Проблема в том, что сервер MYSQL не установлен. Вы можете получить установщик здесь

Тогда посмотрите это 6-минутное руководство по установке .

Если затем создание нового соединения в MYSQL Workbench не работает, убедитесь, что вы запускаете это соединение как root, как показано ниже:

введите описание изображения здесь

Если вы не нашли свой файл .ini, проверьте этот ответ.

Несущий справедливость
источник