Невозможно подключиться к серверу mysql phpmyadmin ubuntu

Обновлено: 05.07.2024

Если вы захотите настроить резервное копирование базы данных на другой сервер, или протестировать соединение с базой данных из другого сервера. И тогда вы можете столкнуться с ошибкой access denied for user root localhost, даже если вы указали верное имя пользователя, базу данных и пароль.

Что означает access denied for user root localhost?

Если переводить дословно, то эта ошибка означает что у вас нет доступа к данной базе данных от имени этого пользователя. В примере я использовал пользователя root, но вы можете использовать и другого пользователя. Это может быть вызвано несколькими причинами:

  • Пароль введен неверно;
  • По каким-либо причинам у пользователя нет прав на доступ к базе данных;
  • В настройках этого пользователя запрещено авторизоваться с этого сервера;

Для безопасности базы данных в mysql была придумана настройка хоста, из которого пользователь может авторизоваться. По умолчанию для пользователей устанавливается разрешение на авторизацию только с localhost. Чтобы разрешить подключение с других хостов, нужно менять настройки. Рассмотрим как это делается с помощью Phpmyadmin и в терминале.

Исправляем ошибку access denied for user root localhost

1. Подключение с другого хоста

Сначала рассмотрим как работать с Phpmyadmin. Это намного проще для начинающих и тех, кто не любит работать в терминале. Откройте Phpmyadmin, авторизуйтесь в программе с правами root и перейдите на вкладку "Учетные записи пользователей":


Здесь, вы увидите, кроме обычных полей, поле "имя хоста", которое указывает с какого хоста может подключаться пользователь. Если в этом поле написано localhost, значит этот пользователь может авторизоваться только с локальной машины. Также, в этом поле может находиться IP адрес, с которого есть разрешение или символ %, который означает, что пользователь может подключаться с любого IP.


Чтобы изменить права для пользователя, нужно нажать на ссылку "Редактировать привилегии" для него, на открывшейся странице перейдите на вкладку "Информация об учетной записи":


Затем установите в поле "Имя хоста" значение "Любой хост" чтобы разрешить этому пользователю авторизоваться с любого IP. Если вы хотите разрешить только определенный IP, выберите "Использовать текстовое поле" и укажите нужный адрес или подсеть:


Теперь рассмотрим другой способ решить ошибку 1045 access denied for user root localhost, с помощью терминала. Это немного проще, поскольку вам нужно только выполнить несколько команд:

Уже после этого, вы можете подключаться к серверу баз данных с любого другого компьютера и не получите никаких ошибок. Вместо символа %, можно указать нужный ip или localhost, если ограничение нужно вернуть обратно.

2. Неверный пароль root

Иногда это работает. Если не сработало, остановите службу mysql и запустите ее без проверки безопасности, а затем попробуйте снова:

systemctl stop mysqld
mysqld --skip-grant-tables
mysql

> USE mysql;
> UPDATE user SET Password=PASSWORD('ваш_пароль') where USER='root';
> FLUSH PRIVILEGES;

Еще можно попытаться выдать права над всеми таблицами нашему пользователю, если это необходимо:

> GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION;

Обратите внимание на хост localhost, если вы хотите чтобы удаленные узлы тоже могли подключаться к этому пользователю, то нужно использовать %. Дальше можно перезапустить базу данных и работать как обычно.

Выводы

Теперь вы знаете как решается mysql access denied for user root localhost и что делать в таких ситуациях, чтобы решить проблему. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!

Как удаленно подключиться к MySQL

Подключаться к базам данных можно разными способами. Подключение, устанавливаемое с сервера, называется локальным. С помощью такого типа подключения можно работать с домашнего компьютера, при этом используя любые удобные приложения по управлению базами данных.

Я расскажу, как подключиться к удаленной базе данных MySQL, какие существуют способы, а также опишу некоторые типичные ошибки.

Подключение через панель управления TimeWeb

