解决方法如下:
1、先以root用户登录系统;
2、关闭mysql服务:/etc/init.d/mysql stop;
3、特权启动mysql:/usr/local/mysql/bin/mysqld_safe --user=mysql
--skip-grant-tables --skip-networking
&(注:参数--skip-grant-tables为跳过授权表;--skip-networking为不监听TCP/IP连接);
4、这时候就处于跳过密码的模式,可以不需要密码进入mysql:mysql –uroot –p
(要求输入密码时直接回车即可);
mysql>use mysql;
查看mysql库下,表名为user的表
mysql>select host,user,password from user;
5、mysql> grant all privileges on *.* to root@"localhost"
identified by 'passwd' with grant option;(
让localhost(本机ip的)用户拥有访问所有库和表的权限。用户名为root 密码为passwd;. flush
privileges; 刷新权限,不用重启立即生效);
6、刷新(对用户操作需要刷新)
flush privileges;
7、目前处于特权使用模式,所以需要重启mysql服务,让它处于正常模式下
# /etc/init.d/mysql restart
大概就是这么一个解决过程,其实比较简单,不过我对数据库不熟悉,所以折腾了一段时间才解决这个问题。