标签:权限 init 方法 解决方法 wpa 连接 授权 ide 提示
问题描述访问mysql:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)
解决方法
一、修改root用户的密码
方法一:
mysql> UPDATE user SET Password=PASSWORD(‘newpassword‘) where USER=‘root‘;
mysql> FLUSH PRIVILEGES;
mysql> quit
Enter password: <输入新设的密码newpassword>
mysql>
方法二
使用mysqladmin。输入
mysqladmin -u root -p oldpassword newpasswd
执行这个命令后,需要输入root的原密码,这样root的密码将改为newpasswd。同样,把命令里的root改为你的用户名,你就可以改你自己的密码了。
当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,那么这种方法就是无效的,而且mysqladmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:
方法三
mysql> INSERT INTO mysql.user (Host,User,Password) VALUES(‘%‘,‘admin‘, PASSWORD(‘admin‘));
mysql> FLUSH PRIVILEGES
这是在增加一个用户,用户名和密码为admin。注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES来执行确认。
方法四
和方法三一样,只是使用了REPLACE语句
mysql> REPLACE INTO mysql.user(Host,User,Password)VALUES(‘%‘,‘system‘,PASSWORD(‘manager‘));
mysql> FLUSH PRIVILEGES
方法五
使用SET PASSWORD语句
mysql> SET PASSWORD FOR system@"%" = PASSWORD(‘manager‘);
你也必须使用PASSWORD()函数,但是不需要使用FLUSH PRIVILEGES来执行确认。
方法六
使用GRANT ... IDENTIFIED BY语句,来进行授权。
mysql> grant all privileges on . to root@localhost identified by ‘Admin123‘ with grant option;
mysql> FLUSH PRIVILEGES
这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES来执行确认。
PASSWORD()函数作用是为口令字加密,在程序中MySql自动解释。
标签:权限 init 方法 解决方法 wpa 连接 授权 ide 提示
原文地址:http://blog.51cto.com/10884109/2141395