Чтобы подключиться удаленно к MySQL, необходимо для начала открыть сайт хостинга и авторизоваться в личном кабинете. В панели управления следует выбрать раздел «Базы данных MySQL», через него и будем проводить операции. В новом открывшемся окне находим ссылку «Добавить доступ» напротив того сервера, к которому планируется подключиться. Для разрешения доступа к подсети /24 меняем последний актет IP-адреса на знак %.

При установлении соединения используем имя сервера или его IP-адрес. Данная информация доступна на главной странице в разделе «Информация о сервере». Порт указываем 3306, имя пользователя будет тем же, что и название базы данных. Вводим пароль и устанавливаем соединение.

phpMyAdmin

phpMyAdmin – программное средство, предоставляющее веб-интерфейс для работы с сервером MySQL. Подключиться к базе можно, открыв раздел «Базы данных MySQL» в панели управления хостингом. Находим на странице ссылку «phpMyAdmin» и жмем по ней для подключения. Если она недоступна, значит, пользователем был превышен лимит доступных БД. Увеличить его можно сменой тарифа.

Соединение через SSH туннель

Данный тип подключения считается более безопасным, потому что все данные по SSH-туннелю передаются в зашифрованном виде, исключая возможность перехвата.

Подключение в Windows

В данной ОС соединение по SSH протоколу можно осуществить с помощью специальных программ для управления базами данных. Например, PuTTY (бесплатная программа) или SecureCRT (платное ПО, но с пробной версией на 30 дней).

Мы для работы выбрали PuTTY. Скачиваем установщик с официального сайта и устанавливаем приложение . Запускаем программу, затем переходим в раздел «Session». В поле «Host Name» вводим свой домен или указываем его IP-адрес.

Настройка туннеля SSH в приложении PuTTY

Далее переходим в категорию «Connection», открываем вкладку «SSH», затем «Tunnels». В поле «Source Port» указываем значение 3306, в «Destination» вбиваем localhost:3306, потом жмем на кнопку «Add» для добавления порта в список. И только потом жмем кнопку «Open» для установления соединения с хостом.

Создание SSH-туннеля с помощью программы PuTTY

Логин и пароль те же самые, которые используются для входа в панель управления. При подключении используем имя пользователя и пароль, выданные при создании базы данных. Адрес сервера - 127.0.0.1, порт для подключения 3306.

Предупреждаем, что если вы уже устанавливали сервер баз данных MySQL на своем компьютере, то соединение через порт 3306 будет недоступно. Надо будет указать другое значение, например 3307.

Подключение в Linux

В ОС Linux никакого дополнительного ПО устанавливать не придется, можно все провести через командную строку «Терминал». Перед тем как подключиться к MySQL удаленно, нужно создать SSH-туннель. Вводим вот такую команду:

Потом в конфигурационном файле MySQL потребуется изменить параметр, отвечающий за удаленное подключение. Открываем в «Терминале» файл, дав вот такую команду:

Далее комментируем нужную нам строку. В итоге она должна выглядеть вот таким образом:

Сохраняем изменения, потом перезапускаем MySQL вот такой командой:

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

Так мы создадим пользователя с неограниченным доступом ко всем базам на указанном сервере. Потом проверяем подключение утилитой telnet. Если сервер запрос не отклонил, значит, пора приступать к подключению. Для этого можно задать команды вот таких типов:

VDS Timeweb арендовать

Как проверить соединение с базой данных MySQL

Для проверки подключения к базе данных MySQL во всех ОС используем утилиту telnet. Нужно просто открыть командную строку и набрать в ней вот такую команду:

Если соединение установится, то настройка туннеля прошла успешно, можно приступать к подключению. Если нет, рекомендуем тщательно проверить все настройки.

Часовой пояс MySQL

MySQL и Java-приложение (docker)

Распространенные проблемы и ошибки при подключении к MySQL

