windows下
1、在dos窗口下关闭mysql服务:>net stop mysql
2、在dos窗口下进入mysql数据库bin目录,拿我的举例子 d:\mysql\mysql server 5.6\bin,这是我的bin目录,在bin目录下输入进入mysql安全模式的命令:
bin>mysqld -nt --skip-grant-tables 输入命令会出现如下提示
( d:\mysql\mysql server 5.6\bin>mysqld -nt --skip-grant-tables
2015-09-24 11:23:09 0 [Warning] option 'new': boolean value 't' wasn't recognize
d. Set to OFF.
2015-09-24 11:23:09 0 [Warning] TIMESTAMP with implicit DEFAULT value is depreca
ted. Please use --explicit_defaults_for_timestamp server option (see documentati
on for more details).
2015-09-24 11:23:09 0 [Note] mysqld (mysqld 5.6.26-log) starting as process 7116
 ...  )
这表示已经可以进入mysql安全模式了
3、再打开一个dos窗口,进入bin目录下,输入:mysql -u root -p  回车会提示输入密码,这个时候直接再按回车键就会进入mysql数据库,然后就可以更改root密码:update mysql.user set password=password('12345') where user='root'(PS:用set password for root@localhost=password('12345')来更改密码可能会提示错误) 最后输入flush privileges 来刷新权限;
4、关闭两个dos窗口,在任务管理器中关闭mysqld.exe进程,重新打开一个dos窗口,开启Mysql服务:net start mysql  ,然后用新密码登录Mysql数据库即可

Linux下:
在linux管理员权限下 进入/etc/mysql/目录,用cat debian.cnf 命令查看文件中[client]节提供的用户名和密码 并用该用户名和密码登录mysql数据库

# mysql -u debian-sys-maint   -p
Enter password: <输入[client]节的密码>
mysql> UPDATE mysql.user SETPassword=PASSWORD('12345') where USER='root';
mysql> FLUSHPRIVILEGES;
mysql> quit
# mysql -u root -p
Enter password:
输入密码就可进入mysql数据库(PS:这种方法亦可解决mysql 提示“access denied for user root @localhost”错误的问题)




10-04 03:15