Как иметь дело с ОШИБКОЙ MySql 1133 (42000): не Может найти строку соответствия в пользовательской таблице?

Я, постоянно получают следующее сообщение об ошибке:

1045 не Может войти в систему сервера MySQL

Я попробовал следующее:

  1. sudo service mysql stop (Пошел прекрасный),

  2. sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking & (Пошел прекрасный),

  3. mysql -u root (Пошел прекрасный),

  4. FLUSH PRIVILEGES; (Пошел прекрасный),

  5. SET PASSWORD FOR root@'localhost' = PASSWORD('password'); (Я получаю следующую ошибку:)

    ERROR 1133 (42000): Can't find any matching row in the user table
    
    mysql> select User from mysql.user;
    
    +------------------+
    
    | User             |
    
    +------------------+
    
    | linux            |
    
    | root             |
    
    | debian-sys-maint |
    
    +------------------+
    
    3 rows in set (0.00 sec)
    
4
задан 13 February 2014 в 01:40

1 ответ

Когда вы делаете

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

, вы обновляете пароль для пользователя с именем root и местоположением localhost. Из вашего результата из вашей пользовательской таблицы я делаю вывод, что такой строки НЕТ. Кажется, что есть строка с root и 127.0.0.1, поэтому вам, вероятно, понадобится эта строка.

    SET PASSWORD FOR root@'127.0.0.1' = PASSWORD('password'); 

Пожалуйста, постарайтесь понять, в чем разница между двумя строками, и почему это должно быть сделано вместо первой: я надеюсь, что это поможет вам понять, что было не так и почему вы должны это сделать, как это может быть не на месте: комментарии-дополнения будет намного легче читать, если они будут в вопросе и правильно отформатированы: D

0
ответ дан 13 February 2014 в 01:40

Другие вопросы по тегам:

Похожие вопросы: