mysql错误代码ERROR1045(转载)
mysql中使⽤root⽤户登录出现:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
错误产⽣的原因是root⽤户没有localhost登录的权限,修改 /etc/myf数据库配置⽂件,在[mysqld]选项中添加:skip-grant-tables
使⽤安全模式登录mysql数据库:mysql –u root –p (输⼊密码直接按回车,登录成功)。
mysql数据库中:
查看mysql数据库中user表中的数据:select user,host,password from mysql.user;
发现root⽤户有127.0.0.1的权限,没有local host登录的权限。
localhost和127.0.0.1登录是有区别的:
通过localhost登录数据库是使⽤UNIX socket进⾏登录。
通过mysql –uroot –proot –h 127.0.0.1命令进⾏登录是使⽤TCP/IP协议进⾏登录。
因此在mysql.user表中添加root@localhost登录权限。
GRANT ALL ON *.* TO ‘root’@’localhost’;
查看⽤户表(select user,host,password from mysql.user;),发现此时⽤户表中多了⼀条记录,此时,password为空,与之前的root有密码的root@127.0.0.1不是⼀回事。此时可以使⽤root@local host登录(空密码)。修改root@localhost的密码与root@127.0.0.1⼀致(使⽤update直接编辑mysql.user表):
update mysql.user set password=password(‘root’) where user=’root’ and host=’localhost’;(修改⼀条记录)
flush privileges;
或者:
update mysql.user set password=password(‘root’) where user=’root’;(同时修改两条记录)
flush privileges;
重新使⽤mysql –uroot –proot 成功登录。
access转mysql教程视频如果使⽤grant all ⽆法设定某个⽤户的权限:
1、stop mysql的服务;
2、使⽤安全模式登录:vi /etc/myf 在mysqld选项中添加 skip-grant-tables.
3、⼿动修改⽤户的权限,使其可以设置权限。
update mysql.user set Grant_priv=’Y’,Super_priv=’Y’ where user=’root’;
4、刷新缓冲区:flush privileges;
附:可以使⽤grant all on *.* to ‘root’@’localhost’;给⽤户权限
select * from mysql.user\G 查看⽤户的权限 \G表⽰竖⾏显⽰。
service mysqld restart 重新启动MySQL。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论