1 способ устранения ошибки mysql 1045
2 способ устранения ошибки mysql 1045
3 способ устранения ошибки mysql 1045
Введение — ошибка mysql 1045
Прежде чем приступить к устранению данной ошибки, необходимо понять ряд элементарных вещей в работе базы данных MySQL.
Знак ‘%’ в одинарных кавычках указывает именно на право входить в базу с любого компьютера, кроме локальной машины.
Пользователей с именем root может быть два, три и более. Все эти пользователи будут иметь разные пароли и разные разрешения на вход с определенных хостов.
1 способ устранения ошибки mysql 1045
Самое простое, это попробовать ввести другой пароль от указанного пользователя. Но пароль может быть задан автоматически (в частности root), может быть пустым или просто утерянным.
Залейте файл с новыми параметрами на сервер, предварительно удалив старый, а лучше просто переименуйте старый файл. Перезапустите сервер БД через Вашу панель управления.
После редактирования выше указанного файла попасть в MySQL можно без пароля со всеми привилегиями.
Теперь откройте терминал и войдите под пользователем root без пароля, введя команду:
sudo mysql -u root
Далее введите команду:
Вход в БД под root без пароля
Пользователь root отсутствует по причине удаления. Я его просто удалил для написания данной статьи. У вас он скорей всего присутствует и таблица будет гораздо шире. Это просто мой тестовый сервер для экспериментов.
Давайте посмотрим еще один пример с другого сервера.
Список пользователей БД
НО увы, так бывает НЕ всегда!
2 способ устранения ошибки mysql 1045
Выполнить это можно через терминал. Войдите на сервер через терминал с правами администратора и проверьте есть ли доступ без пароля. Как правило на сервере создается один пользователь root со входом без пароля из терминала. Введите команду:
Если на сервер баз данных попасть не удалось, то отредактируйте файл (my.cnf), как рассказано в первом способе и повторите команду:
Теперь, когда в БД удалось попасть через терминал, необходимо создать нового пользователя с паролем и правами админа. Команда:
Следующей командой предоставляются права администратора:
Внимание!!! Не забудьте обратно отредактировать файл my.cnf, то есть удалить строку — skip-grant-tables.
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.
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 для обозначения локальной машины) и групповые символы (например, % для обозначения любого компьютера кроме локального). Подробный синтаксис смотрите в документации
Примеры.
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