Это не Зачем? это имеет значение. Это Как мне самому это сделать?
я использую Сервер 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
.
start mysql
- Запустите MySQL Выскочка Кстати, если вы еще этого не сделали.vi /etc/mysql/debian.cnf
- Вы увидите файл конфигурации с некоторыми переменными. Мы ищем password = ****************
.mysql -u debian-sys-maint -p
- Вам будет предложено ввести пароль. Введите пароль, который мы только что узнали. Не удивляйтесь, вы ничего не увидите, пока печатаете. Нажмите Enter. Bazinga! Были в!use mysql
- Сообщите MySQL, что мы хотим отредактировать собственную базу данных конфигурации.SELECT * FROM user
- Просто для тестирования. Единственная строка, которую вы должны увидеть, - это debian-sys-maint
, пользователь, которого вы используете в настоящее время. Если вы видите там несколько строк, немедленно остановитесь и оставьте комментарий, чтобы не сломать больше, чем исправить.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'
на желаемый пароль.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;
. Переходите к следующему шагу.quit
- Закройте текущий сеанс MySQL. Здесь мы закончили.stop mysql
а потом start mysql
- Чтобы изменения вступили в силу, необходимо перезапустить.mysql -u root -p
- Введите новый пароль, когда вам будет предложено. Нажмите Enter.Если у вас возникли проблемы, дайте нам знать и оставьте комментарий.
Хочу поблагодарить MDMarra кто дал мне необходимую подсказку!
Если debconf запрашивает пароль для пользователя root, это потому, что он пытается создать учетную запись root. Если это не так, это связано с ошибкой либо в вашей системе, либо в упакованной версии, которую вы используете.
У меня нет ubuntu, чтобы проверить это, но вы должны поискать похожие проблемы на панели запуска.
Если вы вошли с паролем debian-sys-maint и получили сообщение об ошибке ниже.
Вы можете обновить существующий пароль root:
обновить набор пользователей authentication_string = password ('YourNewPasswordGoesHere'), где host = 'localhost' и user = 'root';