Mysql數據庫誤刪root用戶極速解決辦法

  在Linux中有時安裝Mysql會出現沒有root用戶的情況,或者說root帳戶被從mysql.user表中誤刪除,這樣就致使不少權限沒法控制。解決辦法是從新建立root用戶,並授予全部權限,具體方法以下:

1. 修改/etc/my.conf文件,添加skip-grant-tables
mysql

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

2. 重啓mysql服務
sql

/etc/init.d/mysqld restart

3. 使用下列命令登錄mysql,無需密碼
bash

mysql

4. 登錄後,從新添加root用戶
socket

use mysql;
insert into user set user='root',ssl_cipher='',x509_issuer='',x509_subject='';
update user set Host='localhost',select_priv='y', insert_priv='y',update_priv='y', Alter_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',create_user_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' where user='root';
先退出:quit;

5. 使用下列命令從新登錄, 設置root的密碼
ide

mysql -u root
update mysql.user set password=password('yourrootpasswd') where user='root';
update user set host = '%' where user = 'root'; #設置遠程機器可訪問mysql,若是不須要可不是設置
flush privileges;
quit;

6. 修改/etc/my.conf文件,將skip-grant-tables去掉,而後重啓mysql
ui

/etc/init.d/mysqld restart
相關文章
相關標籤/搜索