Доступ запрещен для пользователя root @ localhost (с паролем: NO)


116

Я новичок в MySQL, я пытаюсь запустить WordPress на своем рабочем столе Windows, и ему нужен MySQL.

Я устанавливаю все, Web Platform Installerчто предоставляет Microsoft. Я никогда не устанавливал пароль root для MySQL, и на последнем этапе установки WordPress он запрашивает пароль сервера MySQL.

Какой пароль по умолчанию для root (если он есть) и как его изменить?

Я попытался:

mysql -u root password '123'

Но это показывает мне:

Access denied for user 'root@localhost' (using password:NO)

После этого я пробую:

mysql -u root -p

Однако он запрашивает пароль, которого у меня нет.


Обновление : как предложил Божо, я сделал следующее:

  1. Я остановил службу MySQL из служб Windows
  2. Открыл CMD
  3. Изменено местоположение на c: \ program files \ mysql \ bin
  4. Выполнил команду ниже

    mysqld --defaults-file="C:\\program files\\mysql\\mysql server 5.1\\my.ini" --init-files=C:\\root.txt

  5. Команда запускалась с предупреждением о наборе символов, о котором я упоминал ниже.

  6. Я запускаю службу MySQL из служб Windows
  7. Пишу в командной строке

    mysql -u root -p EnterPassword: 123 // 123 was the password

  8. В командной строке отображается следующая ошибка

    Access denied for user 'root@localhost' (using password:**YES**)

Как мне решить эту проблему? Я жду вестей от вас.


1
Первая команда неверна, должно быть -pили --password, но нет password. Вот почему mysql отвечает ИСПОЛЬЗОВАНИЕМ ПАРОЛЯ №.
Konerak

3
Кажется, никто не дал ему очевидного ответа. После первоначальной установки пароль для rootидентификатора пользователя остается пустым . Так что просто сделайте, mysql -u root -pа затем просто нажмите Enter, т.е. оставьте пароль пустым. Затем, конечно, введите пароль для rootидентификатора пользователя.
RiggsFolly

1
@RiggsFolly нет, не работает! пустой пароль дает мне доступ запрещен!
J86

Я хочу добавить комментарий, так как не уверен, что принятый ответ правильный. Для меня, набрав mysql -u root -p, а затем один раз запросив пароль, введите правильный (тот, который был установлен при установке). Вместо того, чтобы доказывать имя БД для -p с БД, о существовании которой я знаю, не сработало.
Carmine Tambascia

Ответы:


49

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


@Bozho - я следую инструкции a, создаю текстовый файл и вызываю его из указанной команды, после чего сталкиваюсь с 100608 [warning] --default-character-set is deprecated and will be removed in a future release. please use --character-set-server instead.------------------------ -------- и, наконец, когда я снова запускаю службу mysql, я сталкиваюсь с точной ошибкой, но на этот раз с (using password:yes)тем, что мне делать?
Nasser Hadjloo

@Bozo - Обратите внимание, что я не мог запустить вашу команду, если mysqldt-ntя запустил ее. mysqldt -ntНа самом деле первая команда не распознается для cmd. Я жду вестей от вас.
Nasser Hadjloo

@Bozho - Я обновил свой вопрос с ошибкой. Спасибо за уделенное время.
Nasser Hadjloo

@Bozho - есть ли способ обновить / настроить мои ошибки mysql? ** Обновление «Доступ запрещен для пользователя 'root @ localhost' (с использованием пароля: NO)» до «Доступ запрещен для пользователя 'myname @ localhost' (с использованием пароля: NO)» **
Hitesh

81

для такого рода ошибок; вам просто нужно установить новый пароль для пользователя root как администратора. выполните следующие действия:

[root ~]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)
  1. Остановите службу / демон запуска mysql

    [root ~]# service mysql stop   
    mysql stop/waiting
    
  2. Запустите mysql без каких-либо привилегий, используя следующую опцию; Эта опция используется для загрузки и не использует систему привилегий MySQL.

    [root ~]# mysqld_safe --skip-grant-tables &

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

  1. введите командную строку mysql

    [root ~]# mysql -u root
    mysql> 
    
  2. Исправьте настройку разрешений пользователя root;

    mysql> use mysql;
    Database changed
    mysql> select * from  user;
    Empty set (0.00 sec)
    mysql> truncate table user;
    Query OK, 0 rows affected (0.00 sec)
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    mysql> grant all privileges on *.* to root@localhost identified by 'YourNewPassword' with grant option;
    Query OK, 0 rows affected (0.01 sec)
    

* если вам не нужен пароль, а точнее пустой пароль

    mysql> grant all privileges on *.* to root@localhost identified by '' with grant option;
    Query OK, 0 rows affected (0.01 sec)*
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

