Есть база данных. Не заходит под root. Что делать?
# Automatically generated for Debian scripts. DO NOT TOUCH!
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 34
Server version: 5.0.51a-24+lenny4 (Debian)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
Выбираем бузу mysql
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
Смотрим таблицу user
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 | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections |
+-----------+------------------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+
| localhost | debian-sys-maint | *B0EB27A689F6C17DCA846AEA8DF794B21493B4A3 | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | N | N | N | N | N | | | | | 0 | 0 | 0 | 0 |

Как видно пользователя root нет. При установке система по каим-то причинам его не создала, поэтому его нада создать вручную, чем мы сейчас и займемся.
Стандартным методом GRANT ALL PRIVILEGES создать не получиться:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY '123' WITH GRANT OPTION;
ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)
Повидемому нашему, по умолчанию, созданному ситемой пользователю debian-sys-maint не хватает прав на команду GRANT ALL PRIVILEGES.
Мы видем что почти под всеми привелегиями стоит Y а под некоторыми N
Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv
N N N N N
Под параметром Create_user_priv стоит N, поэтому мы и не можем создать для root'а, либо любого другого пользователя привелегии с помощью команды GRANT. Однако разрешенная привелегия Insert_priv позволяет нам вставить привелегии. Поэтому прибегним к хитрости. Создадим пользователя другой командой:
INSERT INTO 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,max_questions,max_updates,max_connections,max_user_connections) VALUES ('localhost','root',PASSWORD('123'),'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');
Это все одна команда в одну строчку! на конце на забываем знак ;
Итак, мы добавляем в базе mysql в таблицу user суперпользователя root.
Всего в таблице user 37 столбцов:
№1-3. Первые три это как видно Host- это домен откуда разрешаем заходить,его значение localhost. User это root. Потом идет пароль 123.
№ 4-29. Далее идут привелегии я насчитал 26 шт. Select_priv,Insert_priv и т.д. из которых пользователю debian-sys-maint по умалчанию созданому системой разрешены только 21, кроме последних 5 помеченных N. Мы же в свою очередь создаем все привелегии со значением
№ 30-33. Далее пропускаем 4 значения для ssl_type | ssl_cipher | x509_issuer | x509_subject (видно пустые солбцы)
№ 34-37. Для последних четырех столбцов указываем четыре нуля.
Затем чтобы привилегии вступили в силу выполняем команду:
mysql> FLUSH PRIVILEGES;
Позже паролшь можно будет сменить камандами:
mysql> UPDATE user SET Password=PASSWORD('123') WHERE User='root' and Host='localhost';
mysql> FLUSH PRIVILEGES;
И перезапускаем базу:
hosting:~# /etc/init.d/mysql restart
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
Проверив таиблицу user увидем что во всех столбцах с привелегиями стоят Y:
mysql> select * from user;
| localhost | root | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 | 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 создан!
Надеюсь Вам поможет. Сам не один час бился вот по этим ссылкам:
aka_delix