mySql root privileges

Небольшой howto чтобы снова вручную не набирать.

Допустим получилось так, что у root пользователя права только usage – т.е. нет прав, например, на создание другого пользователя, и бд mysql он не видит, просто так получилось.
При этом физически та же бд mysql на диске есть и они не битые. (Если настройки не менялись, то для ubuntu в каталоге /var/lib/mysql есть подкаталоги mysql и performance_schema)

В этом случае
1 останавливаем работающий mysql сервер;

2 запускаем уже командой:

mysqld_safe --skip-grant-tables --user=root

3 заходим в mysql:

 mysql -u root 

4 выбираем бд mysql;

5 выполняем запрос:

update user set Select_priv='Y', Insert_priv='Y',Update_priv='Y',Delete_priv='Y',
        Create_priv='Y',Drop_priv='Y',Reload_priv='Y',Shutdown_priv='Y',
        Process_priv='Y',File_priv='Y',Grant_priv='Y',References_priv='Y',
        Index_priv='Y',Alter_priv='Y',Show_db_priv='Y',Super_priv='Y',
        Create_tmp_table_priv='Y',Lock_tables_priv='Y',Execute_priv='Y',
        Repl_slave_priv='Y',Repl_client_priv='Y',Create_view_priv='Y',
        Show_view_priv='Y',Create_routine_priv='Y',Alter_routine_priv='Y',
        Create_user_priv='Y',Event_priv='Y',Trigger_priv='Y' where User='root' and Host='localhost';

В принципе в условии можно оставить where User=’root’.

Останавливаем снова сервер:

mysqladmin shutdown

И дальше уже запускаем через сервис

 
service mysql start

Leave a Reply

Your email address will not be published. Required fields are marked *