Одной из наиболее популярных проблем является ошибка mysql №1045 (ошибка доступа).
Текст ошибки содержит имя пользователя, которому отказано в доступе, компьютер, с которого производилось подключение, а также ключевое слово YES или NO, которые показывают использовался ли при этом пароль или была попытка выполнить подключение с пустым паролем.
Типичные примеры:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES) — сервер MySQL сообщает, что была неудачная попытка подключения с локальной машины пользователя с именем root и не пустым паролем.
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO) — отказано в доступе с локальной машины пользователю с именем root при попытке подключения с пустым паролем.
ERROR 1045 (28000): Access denied for user ‘ODBC’@‘localhost’ (using password: NO) — отказано в доступе с локальной машины пользователю с именем ODBC при попытке подключения с пустым паролем.
Причина возникновения ошибки 1045
Как ни банально, но единственная причина это неправильная комбинация пользователя и пароля. Обратите внимание, речь идет о комбинации пользователь и пароль, а не имя пользователя и пароль. Это очень важный момент, так как в MySQL пользователь характеризуется двумя параметрами: именем и хостом, с которого он может обращаться. Синтаксически записывается как ‘имя пользователя’@’имя хоста’.
Таким образом, причина возникновения MySQL error 1045 — неправильная комбинация трех параметров: имени пользователя, хоста и пароля.
В качестве имени хоста могут выступать ip адреса, доменные имена, ключевые слова (например, localhost для обозначения локальной машины) и групповые символы (например, % для обозначения любого компьютера кроме локального). Подробный синтаксис смотрите в документации
Замечание: Важно понимать, что в базе не существует просто пользователя с заданным именем (например, root), а существует или пользователь с именем root, имеющий право подключаться с заданного хоста (например, root@localhost) или даже несколько разных пользователей с именем root (root@127.0.0.1, root@webew.ru, root@’мой домашний ip’ и т.д.) каждый со своим паролем и правами.
Примеры.
1) Если вы не указали в явном виде имя хоста
GRANT ALL ON publications.* TO ‘ODBC’ IDENTIFIED BY ‘newpass’;
то у вас будет создан пользователь ‘ODBC’@’%’ и при попытке подключения с локальной машины вы получите ошибку:
ERROR 1045 (28000): Access denied for user ‘ODBC’@‘localhost’ (using password: YES)
так как пользователя ‘ODBC’@’localhost’ у вас не существует.
2) Другой первопричиной ошибки mysql 1045 может быть неправильное использование кавычек.
CREATE USER ‘new_user@localhost’ IDENTIFIED BY ‘mypass’; — будет создан пользователь ‘new_user@localhost’@’%’
Правильно имя пользователя и хоста нужно заключать в кавычки отдельно, т.е. ‘имя пользователя’@’имя хоста’
3) Неочевидный вариант. IP адрес 127.0.0.1 в имени хоста соответствует ключевому слову localhost. С одной стороны, root@localhost и ‘root’@’127.0.0.1’ это синонимы, с другой, можно создать двух пользователей с разными паролями. И при подключении будет выбран тот, который распологается в таблице привелегий (mysql.user) раньше.
4) Аккаунт с пустым именем пользователя трактуется сервером MySQL как анонимный, т.е. позволяет подключаться пользователю с произвольным именем или без указания имени. Например, вы создали пользователя »@localhost с пустым паролем, чтобы каждый мог подключиться к базе. Однако, если при подключении вы укажите пароль отличный от пустого, то получите ошибку 1045. Как говорилось ранее, нужно совпадение трех параметров: имени пользователя, хоста и пароля, а пароль в данном случае не совпадает с тем, что в базе.
Что делать?
Во-первых, нужно убедиться, что вы используете правильные имя пользователя и пароль. Для этого нужно подключиться к MySQL с правами администратора (если ошибка 1045 не дает такой возможности, то нужно перезапустить сервер MySQL в режиме —skip-grant-tables), посмотреть содержимое таблицы user служебной базы mysql, в которой хранится информация о пользователях, и при необходимости отредактировать её.
Пример.
SELECT user,host,password FROM mysql.user;
+—————+—————————+—————————————————————————-+
| user | host | password |
+—————+—————————+—————————————————————————-+
| root | house-f26710394 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| aa | localhost | *196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7 |
| test | localhost | |
| new_user | % | |
| | % | *D7D6F58029EDE62070BA204436DE23AC54D8BD8A |
| new@localhost | % | *ADD102DFD6933E93BCAD95E311360EC45494AA6E |
| root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+—————+—————————+——————————————————————————+
Если изначально была ошибка:
-
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
значит вы указывали при подключении неверный пароль, так как пользователь root@localhost существует. Сам пароль храниться в зашифрованном виде и его нельзя узнать, можно лишь задать новый
SET PASSWORD FOR root@localhost=PASSWORD(‘новый пароль’);
-
ERROR 1045 (28000): Access denied for user ‘ODBC’@‘localhost’ (using password: YES)
в данном случае в таблице привилегий отсутствует пользователь ‘ODBC’@’localhost’. Его нужно создать, используя команды GRANT, CREATE USER и SET PASSWORD.
Экзотический пример. Устанавливаете новый пароль для root@localhost в режиме —skip-grant-tables, однако после перезагрузки сервера по прежнему возникает ошибка при подключении через консольный клиент:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)Оказалось, что было установлено два сервера MySQL, настроенных на один порт.
phpmyadmin
При открытии в браузере phpmyadmin получаете сообщение:
Error
MySQL said:#1045 — Access denied for user ‘root’@’localhost’ (using password: NO)
Connection for controluser as defined in your configuration failed.
phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.
Ни логина, ни пароля вы не вводили, да и пхпадмин их нигде требовал, сразу выдавая сообщение об ошибке. Причина в том, что данные для авторизации берутся из конфигурационного файла config.inc.php Необходимо заменить в нем строчки
$cfg[‘Servers’][$i][‘user’] = ‘root’; // MySQL user
$cfg[‘Servers’][$i][‘password’] = »; // MySQL password (only needed
на
$cfg[‘Servers’][$i][‘user’] = ‘ЛОГИН’;
$cfg[‘Servers’][$i][‘password’] = ‘ПАРОЛЬ’
Установка новой версии
Устанавливаете новую версию MySQL, но в конце при завершении конфигурации выпадает ошибка:
ERROR Nr. 1045
Access denied for user ‘root’@‘localhost’ (using password: NO)
Это происходит потому, что ранее у вас стоял MySQL, который вы удалили без сноса самих баз. Если вы не помните старый пароль и вам нужны эти данные, то выполните установку новой версии без смены пароля
Error 1044/1045
Apply Navicat Version No. : All
MySQL access control would involve two stages:
- The server checks whether your desktop (host address or IP address) is allowed to connect.
- Assuming you can connect, the server checks each request you issue to see whether you have sufficient privileges to perform it. For example, Create table privilege, Drop table privilege or Alter table privilege.
MySQL server uses the User, Db, and Host tables in the MySQL database during both stages of access control.
If your remote server supports SSH connection, your Navicat will be able to connect with remote MySQL databases through SSH tunnel without making any changes to existing MySQL privileges setting. The major benefit of SSH tunneling is that it allows us to connect to a MySQL server from behind a firewall when the MySQL server port is blocked.
Access denied for user ‘root’@’localhost’ (using password: YES)
Установил MySQL 5.0.37 на Win2000.
Пробовал приконнектится к базе:
>mysql — uroot — p
но выдало:
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
Что делать?
EMS SQL Manager 2005 for MySQL 3.7.7.1
Комментарий модератора:
Re: Access denied for user ‘root’@’localhost’ (using password: YES)
Re: Access denied for user ‘root’@’localhost’ (using password: YES)
Re: Access denied for user ‘root’@’localhost’ (using password: YES)
Re: Access denied for user ‘root’@’localhost’ (using password: YES)
Re: Access denied for user ‘root’@’localhost’ (using password: YES)
Re: Access denied for user ‘root’@’localhost’ (using password: YES)
Re: Access denied for user ‘root’@’localhost’ (using password: YES)
Приветик, всем!
Может кто-то сталкивался с такой проблемкой.
На своем компе импорт csv файла работает просто замечательно. Как непосредственно через phpmyAdmin, так и через скрирт, где использую следующий запрос к базе данных:
$query = «LOAD DATA INFILE ’12.csv’ INTO TABLE `part` FIELDS TERMINATED BY ‘;'» ;
Access denied for user ‘admin’@’localhost’ (using password: YES)
Создание подключения
1. Распаковать сборку в удобное место (например c:server)
2. После того, как всё распаковано заходим в наш c:server далее в папку home
3. Там будет папка с названием «ваш_ip», «127.0.01» или с каким-то подобным
4. Переименовываем эту папку на:
а) 127.0.0.1 — если хотите поиграть одному
б) Локальный ip — если хотите играть по локальной сети с друзьями или другими игроками с сети вашего провайдера. ( как узнать? Пуск -> Панель управления -> Сетевые подключения -> Правой кнопкой мыши на подключение по Локальной сети -> Состояние -> Поддержка )
в) Внешний ip — если хотите, чтобы к вашему серверу могли подключиться игроки со всего земного шара. ( узнать можно на http://2ip. ru/ )
5. Теперь заходим в папку c:mangosdenwer и запускаем фаил Run. exe ( включится сайт и mysql )
6. Теперь нам нужно установить программу Navicat — скачать
7. После того как вы скачали и установили Navicat, делаем всё как показано ниже:
Если не подходит логин или пароль.
Логин и пароль хранятся в файле:
mangosd. conf
Открываем первый файл mangosd. conf с помощью блакнота. В данном файле проставляется все или практически все, к примеру рейты и тому подобное. Нам нужно в нем узнать только логин и пароль для этого ищем три строчки:
LoginDatabaseInfo = «127.0.0.1;3306; mangos;mangos ;realmd»
WorldDatabaseInfo = «127.0.0.1;3306; mangos;mangos ;mangos»
CharacterDatabaseInfo = «127.0.0.1;3306; mangos;mangos ;characters»
Найдя их мы видим такую картину:
ForumMaxi — Сообщество администраторов онлайн игр
Не Конектит К Базе В Navicat Mysql 8. Помо.
Lis911 30 Jul 2013
После ввода ключа активации в Navicat for MySQL 8. Стало не возможным коннектится к базе сервера. вот что выдает
2003 — Can’t connect to MySQL server on localhost (10061)
Lis911 30 Jul 2013
Lis911 30 Jul 2013
vector 30 Jul 2013
После ввода ключа активации в Navicat for MySQL 8. Стало не возможным коннектится к базе сервера. вот что выдает
помогите с меня спасибка)
Ты пароль скорей всего вводил не верно.
SteveDogs 30 Jul 2013
если паролей не верный то 1045 ошибка.
Sanet 27 Jun 2014
После ввода ключа активации в Navicat for MySQL 8. Стало не возможным коннектится к базе сервера. вот что выдает
помогите с меня спасибка)
Таже ошибка. Ток вчера все работало когда установил. Выключил все и на след день запускаю а оно ошибку дает такую.
Ошибка: Access denied for user ‘root’@’localhost’ (Using password: YES и NO)
При работе с системой MySQL могут возникнуть самые разные ошибки, и на этапе освоения программы разобраться с ними может быть сложно. Одна из наиболее распространенных проблем — ошибка 1045, которая сопровождается сообщением Access denied for user ‘root’@’localhost’ (Using password: YES и NO). Сегодня я расскажу, как ее исправить.
Понять суть проблемы можно, переведя сообщение об ошибке на русский язык. Означает оно, что пользователю с именем root на машине localhost запрещен доступ к БД при использовании пароля или без него.
Причины ошибки Access denied for user ‘root’@’localhost’
Чтобы свободно получить доступ в MySQL, должно совпасть три параметра, описывающих пользователя базы данных — имя, название машины и пароль. Если есть какие-то несовпадения, доступ будет запрещен. Самая простая причина проблемы — неправильный ввод пароля. Кроме этого, вызывать ошибку может неправильный синтаксис.
В системе MySQL нет простой зависимости имя пользователя – пароль, название хоста играет важную роль в получении доступа к БД. Оно может иметь вид IP-адреса, доменного имени, ключевого слова (например, localhost) или символа, объединяющего несколько машин в группу (например, % — любой хост, кроме локального).
Наиболее распространенные ошибки при обращении к БД:
- При присвоении прав новому пользователю не был указан адрес машины, с которой он может подключаться. В таком случае ему автоматически будет разрешено пользоваться БД с любого хоста, кроме локального, и при попытке подключения с localhost возникнет ошибка доступа.
- Неправильно расставленные кавычки. Если при создании пользователя написать ‘username@localhost’, это будет значить, что username@localhost может подключаться с любой машины, кроме локальной, а не что username может подключаться с компьютера localhost. Логин пользователя и имя машины должны иметь свою пару кавычек.
- Использование пароля при его отсутствии в базе данных.
В зависимости от того, при каком способе подключения к БД возникает ошибка Access denied for user ‘root’@’localhost’ (Using password: YES или NO), используются разные методы решения проблемы.
Если ошибка Access denied for user появляется с указанием Using password: YES, проблема заключается в неправильном вводе пароля. Проверить это можно, открыв таблицу mysql.user, в которой хранятся данные обо всех пользователях.
Порядок действий таков:
- Откройте таблицу пользователей.
- Проверьте, существует ли пользователь root с хостом localhost. Если он есть, смотрите на поле «password». Если там пусто, зайти в базу можно без ввода пароля. Если там что-то есть, значит, вы вводите неправильный пароль.
- Смените пароль командой SET PASSWORD.
- Если пользователя root нет, создайте его, установите пароль и предоставьте ему права.
После этого в базу данных можно зайти. Если изменить данные не получается, следует использовать параметр —skip-grant-tables, который отменяет все настройки разрешений.
Если ошибка появляется с ключом (Using password: NO), нужно сделать следующее изменить файл config.inc.php, указав в нем правильные данные. Если проблема возникает при установке MySQL, нужно удалить базы данных старой версии программы или сменить пароль для доступа к ним, используя режим —skip-grant-tables.
Таким образом, ошибка Access denied for user ‘root’@’localhost’ (Using password: YES или NO) возникает при несоответствии пароля и имени пользователя и легко исправляется заменой данных для входа.
Опубликовано 06.06.2017 Обновлено 28.04.2021
Problem Description:
1045-Access Denied for User ‘root’ @ ‘localhost’ (Using Password: YES)
the reason:
Mainly because the username or password error entered by the user is denied access. If you don’t want to reload, you need to retrieve your password or reset your password.
The solution is to reset the root user password, follow the steps below the Windows platform:
method one:
1. Log in to the system as system administrator;
2, if the mysql server is running, stop it.
If it is a server running as a Windows service, enter the service manager: Start menu -> Control Panel -> Administrative Tools -> Services; if the server is not run as a service, you may need to use Task Manager to force to stop it.
3. Create 1 text file and place the following command in a single row:
Set password for ‘root’ @ ‘localhost’=password (‘mynewpassword’);
Save the file with any name. In this example, the file is C: mysql-init.txt.
4, enter the DOS command prompt: Start menu -> Run -> cmd
Assume that you have installed mysql to C: MySQL. If you install MySQL to another location, adjust the following commands.
Under the DOS command prompt, execute the command:
C: > c: mysql bin mysqld-nt —init-file=c: mysql-init.txt
When the server is started, execute the contents of the «-init-file» option to read the file named by the SQL command from the specified file at startup, change the root user password. When the server is successfully launched, C: mysql-init.txt should be deleted.
5. Stop the MySQL server and then restart it in normal mode.
If you run the server in a service, you should start it from the Windows service window; if the server is manually started, you can use the command as in the normal situation.
Method Two:
#/etc/init.d/mysql stop
#mysqld_safe —user=mysql —skip-grant-tables —skip-networking &
#mysql -u root mysql
MySQL> Update User Set Password=Password (‘newpassword’) Where
User=’root’;
mysql> flush privileges;
Mysql> quit
#/etc/init.d/mysql restart
#mysql -uroot -p
Enter Password:
MySQL>
Method 3:
Use the username and password provided in [Client] section directly in the/etc/mysql/debian.cnf file:
#mysql -udebian-sys-maint -p
Enter Password:
MySQL> Update User Set Password=Password (‘newpassword’) Where
User=’root’;
mysql> flush privileges;
Mysql> quit
#mysql -uroot -p
Enter Password:
MySQL>
Method 4:
1. Administrator login system, stop MySQL service or end mysqld-nt process
2, enter the command line, come to MySQL installation directory. Suppose the installation directory is D: mysql , cmd enters the command line
3. Run D: mysql bin mysqld-nt —skip-grant-tables Starts Mysql, close permission check
4, run D: mysql bin mysqladmin -u root flush-privileges password «newpassword» reset root password
5, restart the MySQL service