Как подключиться к MySQL удаленно, если возникают какие-то ошибки? Трудности обычно возникают при наличии запрещающих правил. Проверить, существуют ли такие, можно вот таким запросом:

Если таковые обнаружатся, добавим разрешающее правило. Для этого надо ввести соответствующую команду, она должна выглядеть примерно вот так:

Есть еще возможность открыть доступ для определенного IP-адреса, и это куда более безопасный способ. Для этого потребуется ввести такой запрос:

Если же появляется ошибка типа «Client does not support autentification protocol request by server; consider upgrading MySQL client» , это значит, что установленный клиент не поддерживает требуемый сервером протокол.

Ошибка «1045 невозможно подключиться к серверу MySQL» возникает при попытке подключиться удаленно к базам данных через phpMyAdmin. Причиной тому может быть неправильно введенный логин или же отсутствие пароля у пользователя или его неправильная смена.

Заключение

MySQL – один из самых популярных серверов баз данных с открытым исходным кодом. Подключиться к нему можно разными способами, причем как локально, так и удаленно. Если в процессе соединения возникают нетипичные ошибки, рекомендуем связаться со службой технической поддержки.

MySQL — система управления базами данных (СУБД) с открытым исходным кодом от компании Oracle. Она была разработана и оптимизирована специально для работы веб-приложений. MySQL является неотъемлемой частью таких веб-сервисов, как Facebook, Twitter, Wikipedia, YouTube и многих других.

Эта статья расскажет, как определять, с чем связаны частые ошибки на сервере MySQL, и устранять их.

Не удаётся подключиться к локальному серверу

Одной из распространённых ошибок подключения клиента к серверу является «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)».


Эта ошибка означает, что на хосте не запущен сервер MySQL ( mysqld ) или вы указали неправильное имя файла сокета Unix или порт TCP/IP при попытке подключения.

Убедитесь, что сервер работает. Проверьте процесс с именем mysqld на хосте сервера, используя команды ps или grep, как показано ниже.

Если эти команды не показывают выходных данных, то сервер БД не работает. Поэтому клиент не может подключиться к нему. Чтобы запустить сервер, выполните команду systemctl.

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


Если в результате выполнения команды произошла ошибка службы MySQL, вы можете попробовать перезапустить службу и ещё раз проверить её состояние.


Если сервер работает (как показано) и вы по-прежнему видите эту ошибку, вам следует проверить, не заблокирован ли порт TCP/IP брандмауэром или любой другой службой блокировки портов.

Белкасофт , Удалённо , По итогам собеседования

Для поиска порта, который прослушивается сервером, используйте команду netstat .

Не удаётся подключиться к серверу MySQL

Ещё одна похожая и часто встречающаяся ошибка подключения — «(2003) Can’t connect to MySQL server on ‘server’ (10061)». Это означает, что в сетевом соединении было отказано.

Следует проверить, работает ли в системе сервер MySQL (смотрите выше) и на тот ли порт вы подключаетесь (как найти порт, можно посмотреть выше).

Похожие частые ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:

Ошибки запрета доступа в MySQL

В MySQL учётная запись (УЗ) определяется именем пользователя и клиентским хостом, с которого пользователь может подключиться. УЗ может также иметь данные для аутентификации (например, пароль).

Причин для запрета доступа может быть много. Одна из них связана с учётными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении. Это означает, что имя пользователя, указанное в соединении, может не иметь прав доступа к базе данных.

В MySQL есть возможность создавать учётные записи, позволяющие пользователям клиентских программ подключаться к серверу и получать доступ к данным. Поэтому при ошибке доступа проверьте разрешение УЗ на подключение к серверу через клиентскую программу.

В консоли вводим команду:

Дать привилегии конкретному пользователю в БД по IP-адресу можно, используя следующие команды:

Ошибки запрещённого доступа могут также возникнуть из-за проблем с подключением к MySQL (см. выше).