Подтвердите результаты:

    mysql> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)
  1. Выйдите из оболочки и перезапустите mysql в обычном режиме.

    mysql> quit;
    [root ~]# kill -KILL [PID of mysqld_safe]
    [root ~]# kill -KILL [PID of mysqld]
    [root ~]# service mysql start
    
  2. Теперь вы можете успешно войти в систему как пользователь root с установленным вами паролем.

     [root ~]# mysql -u root -pYourNewPassword 
     mysql> 
    

2
Нажмите Enter после «[root ~] # mysqld_safe --skip-grant-tables &» и откройте другой терминал, чтобы ввести «[root ~] # mysql -u root»
Люда

я встретил эту проблему, и я сделал много, просто забыл перезапускать службы db ... большое спасибо!
Брюс Ли

3
На шаге 3 я получаюERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
MrMartin 01

4
@MrMartin, создайте этот каталог sudo mkdir -p /var/run/mysqldи дайте ему разрешениеsudo chown mysql:mysql /var/run/mysqld
niceday

это ответ, который мне очень помог!
Jones G

17

1) Вы можете установить пароль root, вызвав консоль MySQL. Это находится в

C:\wamp\bin\mysql\mysql5.1.53\bin по умолчанию.

Перейдите в каталог и введите MySQL. затем установите пароль следующим образом ..

    > SET PASSWORD FOR root@localhost = PASSWORD('new-password');

2) Вы можете настроить приложение phpmyadmin wamp для пользователя root, отредактировав

C:\wamp\apps\phpmyadmin3.3.9\config.inc.php 

Примечание: - если вы используете xampp, то файл будет расположен по адресу

C:\xampp\phpMyadmin\config.inc.php

Выглядит это так:

        $cfg['Servers'][$i]['verbose'] = 'localhost';
        $cfg['Servers'][$i]['host'] = 'localhost';
        $cfg['Servers'][$i]['port'] = '';
        $cfg['Servers'][$i]['socket'] = '';
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['extension'] = 'mysqli';
        $cfg['Servers'][$i]['auth_type'] = 'config';
        $cfg['Servers'][$i]['user'] = 'root';
        $cfg['Servers'][$i]['password'] = 'YOURPASSWORD';
        $cfg['Servers'][$i]['AllowNoPassword'] = false;

Ошибка «Доступ запрещен для пользователя 'root @ localhost' (с использованием пароля: NO)» будет устранена, если вы установите $cfg['Servers'][$i]['AllowNoPassword']значение false.

Если вы намеренно изменили пароль для 'root @ localhost', вам нужно сделать 2 вещи, чтобы устранить ошибку «Доступ запрещен для пользователя 'root @ localhost'»:

  1. если в ['password'] есть пустые кавычки, например '', тогда поместите свой пароль в кавычки.
  2. измените (используя пароль: NO) на (используя пароль: YES)

Это устранит ошибку.

Примечание: phpmyadmin - это отдельный инструмент, который поставляется с wamp. Он просто предоставляет интерфейс для MySQL. Если вы измените пароль моего root-пользователя sql, вам следует изменить настройки phpmyadmin. Обычно phpmyadmin настроен на пользователя root.


нет, вы не можете .. mysql не запускается: c: \ wamp64 \ bin \ mysql \ mysql5.7.23 \ bin> mysql ОШИБКА 1045 (28000): доступ запрещен для пользователя 'ODBC' @ 'localhost' (с использованием пароля: NO)
Jaxx0rr

9

Я получал ту же ошибку на OS X El captain. Mysql версии 5.7. После выполнения этих шагов мне удалось подключиться к mysql с правами root.

Остановите сервер mysql

sudo mysql.server stop

Запустите mysql в безопасном режиме

sudo mysqld_safe --skip-grant-tables

Используя mysqld, измените базу данных на mysql и обновите данные для пользователя root.

show databases;
use mysql;
UPDATE mysql.user 
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
exit;

После этого завершите процесс mysqld_safe и запустите mysql в обычном режиме. Вы должны иметь возможность войти в mysql, используя root и новый пароль. Документы SQL для более подробной информации


4

Просто отредактируйте my.iniфайл по пути C: \ xampp \ mysql \ bin. Просто добавь:

skip-grant-tables

линия между строками # The MySQL server [mysqld]и port=3306. Затем перезапустите сервер MySQL.

Выглядит как:

Скриншот


Когда я это сделаю, я получаю еще одну ошибкуcommunications link failure
Ахмед Хусейн

3

Убедитесь, что служба MySQL запущена на вашем компьютере, затем следуйте инструкциям MySQL для первоначальной настройки root (найдите 'windows', и вы перейдете к шагам по настройке root):

