Неможливо підключитися до сервера mysql за допомогою IP-адреси


0

Я намагаюся підключитися до mysql за допомогою ip, але я отримую цю помилку:

ERROR 2003 (HY000): Не вдається підключитися до сервера MySQL за адресою 'xxx.xxx.xxx.xxx' (111)

Я можу підключитися, використовуючи localhostзамість ip.

Це не працює:

mysql -u ryan -h xxx.xxx.xxx.xxx -p

Проте це працює:

mysql -u ryan -h localhost -p

Я був в змозі підключитися раніше сьогодні, то я встановив iRedMail, то я видалив iRedMail, і процес видалення зробив щось для MySQL я думаю, тому я перевстановив mysql з нуля, використовуючи це: \ t

apt-get purge mysql-server mysql-client mysql-common mysql-client-5.5 mysql-server-5.5

Потім:

apt-get install mysql-server

Після цього я створив користувача, і тепер я не можу з'єднатися за допомогою IP-адреси як з новим користувачем, так і з користувачем root, але можу підключитися за допомогою localhost.

Що не так?


Чому ви хочете з'єднатися з чим-небудь іншим, ніж localhost, якщо ви не намагаєтеся дозволити підключенню віддалених клієнтів
Ramhound

Я намагаюся дозволити віддаленим клієнтам підключатися
Get Off My Lawn

Відповіді:


1

MySQL у вашому прикладі конфігурації прив'язується локально до адреси localhost (або буде зрозумілий до IP-адреси 127.0.0.1). Якщо ви хочете підключитися через загальнодоступні IP-адреси серверів, доступ буде відхилено.

Ви можете побачити це, виконавши netstat -lnкоманду або у новому стилі ss.

Видалення та переустановка замінили деякі конфігураційні файли MySQL. apt-get purgeвидаляє конфігураційні файли, також для залежних пакетів. Зазвичай MySQL прив'язується тільки до localhost на новій установці на Ubuntu, тому це виглядає так, що ваш конфігураційний файл MySQL був замінений типовим. Для інших Distros я не можу сказати нічого про конфігурацію за замовчуванням.

Якщо ви хочете використовувати MySQL-Administration-Tool (тобто HeidiSQL) на вашій локальній машині, ви не повинні змінювати bind-addressв MySQL-Config на публічний IP-адресу. Краще, якщо ви використовуєте SSH-тунель.

За допомогою стандартного Linux-Command sshце дуже легко досягти, ssh -L 9999:localhost:3306 <servername>де 9999знаходиться локальний порт. Ви також можете використовувати MySQL-Port 3306 як локальний порт, але це може не працювати, якщо у вас є локальна установка MySQL. На Windows це також можна зробити за допомогою putty, просто подивіться на Google для "putty mysql tunnel", можливо, цей підручник повинен це зробити, але, як я чистий користувач Linux, я не можу перевірити його.


але вперше я встановив його, я використав типову конфігурацію mysql, і він працював нормально.
Get Off My Lawn

Можливо, змінилася конфігурація за умовчанням. Я не можу сказати, тому що ви не згадали, який розподіл ви використовуєте. Іншою причиною може бути те, що інша програма переналаштувала вашу конфігурацію MySQL.
noggerl

ах, я повинен був змінити bind-addressз 127.0.0.1моїх серверів IP-адресу
Get Off My Lawn

Просто видалив мій коментар, тому що я побачив ваш коментар до питання Рамхаунда. Але роз'яснити це: головне питання, що ви хочете зробити з доступом з вашого домашнього комп'ютера до бази даних? Адміністрування бази даних з певними інструментами? Управління даними? Встановлення програми, яка використовує цю базу даних?
noggerl

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