作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对新的 MySQL 5.7“root”用户行为感到满意。它只允许本地主机上的 linux root 用户以 MySQL root 用户身份登录 MySQL。
我最近导入了我的旧用户表并覆盖了这个更改,现在任何人都可以使用密码在本地主机上以 root 身份登录。
如何恢复默认的 MySQL 5.7 root 用户设置?
请仔细阅读问题,因为很多此功能已从 5.5 更改为 5.7,并且很容易向后回答这个问题。
最佳答案
问题:
如果您通过导入旧的 MySQL 5.5
数据库覆盖 5.7 更改,则需要在 root
用户上手动安装和启用 auth_socket
模块和用户表。
解决方案:
对于用户,我们仍希望使用默认的 mysql_native_password
。对于 root
,我们要使用 auth_socket
。
install plugin auth_socket soname 'auth_socket.so';
use mysql; update user set plugin='mysql_native_password';
update mysql.user set plugin = 'auth_socket' where User='root';
flush privileges;
如果你以错误的顺序执行(在安装插件之前添加root
的auth_socket
列),那么你将无法加载mysql,因为插件赢了' 执行身份验证。要在安全模式下启动和运行 mysql,请使用:
sudo service mysql stop
sudo mysqld_safe --skip-grant-table &
sudo mysql -u root -p -h localhost
这些修复是在将完整的数据库和用户表从 MySQL 5.5
导入到 MySQL 5.7
,从 Ubuntu 14.04
迁移到 Ubuntu 16.04
。
工具:
查看插件:show plugins\g
在 root 用户上显示 auth_socket:select auth_socket from mysql.user where user='root';
关于mysql - 如何重置 MySQL 5.7 上的默认 'root' 用户行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39968082/
我是一名优秀的程序员,十分优秀!