Windows

步骤如下: 1.停止mysql服务(以管理员身份,在cmd命令行下运行)

net stop mysql 

2.使用 mysqld –skip-grant-tables 命令启动mysql数据库

>D:\>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。
D:\>mysqld --skip-grant-tables</pre> 

3.新开一个cmd窗口,进行如下操作

D:\>mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.26-rc-community MySQL Community Server (GPL)

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

mysql> update mysql.user set password=password('root') where user='root';
Query OK, 1 row affected (0.02 sec)
Rows matched: 2  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4.打开任务管理器,停止mysql,mysqld进程,使用net start mysql启动mysqld服务,就可以使用root用户 root密码进入数据库了。

mysql -u root -p root

Linux

linux下解决办法和win下差不多,都是先开启一个没有权限验证的mysql,修改密码后直接重启mysql即可!

# 停用mysql
service mysqld stop


--------------------------------


# 使用无权限验证启动mysql
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

# 如果启动失败可以采用修改mysql配置文件的方法
vim /etc/my.ini

[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock
# ADD 
skip-grant-tables

# 重启mysql
service mysql restart

--------------------------------

# 修改密码操作同上


# 重启mysql

service mysqld restart

常见密码:

以下是常见的mysql密码,修改的时候就不用使用password()再生成了。


SELECT PASSWORD('123456');  -  *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
SELECT PASSWORD('mysql');  -  *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA
SELECT PASSWORD('admin');  -  *4ACFE3202A5FF5CF467898FC58AAB1D615029441
SELECT PASSWORD('root');  -  *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
SELECT PASSWORD('toor');  -  *9CFBBC772F3F6C106020035386DA5BBBF1249A11
SELECT PASSWORD('new-password');  -  *4A82FDF1D80BA7470BA2E17FEEFD5A53D5D3B762
SELECT PASSWORD('kangle');  -  *39534390859F20B4F7591340666D1B1FF1DC0F30
SELECT PASSWORD('asdqwe');  -  *7E1FF641317801DCCB60031184404B45E8A84BCC

2015年1月19日更新:

增加linux解决方法

补充常见密码