当我使用代码mysqld_safe——skip-grant-tables &但我得到错误:
mysqld_safe UNIX套接字文件目录“/var/run/mysqld”不存在。
$ systemctl stop mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &
我解决了:
$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld
现在我使用相同的代码mysqld_safe——skip-grant-tables &和get
mysqld_safe从/var/lib/mysql启动mysqld守护进程
如果我使用$ mysql -u根我将得到:
服务器版本:5.7.18-0ubuntu0.16.04.1 (Ubuntu)
版权所有(c) 2000,2017, Oracle和/或其关联公司。版权所有。
Oracle是Oracle公司和/或其公司的注册商标
子公司。其他名称可能是其各自的商标
的主人。
输入'help;'或'\h'以获得帮助。输入'\c'清除当前输入语句。
mysql >
现在是时候改密码了:
mysql> use mysql
mysql> describe user;
读取表信息以完成表和列名
您可以关闭此功能以使用-A更快地启动
数据库修改
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');
或者如果你有一个mysql根帐户,可以从任何地方连接,你还应该做:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
替代方法:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = 'localhost' AND User = 'root';
如果你有一个根帐户,可以从任何地方访问:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = '%' AND User = 'root';`enter code here
现在需要退出mysql和停止/启动
FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
现在再次使用' mysql -u root -p'并使用新密码获取
mysql >