Доступ заборонено користувачеві 'root @ localhost' (з використанням пароля: НІ)


115

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

Я встановлюю все, Web Platform Installerщо надає Microsoft. Я ніколи не встановлював корінний пароль для 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: \ програмні файли \ 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 відповідає на ВИКОРИСТАННЯ ПАРОЛЯ НІ.
Конерак

3
Здається, ніхто не дав йому очевидної відповіді. Після початкового встановлення пароль для rootuserid порожній . Так що просто зробіть, mysql -u root -pа потім просто натисніть клавішу enter, тобто залиште пароль порожнім. Тоді, звичайно, поставте пароль на rootuserid.
RiggsFolly

1
@RiggsFolly nope, не працює! пустий пароль дає мені відмову в доступі!
J86

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

Відповіді:


48

Ви можете скинути свій кореневий пароль . Майте на увазі, що не бажано використовувати root без пароля.


@Bozho - я дотримуюся інструкції і створюю текстовий файл і називаю його із згаданої команди, після чого я стикаюся з 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)тим, що мені робити?
Насер Хаджлу

@Bozo - Зауважте, що я не міг запустити вашу команду, mysqldt-ntя запускаю її mysqldt -ntфактично. Перший не розпізнається для cmd. Я чекаю від вас почути.
Насер Хаджлу

@Bozho - я оновив своє запитання про помилку. спасибі за ваш час.
Насер Хаджлуо

@Bozho - чи є спосіб оновити / налаштувати мої помилки mysql? ** Оновіть "Доступ заборонено користувачеві" root @ localhost "(з використанням пароля: НЕТ)" на "Доступ заборонено для користувача" myname @ localhost "(з використанням пароля: NO)" **
Hitesh

81

за таку помилку; просто потрібно встановити новий пароль кореневому користувачеві як адміністратору. виконайте наступні дії:

