update user set password=password("123456") where user="root"; (别忘了最后的分号)
刷新权限(必须的步骤)>flush privileges;才能生效哦。
补充说明linux下mysql重设root密码的方法之一(更新于2013年1月10日 AM 9:51)
上次好不容易装了一台mysql服务器,今天想做一下测试,由于好久没用的缘故mysql的root密码竟被我忘了,再加上当时装好mysql后修改了mysql的user表,只保留了一个本机的root帐号其它帐号都干掉了,想用其它帐号进去是不可能了,唯一办法就是重设root密码。想想网上应该有解决的办法,于是上网找了一些资料,嘿嘿,方法还真不少,连windows下的也有,网友的力量不可小觑,我认为众多的方法中下面这种还是比较好使,写出来给大家参考哈。
首先你要确保有一个可以登录这台linux操作系统的管理员帐号,如果这个密码也忘了,建议你去网上找找,很多方法的,以前我也做过这里就不多说了。进入系统后你要做的第一件事情就是结束掉mysql的进程,方法有二(都很easy):1.使用命令killall mysqld直接干掉所有的mysql进程;2.先使用命令ps -aux查看系统中所有正在运行的进程状况,找到mysql进程的pid号,再使用命令kill pid号就行了,无论怎样就是先要结束mysql的进程,当你做好这一步的时候,进入mysql安装目录下的bin目录中使用mysqld_safe这个脚本命令,不过后面要加上参数,完整的命令是这样的:./mysqld_safe --skip-grant-tables &,敲完后紧接着进入mysql输入./mysql(这里要说的是我的mysql安装目是/usr/local/mysql/下,如果你的不是就根据自己的实际安装目录进入mysql的bin目录下就可以了),搞完这些后恭喜你就进入了不加载grant_tables而进入mysql的模式了,在这里你就可以重设你的root密码了,设置密码方法就是上面那个修改密码方法了自己回头看,完了别忘了重启mysql,就这么简单,哈哈~
一个小小的发现记录下来以后用的上(更新于2013年1月10日 PM14:19)
Mysql ERROR 1130: Host "localhost" is not allowed to connect to this MySQL server解决方法
mysql>use mysql;
mysql>update user set host = ‘%’ where user =’root’; (其实这里的%就是表示任意的意思,本人自己的理解,勿喷)
mysql>flush privileges;
这条命令使用以后你的mysql数据库user表的host=%了,这时你再使用mysql -h (这里可以接localhost,本机的IP地址,本机的主机名称,三者任意都可以了) -u root -p,哈哈是不是很爽啊,这里只是告诉大家当出现上面这个错误的时候,最快最好的解决办法就是这样了,赶紧去试试吧。