全新安装的mysql的默认设置为rootusing password: NO。但是,尽管mysqladmin ping会失败,但是在我的系统上您可以成功运行mysqladmin ping -u root。这告诉我mysqladmin正在从某个地方读取用户/密码。

我正在尝试在另一个系统上重新创建它。我知道用户名和密码,并且可以在新服务器上成功执行mysqladmin ping -u myuser -p 'mypass',但是我需要对其进行设置,以便单独使用mysqladmin ping即可工作,而无需显式传递myusermypass

编辑:

这是一些输出,展示了新旧系统之间的差异(最后一行是唯一的差异):

旧服务器

$ mysqladmin ping -u root
/junk/mysqladmin.orig: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

$ mysqladmin ping -u myuser
mysqld is alive

$ mysqladmin ping
/junk/mysqladmin.orig: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'


新服务器

$ mysqladmin ping -u root
/junk/mysqladmin.orig: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

$ mysqladmin ping -u myuser
mysqld is alive

$ mysqladmin ping
mysqld is alive

最佳答案

MySQL 5.7及更高版本将root保存在MySQL日志文件中。

请尝试以下方法:

sudo grep'临时密码'/var/log/mysqld.log

You can follow the below link to set/reset MYSQL passwords

10-07 23:14