Не вдається підключитися до сервера баз даних (робочий стіл 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


3
Ця відповідь спрацювала для мене. stackoverflow.com/questions/16129399 / ...
mcaleaa

У моєму випадку простий перезавантаження допомоги - але я в першу чергу перевірити @sergio пропозицію - stackoverflow.com/a/7875732/6705161 .
dannydedog 02.03.18

Відповіді:


104

Проблема, ймовірно, пов’язана з тим, що автентифікація сокета ввімкнена для кореневого користувача за замовчуванням, коли не встановлено пароль, під час оновлення до ubuntu 16.04.

Рішення полягає у поверненні до автентифікації власного пароля. Ви можете зробити це, увійшовши в MySQL за допомогою аутентифікації сокета, виконавши:

sudo mysql -u root

Після входу:

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

який повернеться до автентифікації власного (старого за замовчуванням) пароля.

Тепер використовуйте пароль як пароль, коли цього вимагає MySQL.


3
Це з мене спрацювало, я здивований, я вже налаштував суворий пароль під час встановлення mysql і такий самий суворий пароль, що використовується з даним запитом alter. Мені цікаво дізнатись, чому це не вдалося з самої першої спроби
Віпул Патіл

Дуже дякую! Чи така поведінка створена лише для того, щоб користувач кореневого користувача 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, створення користувача є необхідним, оскільки корінь користувача повинен використовуватися лише для роботи адміністратора і розумно, що повинно бути обмежено localhost. якого користувача ви створите, крім цього, вирішувати вам!
користувач3791372

Посилання на причини помилок, яким заборонено доступ, тепер не працює.
Метт Кубро

20

Ви намагалися визначити, чи це проблема з Workbench, чи загальна проблема з підключенням? Спробуйте це:

  1. Відкрийте термінал
  2. Тип mysql -u root -p -h 127.0.0.1 -P 3306
  3. Якщо ви зможете успішно підключитися, ви побачите підказку mysql після введення пароля (введіть quitі введіть туди, щоб вийти).

Повідомте, як це працювало.


Привіт, у ньому сказано: "mysql не розпізнається як внутрішня чи зовнішня команда, операційна програма або командний файл". Дуже дякую.
user948950

1
Можливо, ви захочете додати каталог mysql bin ( binкаталог у головному каталозі MySQL) до системного шляху . Тоді клієнтська програма mysql буде доступна з будь-якого місця. Або ви можете просто запустити цю команду після cd-ing до каталогу смітника MySQL. Обидва повинні працювати.
Серхіо

2
При підключенні до mysql за допомогою цієї команди $> mysql -u root -p -h 127.0.0.1 -P 3306 Введіть пароль: ПОМИЛКА 1045 (28000): Заборонено доступ для користувача 'root' @ 'localhost' (використовуючи пароль: НІ) [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' (з використанням пароля: ТАК) [root @ localhost ~] #
Sumit Munot

15

У мене була подібна проблема в Mac OS, і я зміг це виправити таким чином:

З терміналу запустіть:

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

Потім мене попросили ввести пароль. Я просто натиснув клавішу Enter, оскільки не було встановлено жодного пароля.

Я отримав повідомлення наступним чином:

Ласкаво просимо до монітора MySQL. Команди закінчуються на; або \ g. Ідентифікатор вашого з'єднання MySQL - 181. Версія сервера: 8.0.11 Homebrew.

Якщо вам вдалося увійти в mysql>, запустіть таку команду:

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

Ви повинні отримати таке повідомлення:

Запит OK, 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/ ). Це посилання дозволяє завантажити вамп-сервер на 64- розрядну версію .

  2. Як тільки ви встановите його, ви можете двічі клацнути і запустити .. (ви можете побачити піктограму праворуч на панелі завдань. Вона може бути прихована. Так що ви можете натиснути стрілку, яка показує, як запускаються програми приховування). клацніть на піктограму та перейдіть до Mysql

  3. Потім перейдіть до Сервісу і там ви знайдете Почати / Відновити послуги, натисніть на нього ..

  4. І тепер це зроблено. Відкрийте робочий стіл MySQL і подивіться. Це буде працювати ..


4

Я деякий час боровся з цією проблемою і зробив кілька перевстановок MySQL, перш ніж виявити це.

Я знаю, що сервер MySQL працював нормально, оскільки я міг отримати доступ до всіх своїх БД за допомогою командного рядка.

Сподіваюся, це працює для вас.

У MySQL Workbench (5.2.47 CE)

натисніть Mange Server Instance (нижній правий кут)

натисніть З'єднання

у полі Підключення виберіть:

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

натисніть Редагувати вибране ...

у розділі Параметри ім’я хосту змінює localhost або 127.0.0.1 на ваше ім’я NetBIOS

клацніть Test Connection

Якщо це працює для вас, чудово. Якщо не змінити ім'я хосту на те, що воно було.


1
що таке ім'я NetBIOS?
UserYmY

2
ЦЕ працювало на мене. Ім'я NetBIOS - це ім'я комп'ютера, ви можете прочитати його із властивостей системи, вкладки "Ім'я комп'ютера", "повне ім'я комп'ютера".
NeonMan

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

Щоб бути в курсі верхніх версій та пізніших відвідувачів:

На даний момент я працюю над win7 64bit, маючи на ньому різні інструменти, включаючи python 2.7.4 як необхідну умову для google android ...

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

Як користувач графічного інтерфейсу, легкі вперед / назад інженерія та відносні елементи сервера db працювали добре, але коли ми спробуємо, Database>Connect to Databaseми будемо мати Not connectedі матиме помилку python, якщо ми спробуємо виконати запит, однак серверна служба БД абсолютно запущена і працює добре і ця проблема не від сервера, а від робочого середовища. Для його вирішення ми повинні використовувати Query>Reconnect to Serverявний вибір підключення до БД, і тоді майже все виглядає добре (це може бути пов’язано з моїми кількома db-зв’язками, і я не зміг знайти рішення для визначення типового з’єднання db у робочому середовищі).

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

Висновок: Отже, іноді проблеми з підключенням db у робочому середовищі можуть бути пов’язані з ним самим, а не з сервером (якщо у вас немає інших проблем із відношенням db).


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 (примітка від Adrien: C: \ mysqldata для ... даних)

  4. Не обирайте змінювати параметри безпеки. Зніміть відповідний прапорець, і встановлення завершиться, не встановлюючи пароль root.

Здається, я все запам’ятав.

Удачі

Гері

Я потрапляв у проблеми, коли просто копіював / вставляв бази даних, які я мав у попередньому каталозі даних, до нового. Отож, навколо, що я знайшов, було експортувати кожну базу даних (я знаю ... дуже цікаво), а потім повторно імпортувати їх по одному.

FYI: Я використовував таку команду для імпорту 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" і перезапустіть робочий стіл. Перезапуск служби займає деякий час, але він працює.


0

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

Я повторно встановив програму встановлення, натиснув "Додати", а потім додав до списку сервер MySQL. Зараз це працює нормально.


0

Проблема в тому, що сервер MYSQL не встановлений. Ви можете отримати інсталятор звідси

Тоді перегляньте цей 6-хвилинний посібник із встановлення .

Якщо тоді створення нового підключення в MYSQL Workbench не працює, переконайтеся, що ви запустили це підключення як root, як показано нижче:

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

Якщо ви не знайдете свій файл .ini, перевірте цю відповідь.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.