码迷,mamicode.com
首页 > 数据库 > 详细

远程访问mysql

时间:2018-07-13 14:02:18      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:权限   init   方法   解决方法   wpa   连接   授权   ide   提示   

问题描述

访问mysql:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)

解决方法

一、修改root用户的密码
方法一:

/etc/init.d/mysql stop
mysqld_safe --user=mysql --skip-grant-tables --skip-networking & //跳过权限
mysql -u root mysql**

mysql> UPDATE user SET Password=PASSWORD(‘newpassword‘) where USER=‘root‘;
mysql> FLUSH PRIVILEGES;
mysql> quit

/etc/init.d/mysql restart

mysql -uroot -p

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自动解释。

远程访问mysql

标签:权限   init   方法   解决方法   wpa   连接   授权   ide   提示   

原文地址:http://blog.51cto.com/10884109/2141395

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!