当我尝试登录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
答案 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