Потеря соединения с сервером MySQL

С этой ошибкой можно столкнуться по одной из следующих причин:

  • плохое сетевое соединение;
  • истекло время ожидания соединения;
  • размер BLOB больше, чем max_allowed_packet .

В первом случае убедитесь, что у вас стабильное сетевое подключение (особенно, если подключаетесь удалённо).

Если проблема с тайм-аутом соединения (особенно при первоначальном соединении MySQL с сервером), увеличьте значение параметра connect_timeout .

В случае с размером BLOB нужно установить более высокое значение для max_allowed_packet в файле конфигурации /etc/my.cnf в разделах [mysqld] или [client] как показано ниже.

Если файл конфигурации недоступен, это значение можно установить с помощью следующей команды.

Слишком много подключений

Эта ошибка означает, что все доступные соединения используются клиентскими программами. Количество соединений (по умолчанию 151) контролируется системной переменной max_connections . Устранить проблему можно, увеличив значение переменной в файле конфигурации /etc/my.cnf .

Недостаточно памяти

Если такая ошибка возникла, это может означать, что в MySQL недостаточно памяти для хранения всего результата запроса.

Сначала нужно убедиться, что запрос правильный. Если это так, то нужно выполнить одно из следующих действий:

  • если клиент MySQL используется напрямую, запустите его с ключом --quick switch , чтобы отключить кешированные результаты;
  • если вы используете драйвер MyODBC, пользовательский интерфейс (UI) имеет расширенную вкладку с опциями. Отметьте галочкой «Do not cache result» (не кешировать результат).

Также может помочь MySQL Tuner. Это полезный скрипт, который подключается к работающему серверу MySQL и даёт рекомендации по настройке для более высокой производительности.

MySQL продолжает «падать»

Если такая проблема возникает, необходимо выяснить, заключается она в сервере или в клиенте. Обратите внимание, что многие сбои сервера вызваны повреждёнными файлами данных или индексными файлами.

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

Чтобы узнать время безотказной работы сервера, запустите команду mysqladmin .


Кроме того, можно остановить сервер, сделать отладку MySQL и снова запустить службу. Для отображения статистики процессов MySQL во время выполнения других процессов откройте окно командной строки и введите следующее:

Заключение

Самое важное при диагностике — понять, что именно вызвало ошибку. Следующие шаги помогут вам в этом:

my.ini

мой config.inc.php

C:\Program Files\MySQL\MySQL сервер 5.0

my.ini

Опять же, я переустановил командную строку mysql с портом, измененным на 3307

WAMP отлично работает, получая доступ ко всем базам данных, но из клиента командной строки mysql я не мог получить доступ ко всем своим базам данных. Он показывает только show databases;

Я установил Apache, MySQL, PHP и phpmyadmin, и я сделал все необходимое, чтобы веб-страница localhost/phpmyadmin работала правильно, с двумя пользовательскими входами, я помню, что сделал свой пароль и имя пользователя 'root', когда я пытаюсь войти в систему, я получаю ошибку в названии. Я целый.

Короче говоря, это из-за разрешений в mysql. Он может быть настроен на прием соединений от 127.0.0.1, но не от localhost.

Я испытывал ту же проблему в OS X. Теперь я все решил. Я публикую свое решение здесь для всех, у кого есть подобная проблема.

Во-первых, я установил пароль для root в клиенте mysql :

Затем я проверил информацию о версии:

Наконец, я изменил параметр connect_type с tcp на socket и добавил параметр socket в config.inc.php :

Если вы переустановили сервер, это означает, что новая установка, скорее всего, переписала ваше имя пользователя и пароли. (Возможно, вы захотите попробовать войти в систему без пароля, чтобы посмотреть, работает ли это).

Если это чистая установка, вам необходимо установить пароль root .

В противном случае вам потребуется сбросить права суперпользователя .

