关于mysql user 表的主键,百度说是user host 构成了主键
1:问题如下:
[[email protected] ~]# mysql -u root
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
这一段是拒绝user=root,host=localhost 的用户访问,需要数据密码
解决方案:1):设置mysql为无密码启动
(修改MySQL的登录设置:vi /etc/my.cnf (部分Linux安装了vim,其命令则改为vim /etc/my.cnf)
在[mysqld]的段中加上一句:skip-grant-tables保存并退出vi。)
2):重新启动mysqld,清空密码
重启mysql:service mysqld restart(这一步不能少,这是让my.cnf的修改生效)
进入mysql:mysql -u root
进入mysql后,切换数据库至mysql:use mysql;
清空密码:update user set authentication_string=‘‘ where user=‘root‘;
3):退出mysql:exit; 并且 屏蔽skip-grant-tables:vi /etc/my.cnf,在skip-grant-tables前面添加#
4):重启mysql.
至此 mysql8.0 可以不需要密码登录了。登录成功之后重新设置密码和刷新权限 就可以远程访问了
设置密码:
‘root‘@‘%‘ ‘root‘等于user表里的user,‘%‘ 等于user表里的host
ALTER USER ‘root‘@‘%‘ IDENTIFIED BY ‘新密码‘ PASSWORD EXPIRE NEVER;
ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘新密码‘;
让密码马上生效:FLUSH PRIVILEGES;
标记以便日后使用