Luk*_*oll 1 linux mysql daemon password-recovery
我已经安装mysql-server在 Linux 机器上,但忘记了(哎呀)root 密码。上网查了一下,一般的方法是这样的:
sudo service mysql stop)sudo mysqld_safe --skip-grant-tables)mysql -u root)我的问题在 2 号。当我运行命令时,它说一些关于日志记录和启动守护程序的内容,然后以行结束
mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Run Code Online (Sandbox Code Playgroud)
并使用sudo service mysql status确认 MySQL 确实停止了。
为什么会突然停止?而且(更重要的是)我怎样才能让它继续运行以便我可以重置我的密码?
提前致谢
编辑这里是“关于登录和启动守护进程的东西”的完整日志:
$ mysqld_safe --skip-grant-tables
141219 16:55:20 mysqld_safe Logging to syslog.
141219 16:55:20 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141219 16:55:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
$
Run Code Online (Sandbox Code Playgroud)
编辑 2和 /var/log/syslog 的输出(我已经用 替换了我的主机名<hostname>)
Dec 20 10:20:09 <hostname> mysqld_safe: Starting mysqld daemon with databases from /var/lib/mysql
Dec 20 10:20:09 <hostname> mysqld: 141220 10:20:09 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
Dec 20 10:20:09 <hostname> mysqld: 141220 10:20:09 [Warning] Can't create test file /var/lib/mysql/<hostname>.lower-test
Dec 20 10:20:09 <hostname> mysqld: 141220 10:20:09 [Warning] Can't create test file /var/lib/mysql/<hostname>.lower-test
Dec 20 10:20:09 <hostname> mysqld: #007/usr/sbin/mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13)
Dec 20 10:20:09 <hostname> mysqld: 141220 10:20:09 [ERROR] Aborting
Dec 20 10:20:09 <hostname> mysqld:
Dec 20 10:20:09 <hostname> mysqld: 141220 10:20:09 [Note] /usr/sbin/mysqld: Shutdown complete
Dec 20 10:20:09 <hostname> mysqld:
Dec 20 10:20:09 <hostname> mysqld_safe: mysqld from pid file /var/run/mysqld/mysqld.pid ended
Run Code Online (Sandbox Code Playgroud)
小智 5
这个问题可能是由几个问题引起的。您可以从"tail /var/log/mysql/error.log" 中找到确切的错误。我已为此类问题添加了默认修复程序。如果以下内容不起作用,请更新我们从日志中打印的内容,我们可以尝试获取一些信息并进一步移动
使用以下命令杀死所有 MySQL 进程。
ps aux | grep mysql kill pid
Run Code Online (Sandbox Code Playgroud)
使用“ which mysqld_safe ”命令查找mysqld守护进程的路径
从 mysqld_safe 位置启动 MySQL 而不授予表
/mysqld_safe_available_directory/mysqld_safe --skip-grant-tables &
Run Code Online (Sandbox Code Playgroud)
前 /bin/mysqld_safe
mysql -u root
Run Code Online (Sandbox Code Playgroud)
设置新密码的步骤:
use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit
Run Code Online (Sandbox Code Playgroud)