Назад | Перейти на главную страницу

Почему при установке пакета mysql-server не создается учетная запись root?

Это не Зачем? это имеет значение. Это Как мне самому это сделать?


я использую Сервер Ubuntu 10.04 LTS. я всего-лишь хочу установить сервер MySQL, но почему-то не позволяет. Когда я бегу apt-get install mysql-server все работает нормально. В конце установки выскакивает модальное окно с просьбой ввести root пароль. Единственная странность здесь заключается в том, что кодировка специальных символов (например, границы модального окна) немного запуталась. Но я предполагаю, что это не главная проблема.

В конце установки MySQL запускается автоматически, и все работает нормально, пока я не попытаюсь войти в систему. mysql -u root -p предлагает мне Enter password:. Я ввожу пароль, который использовал при установке, и получаю такую ​​ошибку: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) Когда я пытаюсь ввести пустой пароль, я получаю ту же ошибку, за исключением (using password: YES) часть, которая превращается в (using password: NO).

Я провел небольшое исследование в Google и уже все это пробовал mysqld_safe --skip-grant-tables & штуковина.

Я также проверил пользовательскую таблицу mysql. Единственная запись - это debian-sys-maint пользователь.

mysql> SELECT * FROM user;
+-----------+------------------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+
| Host      | User             | Password                                  | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections |
+-----------+------------------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+
| localhost | debian-sys-maint | *A632698FAB70686111EB0BE3F732A4C244B6DE8C | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                | Y          | Y            |          |            |             |              |             0 |           0 |               0 |                    0 |
+-----------+------------------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+

Если в таблице пользователей действительно нет пользователя root, значит, во время установки что-то пошло не так. Первое, что нужно попробовать, это

sudo dpkg-reconfigure

Если это не сработает, вы можете попробовать

INSERT INTO user VALUES ('localhost','root',password('newpassword'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
INSERT INTO user VALUES ('127.0.0.1','root',password('newpassword'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
INSERT INTO user VALUES ('ebuntu','root',password('newpassword'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
flush privileges;
quit
killall mysqld
/etc/init.d/mysql start

Второй набор команд, бессовестно украденный у Вот

Ладно. Поскольку у нас действительно нет пользователя root, нам нужно сделать его им. MySQL создает поддерживающего пользователя по умолчанию. Это называется debian-sys-maint. Вы можете найти его пароль в /etc/mysql/debian.cnf.

  1. start mysql - Запустите MySQL Выскочка Кстати, если вы еще этого не сделали.
  2. vi /etc/mysql/debian.cnf - Вы увидите файл конфигурации с некоторыми переменными. Мы ищем password = ****************.
  3. mysql -u debian-sys-maint -p - Вам будет предложено ввести пароль. Введите пароль, который мы только что узнали. Не удивляйтесь, вы ничего не увидите, пока печатаете. Нажмите Enter. Bazinga! Были в!
  4. use mysql - Сообщите MySQL, что мы хотим отредактировать собственную базу данных конфигурации.
  5. SELECT * FROM user - Просто для тестирования. Единственная строка, которую вы должны увидеть, - это debian-sys-maint, пользователь, которого вы используете в настоящее время. Если вы видите там несколько строк, немедленно остановитесь и оставьте комментарий, чтобы не сломать больше, чем исправить.
  6. INSERT INTO user VALUES ('localhost','root',password('YourNewPasswordGoesHere'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0); - Запустите этот SQL-запрос. Он вставит пользователя root и предоставьте ему все разрешения. Не забывай менять 'YourNewPasswordGoesHere' на желаемый пароль.
  7. Вы получаете сообщение об ошибке?
    • ERROR 1136 (21501): Column count doesn't match value count at row 1 - Похоже, у нас слишком много или слишком мало ценностей для наших новых root пользователь. Проверить SELECT * FROM user команду и сделайте копию debian-sys-maintценности. Вам просто нужно исправить количество 'Y', '' и 0.
    • Другая ошибка - Немедленно остановись! Дайте нам знать больше в комментариях.
    • Query OK, 1 row affected (0.00 sec) - Это не ошибка. Это чистый успех! Вы можете доказать это SELECT * FROM user;. Переходите к следующему шагу.
  8. quit - Закройте текущий сеанс MySQL. Здесь мы закончили.
  9. stop mysql а потом start mysql - Чтобы изменения вступили в силу, необходимо перезапустить.
  10. mysql -u root -p - Введите новый пароль, когда вам будет предложено. Нажмите Enter.
  11. Готово!

Если у вас возникли проблемы, дайте нам знать и оставьте комментарий.


Хочу поблагодарить MDMarra кто дал мне необходимую подсказку!

Если debconf запрашивает пароль для пользователя root, это потому, что он пытается создать учетную запись root. Если это не так, это связано с ошибкой либо в вашей системе, либо в упакованной версии, которую вы используете.

У меня нет ubuntu, чтобы проверить это, но вы должны поискать похожие проблемы на панели запуска.

«ОШИБКА 1136 (21501): количество столбцов не соответствует количеству значений в строке 1»:

  • Если вы вошли с паролем debian-sys-maint и получили сообщение об ошибке ниже.

  • Вы можете обновить существующий пароль root:

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

  • перезапустите mysql и попробуйте еще раз :)