Упражнения по SQL

1 способ устранения ошибки mysql 1045

2 способ устранения ошибки mysql 1045

3 способ устранения ошибки mysql 1045

Введение — ошибка mysql 1045

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

Знак ‘%’ в одинарных кавычках указывает именно на право входить в базу с любого компьютера, кроме локальной машины.

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

Упражнения по SQL

1 способ устранения ошибки mysql 1045

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

Залейте файл с новыми параметрами на сервер, предварительно удалив старый, а лучше просто переименуйте старый файл. Перезапустите сервер БД через Вашу панель управления.

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

Теперь откройте терминал и войдите под пользователем root без пароля, введя команду:

sudo mysql -u root

Далее введите команду:

Упражнения по SQL

Вход в БД под root без пароля

Пользователь root отсутствует по причине удаления. Я его просто удалил для написания данной статьи. У вас он скорей всего присутствует и таблица будет гораздо шире. Это просто мой тестовый сервер для экспериментов.

Давайте посмотрим еще один пример с другого сервера.

Упражнения по SQL

Список пользователей БД

НО увы, так бывает НЕ всегда!

2 способ устранения ошибки mysql 1045

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

Если на сервер баз данных попасть не удалось, то отредактируйте файл (my.cnf), как рассказано в первом способе и повторите команду:

Теперь, когда в БД удалось попасть через терминал, необходимо создать нового пользователя с паролем и правами админа. Команда:

Следующей командой предоставляются права администратора:

Внимание!!! Не забудьте обратно отредактировать файл my.cnf, то есть удалить строку — skip-grant-tables.

Читайте также:  Почему виндовс 10 выдает ошибку при установке

3 способ устранения ошибки mysql 1045

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

Файлов к счастью у нас не много, точнее три места которые необходимо проверить и поправить при необходимости.

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

Заключение по устранению ошибки mysql 1045

Ошибка mysqli real connect 1045, как правило появляется при неправильной паре имя — пароль или после обновления ПО на сервере. Устраняется путем проверки пользователей через терминал и создания новых пользователей. В случаи не корректного пароля от root редактируются необходимые файлы.

Только полезная информация и реальные кейсы

If you’re an experienced MySQL database manager, you may have come across some vague and confusing problems, like MySQL Error 1045 (28000) messages. Fortunately, while resolving this error can be confusing at first due to its many potential causes, its solutions tend to be relatively simple. Once you determine the reason behind the database error you’re seeing, you should be able to fix it fairly quickly.

  • Connecting to the wrong host or port
  • Wrong password provided
  • Bash converts special characters in the password to a different encoding

Wrong host or port

Also, double check if you are trying to connect to the right port. MySQL, by default, listen on port 3306, but different setups use different ports for security purposes. Providing -P flag and a port number in the command is a great way to remind you of this detail.

Provided user does not exist

By default, the MySQL server listens for connections only from localhost, which means it can be accessed only by applications running on the same host.

Remote root access is disabled by default. If you want to enable that, run this SQL command locally:

Wrong password provided

From the output, we can clearly see that the hashed value for ‘forgotten’ does not match the authentication_string column, which means ‘forgotten’ is the wrong password.

Читайте также:  Код ошибки 6005 в ворлд оф танк

Special characters in the password

If you’re using Bash as your main shell, you should know that not all characters are treated equal in Bash. Some characters are evaluated by Bash to have a non-literal meaning. Instead, these characters carry out a special instruction, or have an alternate meaning; they are called “special characters”, or “meta-characters”.

In this case, your password contains some of the those special characters which might be mistakenly converted to another form by Bash. To prevent this from happening, wrap your password in single quotes in the command:

If you’re locked out and need to bypass the authentication mechanisms to regain access to the database, here are simple steps to do so. Please note that we’re using MariaDB to demonstrate the steps.

  • Stop the instance by running sudo systemctl stop mariadb
  • Now you can open up a new terminal and access the MySQL server instance with root privileges by running mysql -u root -h localhost .
  • Please do note that since we’re running grant-skip-tables, any GRANT/CREATE/SET PASSWORD statements won’t work straight away. In order to fix this, run FLUSH PRIVILEGES;.
  • Stop the mysqld_safe instance and restart MySQL again from systemctl.

Статистика форума SQLinfo показывает, что одной из наиболее популярных проблем является ошибка mysql №1045 (ошибка доступа). 
Текст ошибки содержит имя пользователя, которому отказано в доступе, компьютер, с которого производилось подключение, а также ключевое слово YES или NO, которые показывают использовался ли при этом пароль или была попытка выполнить подключение с пустым паролем.

Причина возникновения ошибки 1045

Таким образом, причина возникновения MySQL error 1045 – неправильная комбинация трех параметров: имени пользователя, хоста и пароля.

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

Читайте также:  Произошла ошибка при распаковке архив поврежден unarc dll вернул код 12

Примеры.
1) Если вы не указали в явном виде имя хоста

2) Другой первопричиной ошибки mysql 1045 может быть неправильное использование кавычек.

Что делать?

Если изначально была ошибка:

PHPMyAdmin

Устанавливаете новую версию MySQL, но в конце при завершении конфигурации выпадает ошибка:

Это происходит потому, что ранее у вас стоял MySQL, который вы удалили без сноса самих баз. Если вы не помните старый пароль и вам нужны эти данные, то выполните установку новой версии без смены пароля, а потом смените пароль вручную через режим –skip-grant-tables.

P.S. Статья написана по материалам форума SQLinfo, т.е. в ней описаны не все потенциально возможные случаи возникновения ошибки mysql №1045, а только те, что обсуждались на форуме. Если ваш случай не рассмотрен в статье, то задавайте вопрос на форуме SQLinfo
Вам ответят, а статья будет расширена.

If not specifying the host to connect (with -h flag), MySQL client will try to connect to the localhost instance while you may be trying to connect to another host/port instance.

Fix: Double check if you are trying to connect to localhost, or be sure to specify host and port if it’s not localhost:

2) User does not exist

or for public IP:

4) Password is wrong, or the user forgot his password

Fix: Check and/or reset password:

5) Special characters in the password being converted by Bash

Fix: Prevent bash from interpreting special characters by wrapping password in single quotes:

6) SSL is required but the client is not using it

Fix: Adding –ssl-mode flag (–ssl flag is deprecated but can be used too)

7) PAM backend not working

To reset password:

Finally, if you are genuinely locked out and need to circumvent the authentication mechanisms in order to regain access to the database, here are a few simple steps to do so:

  • Stop the instance
  • Start the instance
  • Start MySQL again

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *