在给MySQL数据库进行配置时,对于mysql数据库表下的user表配置错误,导致无法通过命令登录进入MySQL数据库,查找网上的文档发现可通过安全模式进入,简单记录下。

  1. 公司某个项目采用的MySQL数据库不支持远程连接,于是个人登录后在host表进入如下修改:

    host中的错误配置

  2. 由于将host修改为了%d而正常的写法是%,从而导致在重启MySQL后无法登录

    mysql无法登录

  3. 由于user表主要用于控制用户能否远程登录以及其权限,当此表配置错误时会出现无法通过常规的mysql -uroot -pxxx的方式登录数据库修改其配置,此时只能通过安全模式进行登录。首先在终端输入service mysql stop关闭MySQL服务,接下来输入mysqld_safe --skip-grant-tables以安全模式开启MySQL服务

    mysql开启安全模式

  4. 接下来在另一个终端中输入mysql -uroot -pxxx即可正常登录,登录之后重新修改mysql数据库下的user表中的相关配置并重启MySQL服务即可。

    mysql通过安全模式登录

参考文档:

  1. https://stackoverflow.com/questions/48246503/user-table-not-having-root-user