http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html


Это решение не сработает для меня, потому что у меня нет пароля, который нужен на втором этапе.
Nasser Hadjloo

Это то, на что я смотрел, когда отправлял ссылку, вы уверены, что это не работает? Я не вижу ссылки на старый пароль. Для Windows сделайте следующее: shell> mysql -u root mysql> УСТАНОВИТЬ ПАРОЛЬ ДЛЯ 'root' @ 'localhost' = PASSWORD ('newpwd'); mysql> УСТАНОВИТЬ ПАРОЛЬ ДЛЯ 'root'@'127.0.0.1' = ПАРОЛЬ ('newpwd'); mysql> УСТАНОВИТЬ ПАРОЛЬ ДЛЯ 'root' @ '%' = ПАРОЛЬ ('newpwd');
sholsapp 08

1
Как я уже говорил, когда я пишу, mysql -u rootя сталкиваюсь с проблемой, и я не могу войти в mysql, чтобы запустить вторую строку. Итак, как использовать эту команду?
Nasser Hadjloo

3

Используйте mysql -u root -p Он запросит пароль, введите пароль и войдите.


Это сработало после того, как я получил отказ в доступе для пользователей.
Шон В.

2

Другое решение, если кто-то получает ошибку . Указанный пароль для учетной записи пользователя «root» недействителен или не удалось подключиться к серверу базы данных также с правильным паролем:

• В реестре Windows удалите раздел mysql_pwd reg в HKCU \ Software \ Microsoft \ WebPlatformInstaller.

• Удалить старую версию коннектора MySQL .NET.

• Загрузите и установите последнюю версию MySql .NET Connector .


У меня сработала проверка пароля и имени базы данных .. +1
Абхинав Добхал

2

Для MySQL 5.7. Это следующие шаги:

Полностью остановите свой сервер MySQL. Это можно сделать, открыв окно «Службы» в Windows XP и Windows Server 2003, где можно остановить службу MySQL.

Откройте командную строку MS-DOS с помощью «cmd» в окне «Выполнить». Внутри него перейдите в папку bin MySQL, например C: \ MySQL \ bin, используя команду cd.

Выполните следующую команду в командной строке: mysqld.exe -u root --skip-grant-tables

Оставьте текущую командную строку MS-DOS без изменений и откройте новое окно командной строки MS-DOS.

Перейдите в папку bin MySQL, например C: \ MySQL \ bin, с помощью команды cd.

Введите mysql и нажмите Enter.

Теперь у вас должна работать командная строка MySQL. Типа use mysql; так что мы переключаемся на базу данных "mysql".

Выполните следующую команду, чтобы обновить пароль:

обновить набор пользователей authentication_string = password ('1111'), где user = 'root';


1

В вашем коде замените «root» на ваше имя пользователя сервера, а пароль - на пароль вашего сервера. Например, если у вас есть БД и ваши файлы php на сервере http://www.example.com, тогда, очевидно, вам придется войти на этот сайт сервера, используя свое имя пользователя и пароль.


1

Если вы используете XAMPP, просто перейдите, C:\xampp\phpMyAdminа затем откройте строку config.inc.phpпоиска $cfg['Servers'][$i]['password'] = ''и введите свой пароль.


1

Для некоторой информации я получаю сообщение об ошибке после изменения пароля:

Доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: NO)

Доступ запрещен для пользователя 'root' @ 'localhost' (с паролем: ДА)

В обоих случаях произошла ошибка.

Но дело в том, что после этого я пробовал с

mysql -uroot -ppassword вместо того

mysql -u root -p password -> с пробелами между -uroot и -ppassword, поэтому, если у кого-то возникнут проблемы, попробуйте этот способ.


0

Иногда это происходит просто из-за установки Wamp или изменения пароля пользователя root. Можно использовать привилегии -> root (пользователь), а затем установить для параметра пароля значение NO, чтобы запускать вещи без пароля, ИЛИ установить пароль и использовать его в приложении.


0
  1. Измените пароль с config.inc.phpнастоящего на C:\xampp\phpMyAdmin.
  2. Введите mysql -u root -pв командной строке.
  3. Вам будет предложено ввести пароль. Введите тот пароль, который вы обновили в config.inc.php.

0

если вы изменили порт на нестандартный, то вам нужно его указать:

$ connection = mysqli_connect ('localhost: 3308', 'корень', '', 'loginapp');


-3
mysqladmin -u root -p password

введите свой current password

затем

введите свой new password


1
Все дело в том, что OP не знает текущий пароль, потому что он никогда не устанавливался .
Nateowami

Я знал свой пароль, но у меня возникла проблема с входом с временным паролем. этот ответ сработал для меня
Бернард
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.