Heim  >  Artikel  >  Datenbank  >  mysql误删除root用户或者忘记root密码时的解决办法(转)

mysql误删除root用户或者忘记root密码时的解决办法(转)

WBOY
WBOYOriginal
2016-06-07 15:18:151066Durchsuche

1、先结束mysqld进程 #killall mysqld 不加载grant_tables而进入mysql #mysqld_safe --skip-grant-tables 进入mysql #/usr/local/mysql/bin/mysql mysql use mysql Database changed mysql select * from user; Empty set (0.00 sec) mysql insert into user

1、先结束mysqld进程

#killall mysqld

不加载grant_tables而进入mysql
#mysqld_safe --skip-grant-tables &


进入mysql
#/usr/local/mysql/bin/mysql

mysql> use mysql
Database changed

mysql> select * from user;
Empty set (0.00 sec)

mysql> insert into user set user='root',ssl_cipher='',x509_issuer='',x509_subject='';               

(增加root用户的表)
Query OK, 1 row affected, 3 warnings (0.00 sec)
(这时可能会提示某字段如ssl_cipher无默认值, 只要加上,ssl_cipher=''; 其字段如有提示依次添加就OK了 )

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';                                        

(这里面是修改root用户的权限)


mysql> quit;


2、带权限正常启动mysql
#service mysqld start

3、使用root用户登录(如果有phpadmin就直接用root空密码登录再修改密码或权限就可以了)

#mysql -u root -p

mysql> update user set password=password('123456')  where user='root';

Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> flush privileges;

mysql> quit

试下没有密码时进入mysql
#mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)


使用密码进入mysql
#mysql -u root -p 123456
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 25 to server version: 4.1.20

Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

mysql>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn