Проблема с доступом к Mysql

Вопрос или проблема

Я установил и переустановил MySQL много раз, но программа всегда отказывает мне в доступе, говоря:

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)

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

Если вы установили MySQL из репозитория Ubuntu, то аутентификация пользователя root невозможна обычным способом с командой mysql -u root -p.

Вместо этого необходимо ввести sudo mysql, и терминал запросит у вас пароль sudo.

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

У меня недавно была такая же проблема, и я предпочел вернуться к привычному методу mysql -u root -p (также это упрощает настройку некоторых инструментов, таких как MySQL Workbench, DBeaver…). Вот шаги, которые я выполнил:

Подключитесь к MySQL

sudo mysql

Создайте учетную запись администратора

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;

Можно остановиться на этом этапе и использовать пользователя admin вместо root. По сути, они имеют одинаковые права доступа.

Если вы предпочитаете вернуться к пользователю root, выполните следующие шаги:
Выйдите из соединения под root и переподключитесь с новой учетной записью admin:

quit; /* MySQL скажет вам "Bye" */
mysql -u admin -p

Удалите пользователя root

drop user root@localhost;

Создайте пользователя root с обычным методом аутентификации

CREATE USER 'root'@'localhost' IDENTIFIED BY 'the_password_you_wish_here';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;

Затем отключитесь, переподключитесь под пользователем root и удалите учетную запись admin

quit; /* MySQL скажет вам "Bye" */
mysql -u root -p
drop user admin@localhost;

Теперь вы сможете подключиться с помощью mysql -u root -p

Попробуйте выполнить эти шаги: сначала удалите MySQL с вашего компьютера, а затем установите его с помощью команды
sudo apt-get install mysql-server, вам будет предложено установить пароль.

sudo apt-get remove --purge mysql && sudo apt-get purge mysql && sudo apt-get autoremove && sudo apt-get autoclean && sudo apt-get remove dbconfig-mysql && sudo apt-get dist-upgrade && sudo apt-get install mysql-server

Ответ или решение

Доступ к базе данных MySQL может стать проблемой по различным причинам, особенно при первоначальной установке или после внесения изменений в конфигурацию. Ошибка, с которой вы столкнулись — "ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)" — указывает на то, что аутентификация пользователя root не выполняется успешно. Давайте разберемся в причине возникновения этой ошибки и предложим решение.

Теория

Ошибки доступа MySQL: Ошибка 1045 в MySQL обычно связана с проблемами аутентификации. Это может быть вызвано несколькими проблемами:

  1. Неверный пароль: Наиболее очевидная причина — это просто неправильный пароль. Это может быть связано с типографскими ошибками или ошибками при вводе.

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

  3. Проблемы с разрешениями (GRANTs): Если у вас нет необходимых привилегий, MySQL также откажет в доступе. Пользователи часто путаются из-за недостаточного понимания системы разрешений.

  4. Конфликт настроек: Если MySQL настроен неправильно или конфигурационные файлы противоречат друг другу, это может привести к этой ошибке.

Пример

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

Применение

  1. Используйте правильную команду для входа: Начнем с того, чтобы войти в MySQL с помощью команды, которая учитывает изменения в политике аутентификации. Как было упомянуто, Ubuntu и другие дистрибутивы Linux могут конфигурировать MySQL так, что пользователь root аутентифицируется через sudo. Попробуйте войти с помощью:

    sudo mysql

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

  2. Создание альтернативного пользователя: Если вы предпочитаете использовать старый метод аутентификации, можно создать нового пользователя с аналогичными привилегиями, как у root:

    CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin';
    GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;

    Теперь можно попробовать войти в систему с использованием нового пользователя:

    mysql -u admin -p
  3. Переконфигурирование пользователя root: Если вы все-таки хотите использовать root, необходимо выполнять следующие шаги:

    • Отключитесь и войдите как новый администратор.
    • Удалите пользователя root и создайте заново с привычными параметрами:
    DROP USER 'root'@'localhost';
    CREATE USER 'root'@'localhost' IDENTIFIED BY 'ваш_пароль';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;

    После этого выйдите и снова войдите под новым пользователем root.

  4. Переустановка MySQL: Если никакие из вышеперечисленных решений не работают, попробуйте полностью удалить MySQL и установить его заново:

    sudo apt-get remove --purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
    sudo apt-get autoremove
    sudo apt-get autoclean
    sudo apt-get install mysql-server

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

  5. Проверка конфигурации: Убедитесь, что конфигурационные файлы, такие как /etc/mysql/mysql.conf.d/mysqld.cnf, не содержат конфликтующих или неправильных настроек.

Заключение

В заключение, проблема с доступом к MySQL для пользователя root является распространенной и может быть решена при помощи различных подходов, в зависимости от конкретной причины. Убедитесь, что проверяете все возможные аспекты, начиная от пароля и изменения политик аутентификации, до полной переустановки и переопределения пользователей. Надеюсь, представленные выше шаги помогут вам решить текущую проблему с доступом к MySQL.

Оцените материал
Добавить комментарий

Капча загружается...