$7.49 .com domain with free InstantPage Website Builder$1.99 Web Hosting   捷飞网络官方淘宝店   Godaddy 优惠码
返回列表 发帖
分享到:




[应用&技术] Linux平台: 忘记mysql的root密码解决办法及自己的实际操作

之前安装的服务器的时候 Mysql 的Root 密码不记得了. 在网上搜到如下文章:
. Z" m  k4 M4 ?+ C" E2 t: c$ u% f, v$ J  s9 Q
当忘记MySQL的root密码的时候,可以进行如下的步骤重新设置MySQL的root密码:
( G( T! U& P# f. |4 f- {$ c$ V( G3 J/ e8 `! T$ g" C
■■Linux的平台■■ 8 c. H* t5 `3 N3 f! O: c4 b8 l

" B8 L; Q+ W' ~* N1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 3 r- L% f& @9 H% T6 M  }7 ?6 i) j5 ]
因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的
+ |9 K$ N2 [7 k- x- }- N' t. d状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对 / y) ?( o% H- U
外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全   ]2 P0 W0 M/ ?3 ?, O
状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线。 , }( Q, i) u' i5 C# b' _. m% s
! N% B9 W5 s  ?
2.修改MySQL的登录设置: . d8 t" B/ ~, \! j) u# I( l1 f
# vi /etc/my.cnf
2 c  N  H, P1 ~7 E在[mysqld]的段中加上一句:skip-grant-tables / G/ E! Q# p" Q' K/ ^! w
例如:
/ V* \" |2 t" W8 J  M3 v( r[mysqld] * g; x0 S; s- q! Z
datadir=/var/lib/mysql 9 K1 S  @7 Q% E8 D/ n: u6 j
socket=/var/lib/mysql/mysql.sock % w7 i4 S' [; G$ q4 w0 D
skip-grant-tables
7 K# n1 n$ A3 Z+ [4 W5 D3 S$ P保存并且退出vi。 + Z3 F# @, y- J+ R. C" @6 \: W
3 P$ n7 d$ H. [7 _# k5 W) I
3.重新启动mysqld , g9 g1 k  J6 k" |0 `& b8 o
# /etc/init.d/mysqld restart 5 O+ `0 I0 T8 F; h
Stopping MySQL: [ OK ]
1 T3 y- o/ F& n! k  wStarting MySQL: [ OK ]
0 a5 Z( K' l9 ?& p  w" g( N3 g4 E! V: w$ Y7 t
4.登录并修改MySQL的root密码
' F# e! w$ p" l8 E; l. U$ O# /usr/bin/mysql / j+ |( y: Q7 u  D6 |: \
Welcome to the MySQL monitor. Commands end with ; or \g. 2 a' Z6 ~! c, a% S
Your MySQL connection id is 3 to server version: 3.23.56
0 t' D5 m$ z9 ?6 k  ~6 m5 S1 u0 c0 G& h! [- [& v. U" N% E
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
9 X" }9 U' A: _1 D( N0 D' s+ e2 |7 d; E4 H
mysql> USE mysql ;
) F% [# |. E" D& W* i& yReading table information for completion of table and column names
" ], k8 W3 w' y2 g3 gYou can turn off this feature to get a quicker startup with -A . b  b! `. H/ ?/ H/ s  }

9 u8 v% J( R' L1 M- J6 {Database changed + w% c1 J2 z; ?* a. @3 ?: g9 b; z) T
mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ;
% v! K( l* I% z# l$ ]4 JQuery OK, 0 rows affected (0.00 sec)
/ H% j8 @; ]5 w' T8 R4 W3 \Rows matched: 2 Changed: 0 Warnings: 0
; c' @' v, s; }9 i' p3 j1 H
/ x; @' v$ Q$ _0 ]0 D& _mysql> flush privileges ; # Z! T, D) S7 F
Query OK, 0 rows affected (0.01 sec)
2 m) N2 @: Z4 C, \6 a' l7 ]6 g$ r" J7 a7 t4 U. l
mysql> quit $ v9 y; g6 Z4 d) J( X' @2 I0 Y
Bye
( O0 p8 O7 m- U
* y9 F5 `$ S; a" E& G" X$ U5.将MySQL的登录设置修改回来
/ y# n; e$ ^9 H5 _7 `* C# vi /etc/my.cnf
- r2 q9 _1 }3 b- w! J: T将刚才在[mysqld]的段中加上的skip-grant-tables删除 # }. N- K1 d- F) |5 X5 t8 P/ N
保存并且退出vi。 ; U. \$ a/ S4 h1 M+ T6 n

: w- U2 n/ r( z6.重新启动mysqld
, _2 z1 D! y( o) w2 p; i# /etc/init.d/mysqld restart
- y0 z6 n  M8 ^1 b' hStopping MySQL: [ OK ]
2 E! ^( U2 |1 n( YStarting MySQL: [ OK ]
, K" I' q1 Y8 A5 a% F' j( S
& s* e0 f. W4 [- P/ q  J9 J7.恢复服务器的正常工作状态 5 q! B* c. F/ ^) ]( q1 D
将步骤一中的操作逆向操作。恢复服务器的工作状态。- ?6 P  O8 t" G2 I6 y  o9 g( F
. ?- c/ R3 Y% Z' y& q& e" @8 z; g
以下红色文字即为我的实际操作, 与上文有一些出入,因为不同的服务器配置文件及相关设置的路径也不一样:(备用)& d% d' J0 W1 W/ o7 ?! ~

! Z/ _* e0 R4 `5 T4 I1. 用SSh链接上服务器0 L& z/ x, F& F8 p6 u& n7 |

0 U# X7 E- G+ Z9 }& [8 @$ [1 R2. 修改MySQL的登录设置:
. L0 F: C; J3 d/ c: ]# vi /etc/my.cnf8 P9 e- a" `$ O* d! w& D$ C. g$ Q
在[mysqld]的段中加上一句:skip-grant-tables / e& G" _5 [( C6 P: x
例如:
+ b, f- Q2 C" I( ?# z[mysqld] % x+ M9 J' I6 P% K
datadir=/var/lib/mysql " l$ F9 B; F: r1 Y
socket=/var/lib/mysql/mysql.sock # u: i* G% C2 J0 v! F# M9 _% g
skip-grant-tables
! R; G6 M4 `+ G) j保存并且退出vi。. \1 @' I5 @, u$ q# _, s* n# x

2 F6 v' [5 D3 i* i" G! X3. 重新启动mysql 7 K3 e/ f" [8 s# h8 s; z
# service mysql restart  G: V+ S6 x" F
Shutting down MySQL. SUCCESS!
9 l% E! l7 w: v8 u5 f9 H' AStarting MySQL.. SUCCESS!
6 v  D, U3 g0 S  Z* |; Z1 [+ _. v8 w7 c7 p
4. 登录并修改MySQL的root密码4 A) w. y$ z% W( C, y, Z5 |
# /usr/local/mysql/bin/mysql
8 l- N% X9 |, |% K/ E1 oWelcome to the MySQL monitor.  Commands end with ; or \g.* m5 x3 k  U. a6 j4 c- O  y
Your MySQL connection id is 11% R; a9 j1 \" L# _
Server version: 5.1.44-log Source distribution6 h# ^# w, m) E' h$ w8 F9 e
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement., F$ w% q  \1 n5 N2 H; X# ]8 N" ^: J
/ g! x8 \3 O5 B4 T: r+ a1 X3 U
mysql> USE mysql ; - F7 M' _# L  O9 B
Database changed! n1 o# m7 }# V
mysql> UPDATE user SET Password = password ('root') WHERE User = 'root' ;
% ^' V* W1 s* z: O! p
Query OK, 3 rows affected (0.01 sec)
; o' R) ^4 W$ m, IRows matched: 3  Changed: 3  Warnings: 0
- s+ x6 O- q4 Gmysql> flush privileges ;
" @& \9 e: ?( w" I( X% b' j1 l
Query OK, 0 rows affected (0.00 sec); Y$ |0 j8 Q" a1 B# `% x: u4 R9 K
mysql> quit6 \* C# f6 \% G2 ^
Bye
; ~3 n- \* z9 c* o: o
( e9 F% Y& O: n5.将MySQL的登录设置修改回来
% `' ^" C4 G7 |0 J# vi /etc/my.cnf
. x* O, e9 b) i/ G. K% |( j4 ?1 |2 O将刚才在[mysqld]的段中加上的skip-grant-tables 删除 或者在前面加 "#" 将其注释掉
6 v7 G/ a; p9 _4 ]保存并且退出vi。
* ^4 {/ U8 N3 b$ ]9 A3 ]/ a( a2 o* T
6.重新启动mysql8 O; e8 k% W; J" W! ~
# service mysql restart
2 @5 c  F% S2 @+ ]. iShutting down MySQL. SUCCESS!
# u2 @' Y/ y5 i0 v  BStarting MySQL.. SUCCESS!* g0 g* i' w: S; [2 z
; \' R1 g) F3 I2 T  l+ @
---------------- 搞定 结束-----------$ p5 r) m2 B9 E& \' ?1 @
# I8 A5 ?2 C0 Q

0 j1 [; c+ r- S$ h4 X  }希望对您有用..转载请注明出处,3Q 共享无限

美国VPS、域名代购:http://tu8l.taobao.com

返回列表
Namecheap
Namecheap.com - Cheap domain name registration, renewal and transfers - Free SSL Certificates - Web Hosting
互联网安全