在mysql中使用root用户登录时,error1045(28000 ) : access denied http://www.Sina.com/user ' root ' @ ' localhost ' (使用
错误的原因是root用户没有localhost登录权限,修改了/etc/my.cnf数据库配置文件,并将“skip-grant-tables”添加到[mysqld]选项中
在安全模式下登录到mysql数据库。 MySQLurootp (输入密码直接按回车,登录成功。
在mysql数据库中:
显示mysql数据库的用户表中的数据。 select user,host,password from mysql.user;
发现root用户具有127.0.0.1权限,没有local host登录权限。
localhost和127.0.0.1登录有区别。
要使用localhost登录数据库,请使用UNIX套接字。
使用MySQLurootprooth 127.0.0.1命令登录是使用TCP/IP协议进行的。
因此,将root@localhost登录权限添加到mysql.user表中。
gant allon *.* to‘root’@’localhost’;
查看用户表(select user,host,password from mysql.user; 时,我们发现此时用户表中多了一条记录。 此时,password为空,与以前root拥有密码的root@127.0.0.1不同。 在这种情况下,可以使用根@ local host登录(空密码)。 更改root@localhost的密码将与root@127.0.0.1相匹配(使用update直接编辑mysql.user表)。
update MySQL.userset password=password (‘root’) where user=’root’andhost=’localhost’; (修改一个记录)
flush权限;
或:
update MySQL.userset password=password (‘root’) where user=’root ); (同时修改两个记录)
flush权限;
已通过MySQLurootproot成功登录。
如果无法使用授权全部设置用户权限:
1、stop mysql服务
2、在安全模式下登录: vi /etc/my.cnf在mysqld选项中添加skip-grant-tables。
3、手动更改用户权限,使其可以设置权限。
update MySQL.userset grant _ priv=’y’,super _ priv=’y’where user=’root’;
4、刷新缓冲:闪存权限;
附属: grant allon *.* to‘root’@’localhost’; 赋予用户权限
select * from mysql.userG用户的查看权限G垂直显示。
service mysqld restart将重新启动MySQL。
在windows上卸载MySQL:1卸载2删除安装的文件夹删除ProramDate隐藏文件夹中的MySQL配置数据文件夹4注册表中的MySQL相关信息。