Я установил XAMPP. Я поставил барьеры безопасности, но со временем забыл свои учетные данные и больше не мог получить доступ к серверу MySQL через phpMyAdmin. У меня постоянно возникает следующая ошибка при попытке ввести phpMyAdmin: 1045 не может войти на сервер MySQL. Я отредактировал.

У меня тоже была эта ошибка. Он работал нормально после того, как я очистил печенье.

Перейдите в каталог phpMyAdmin вашего программного обеспечения Localhost, например Xampp, Mamp или других. Затем измените хост с localhost на 127.0.0.1 и измените порт на 3307 . После этого перейдите в каталог данных и удалите все файлы журнала ошибок, кроме ibdata1 , который является важным файлом для хранения ссылки на созданную таблицу базы данных. Наконец, перезагрузите mysql.I, думаю, ваша проблема будет решена.

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

В моем случае я редактировал файлы конфигурации в /etc/phpmyadmin , моя установка была расположена в /usr/share/phpmyadmin , и моя установка на самом деле не открывала файлы конфигурации /etc/phpmyadmin , как я думал. Поэтому я просто выполнил эту команду:

ln -s /etc/phpmyadmin/conf* /usr/share/phpmyadmin

Для тех, кто не в курсе, ln -s создает мягкую ссылку (в основном ярлык). Таким образом, эта команда просто создает ярлыки из конфигурационных файлов в /etc для установки /usr/share .

Кстати, я понял это после использования программы opensnoop , которая показывает вам, какие файлы открываются (технически, отслеживает open() системных вызовов и pid процесса, как они происходят), которые вы можете установить на Ubuntu с apt-get install perf-tools-unstable , или вы можете получить его здесь.

Примерно через три (3) часа google..ing.This-это решение проблемы: Сначала я выполняю эту команду;

$mysqladmin -u root -p[your root password here] version Какие результаты:

Наконец, я изменил параметр connect_type с tcp на socket и добавил параметр socket в config.inc.php :

Вся заслуга принадлежит этому человеку: Это правильное решение

Вы должны зайти в настройки mySQL и изменить настройки на устаревшую аутентификацию. Я использую установщик сообщества mysql, и он позволяет вам вернуться и перенастроить настройки. Создайте нового пользователя и выберите стандартную аутентификацию, выберите пароль, вот и все. Все так просто.

Поскольку имя пользователя и пароль добавлены в config.inc.php , вам необходимо изменить:

И сохраните файл.

Затем вам нужно будет перезапустить WAMP после внесения вышеуказанных изменений.

У меня тоже была эта ошибка один раз, но только с одним конкретным пользователем. Поэтому я удалил пользователя и заново создал его с тем же именем и паролем.

Затем, после того как я повторно импортировал базу данных, это сработало.

Я бы предложил 3 вещи:

  1. Сначала попробуйте очистить кэш браузера
  2. Попробуйте статически назначить имя пользователя & пароль в config.inc.php
  3. После завершения установки удалите файл config.inc.php в папке "phpmyadmin"

Последний работал на меня.

Добавление следующего $cfg помогает сузить проблему

Не забудьте удалить эти $cfg после завершения отладки!

Прежде чем начать, перейдите в каталог "phpMyAdmin" , предпочтительно тот, который находится в вашем localhost, очистите все ваши файлы cookie и запустите ваш sql, введя:

после этого вам нужно будет изменить свои разрешения внутри mySQL shell:

Время от времени, и это не часто, но время от времени в вашем пароле появляется опечатка. Например, тонкая разница между буквами верхнего и нижнего регистра. Я прошел через многие, многие из этих решений.

Я просто перепутал пароль, и он был сохранен в моем браузере, поэтому я не подумал проверить его снова.

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

Я установил MySQL server enterprise 5.1 на свою локальную машину и теперь хочу установить phpMyAdmin, но это не работает. Я разобрал phpMyAdmin в корневой каталог моего сервера и перешел к.