[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. Зафіксуйте налаштування дозволу кореневого користувача;

    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-table &" та відкрийте інший термінал для введення "[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

4
@MrMartin, створіть цей реж sudo mkdir -p /var/run/mysqldі дайте йому дозвілsudo chown mysql:mysql /var/run/mysqld
niceday

це відповідь, яка мені дуже допомогла!
Джонс G

17

1) Ви можете встановити кореневий пароль, викликавши консоль 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 "(з використанням пароля: НІ)" буде усунуто, якщо встановлено $cfg['Servers'][$i]['AllowNoPassword']значення false

Якщо ви, очевидно, змінили пароль на 'root @ localhost', тоді вам доведеться зробити дві речі, щоб вирішити помилку "Доступ відмовлено користувачеві" root @ localhost "":

  1. якщо у "пароля" є порожні лапки типу "", тоді поставте свій пароль між цитатами.
  2. змінити (використовуючи пароль: НІ) на (використовуючи пароль: ТАК)

Це дозволить усунути помилку.

Примітка: phpmyadmin - це окремий інструмент, який постачається з wamp. Він просто надає інтерфейс для MySQL. якщо ви зміните пароль мого sql root, то вам слід змінити конфігурації phpmyadmin. Зазвичай phpmyadmin налаштований на root користувача.


ні ви не можете .. mysql не запуститься: c: \ wamp64 \ bin \ mysql \ mysql5.7.23 \ bin> mysql ПОМИЛКА 1045 (28000): Доступ заборонено користувачеві 'ODBC' @ 'localhost' (з використанням пароля: НЕТ)
Jaxx0rr

9

Я отримував таку ж помилку у капітана OS X El. Версія 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 для початкового налаштування кореня (шукайте "windows", і вам доведеться виконати кроки для налаштування root):

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


Це рішення не буде працювати для мене, тому що у мене немає пароля, який він потрібен на другому кроці.
Насер Хаджлу

Це те, на що я дивився, коли надсилав посилання, ви впевнені, що це не працює? Я не бачу посилання на старий пароль. Для Windows зробіть це: shell> mysql -u root mysql> SET PASSWORD FOR 'root' @ 'localhost' = PASSWORD ('newpwd'); mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD ('newpwd'); mysql> SET PASSWORD FOR 'root' @ '%' = PASSWORD ('newpwd');
sholsapp

1
Як я говорив раніше, коли пишу, mysql -u rootя стикаюся з проблемою, і я не можу увійти до mysql, щоб запустити другий рядок. так Як користуватися цією командою?
Насер Хаджлуо

3

Використовуйте mysql -u root -p Він буде запитувати пароль, вставити пароль і ввести.


Це спрацювало після того, як мені було відмовлено у доступі до користувачів.
Шон Ш

2

Іншим рішенням, якщо хтось отримує помилку Зазначений пароль для 'root' облікового запису користувача недійсний або не вдалося підключитися до сервера бази даних також з правильним паролем, - це наступне

• У реєстрі Windows видаліть ключ reg reg mysql_pwd під HKCU \ Software \ Microsoft \ WebPlatformInstaller

• Видаліть старішу версію роз'єму MySQL .NET

• Завантажте та встановіть останній MySql .NET Connector .


Перевірка пароля та імені бази даних працювала на мене .. +1
Абхінав Добхал

2

Для MySQL 5.7. Ось такі кроки нижче:

Повністю зупиніть ваш MySQL-сервер. Це можна зробити, відкривши вікно Сервісів у Windows XP та Windows Server 2003, де ви можете зупинити службу MySQL.

Відкрийте командний рядок MS-DOS, використовуючи "cmd" у вікні Run. Всередині нього перейдіть до папки бін MySQL, наприклад C: \ MySQL \ bin, використовуючи команду cd.

Виконайте таку команду в командному рядку: mysqld.exe -u root --skip-grant-table

Залиште поточний командний рядок MS-DOS таким, яким він є, та відкрийте нове вікно командного рядка MS-DOS.

Перейдіть у свою папку бін MySQL, наприклад C: \ MySQL \ bin, за допомогою команди cd.

Введіть mysql і натисніть клавішу Enter.

Тепер у вас повинен працювати командний рядок MySQL. Тип використання mysql; так що ми переходимо до бази даних "mysql".

Виконайте таку команду для оновлення пароля:

оновити встановлений користувачем аутентифікацію_string = пароль ('1111'), де user = 'root';


1

У своєму коді замініть "root" на ім'я користувача вашого сервера та пароль на пароль вашого сервера. Наприклад, якщо у вас на сервері http://www.example.com є DB та файли php, очевидно, вам доведеться зайти на цей серверний сайт, використовуючи своє ім’я користувача та пароль.


1

Якщо ви використовуєте XAMPP, просто перейдіть на сторінку C:\xampp\phpMyAdminта відкрийте рядок config.inc.phpпошуку $cfg['Servers'][$i]['password'] = ''та введіть свій пароль.


1

Для отримання деякої інформації я отримую помилку після зміни пароля:

Доступ заборонено користувачеві 'root' @ 'localhost' (використовуючи пароль: НІ)

Доступ заборонено користувачеві 'root' @ 'localhost' (використовуючи пароль: ТАК)

В обох випадках була помилка.

Але справа в тому, що я спробував це

mysql -uroot -ppassword замість

mysql -u root -p password -> з пробілами між -uroot та -ppassword, тому, можливо, якщо у когось виникнуть проблеми, можна спробувати це.


0

Деколи це відбувається просто через встановлення Wamp або зміну параметрів пароля root користувача. Можна використовувати privilages -> 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', 'root', '', 'loginapp');


-3
mysqladmin -u root -p password

введіть свій current password

тоді

введіть свій new password


1
Вся справа в тому, що ОП не знає поточного пароля, оскільки він ніколи не був встановлений .
Nateowami

Я знав свій пароль, але виникла проблема з логіном із тимчасовим паролем. ця відповідь спрацювала на мене
Бернар
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.