重置根密码的麻烦:Unix和类似Unix的系统

时间:2018-08-01 20:47:16

标签: mysql

当我尝试登录mysql根用户时出现错误1045。我正在尝试按照说明在mysql网站https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html上重设密码,但是遇到了麻烦。

第一步是-1.以运行MySQL服务器的Unix用户(例如mysql)登录到系统。

我刚刚将管理员帐户登录到我的计算机上,为此我一直使用mysql。然后我运行命令'mysql service stop;'

第二步2-如果MySQL服务器正在运行,则将其置于顶部。找到包含服务器的进程ID的.pid文件。该文件的确切位置和名称取决于您的分发,主机名和配置。常见位置是/ var / lib / mysql /,/ var / run / mysqld /和/ usr / local / mysql / data /。通常,文件名的扩展名为.pid,以mysqld或系统的主机名开头。

我没有/ var / run / mysqld和/ usr / local / mysql / data的目录路径,但是/ var / lib / mysql显示了

cd var/lib/mysql
root@Roedelius:/var/lib/mysql# ls
auto.cnf         ibdata1      mysql               performance_schema
debian-5.7.flag  ib_logfile0  mysql_upgrade_info  posts
ib_buffer_pool   ib_logfile1  mytodo              sys

我这里没有.pid文件,所以我不知道如何继续进行下一步。我将不胜感激。

停止我的mysql服务并执行此操作

orpheus@Roedelius:~$ mysqld --skip-grant-tables

显示此

mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13 - Permission denied)
2018-08-01T22:03:56.332143Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-08-01T22:03:56.332216Z 0 [Warning] Can't create test file /var/lib/mysql/Roedelius.lower-test
2018-08-01T22:03:56.332241Z 0 [Note] mysqld (mysqld 5.7.23-0ubuntu0.18.04.1) starting as process 9399 ...
2018-08-01T22:03:56.334186Z 0 [Warning] Can't create test file /var/lib/mysql/Roedelius.lower-test
2018-08-01T22:03:56.334201Z 0 [Warning] Can't create test file /var/lib/mysql/Roedelius.lower-test
2018-08-01T22:03:56.334463Z 0 [Warning] One can only use the --user switch if running as root

2018-08-01T22:03:56.334491Z 0 [ERROR] failed to set datadir to /var/lib/mysql/
2018-08-01T22:03:56.334502Z 0 [ERROR] Aborting

2018-08-01T22:03:56.334514Z 0 [Note] Binlog end
2018-08-01T22:03:56.334551Z 0 [Note] mysqld: Shutdown complete

1 个答案:

答案 0 :(得分:1)

您链接到天数以查找插件定义的问题:

SELECT User, Host, plugin FROM mysql.user;

如果root用户使用auth_socket,则无论密码如何,只有以root用户身份运行的进程才能以root用户身份连接。

它还表示如果要对root用户使用密码身份验证,则应使用以下命令:

UPDATE mysql.user SET plugin='mysql_native_password' WHERE User='root';

修改:
要使用--skip-grant-tables,请停止您的mysql服务器,然后使用手动启动

mysqld --skip-grant-tables