Я установил Apache, MySQL, PHP и phpmyadmin, и я сделал все необходимое, чтобы веб-страница localhost/phpmyadmin работала правильно, с двумя пользовательскими входами, я помню, что сделал свой.

Я добавил нового пользователя, используя phpmyadmin, и получил ошибку, и я использовал запрос SQL : create database foo_db; create user foo_user identified by 'foo_password'; grant all on foo_db.*.

Мы установили PHPMyAdmin на машину windows под управлением IIS 7.0. Мы можем подключиться к MySQL с помощью командной строки, но не можем подключиться с помощью PHPMyAdmin. Отображается следующая.

Я установил XAMPP. Я поставил барьеры безопасности, но со временем забыл свои учетные данные и больше не мог получить доступ к серверу MySQL через phpMyAdmin. У меня постоянно возникает следующая.

Проблема в том, что я не мог вспомнить пароль root, который я установил на странице безопасности XAMPP, и поскольку я не мог войти в PHPmyAdmin и создать базу данных, я предположил, что должен.

У меня установлен и работает mysql на моем компьютере, и я установил пароль для пользователя root. Я могу войти в mysql из командной строки, набрав mysql -uroot -p и введя свой пароль после этого.

Я пытаюсь войти на сервер MySQL с помощью PHPMyAdmin, но это не работает, Я вставляю true username и password , но это все равно не работает, и я не знаю, в чем причина ошибка .

До сих пор мои apache2, php и mysql отлично работают, кроме phpmyadmin . Всякий раз, когда я запускаю это:

Я получаю эту ошибку в своем браузере:

Не найдено Запрошенный URL / phpmyadmin / не найден на этом сервере. Apache / 2.2.17 (Ubuntu) Сервер на локальном хосте Порт 80

Пробовал различные способы.

Наконец, это из документации ubuntu работало для меня:

Это следует отметить как правильный рекомендованный способ достижения этого – Jimmy Obonyo Abor 16 April 2017 в 00:25

После установки и настройки пользователя и пароля в mysql и phpmyadmin выполните следующую команду

Работали для меня .

Ubuntu 16.04 Если вам просто нужны apache, phPmyAdmin и MySql только для среды веб-приложений, то я предлагаю для примера установить все три для вас, а затем вы готовы к работе. Здесь ссылка

Установщики и загрузки XAMPP | Друзья Apache

Это сработало и для меня. php-gettext отсутствовал. Интересно, почему ни одна из документации не упоминает об этом модуле . – JTheDev 25 January 2017 в 10:43

Не паникуйте! Просто запустите следующий код с правами root в терминале

Я столкнулся с такой же проблемой, я исправил ее, запустив sudo dpkg-reconfigure phpmyadmin

, чтобы указать новое имя пользователя и пароль

Вы должны найти, где phpmyadmin находится, например. locate phpmyadmin, некоторые из них вернут местоположение, например /usr/share/phpmyadmin.

Затем вы можете символически ссылаться на него следующим образом: sudo ln -s /usr/share/phpmyadmin /var/www

Запуск Ubuntu 14.04 и выше, /var/www больше не работает /var/www/html. например, sudo ln -s /usr/share/phpmyadmin /var/www/html

Ссылка: где разместить мой локальный сайт, начиная с версии apache2 версии 2.4.7?

Проверено и работает. Выполнение этого должно решить его для всех, кто хочет 1 лайнер.

Я пробовал все вышеперечисленные методы, и они не работали для меня. Наконец, это сработало.

Откройте терминал и переключитесь на суперпользователя с помощью команды: sudo su

После установки phpmyadmin с помощью инструкций, приведенных в ссылке, откройте /etc/apache2/conf-available.

Вы найдете файл с именем phpmyadmin.conf. Скопируйте его в /etc/apache2/conf-enabled. Или просто используйте команду

Перезапустите apache2 (sudo service apache2 restart), а затем откройте ссылку в браузере.

Читайте также: