Mysql版本 - mysql Ver 14.14 Distrib 5.7.18,适用于Linux(x86_64),使用EditLine包装器。
我忘记了密码并在线尝试了很多命令。问题是授权表命令在我的终端中无法正常工作。
~$ cat /etc/issue
Ubuntu 16.04.3 LTS \n \l
~$ aptitude show mysql-server |grep Version
Version: 5.7.20-0ubuntu0.16.04.1
在文件中:/etc/mysql/debian.cnf是两个重要的行:
user = debian-sys-maint
password = <unique password>
使用该用户和密码登录mysql:以debian-sys-maint登录后,您可以:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
1)停止数据库服务器。 sudo systemctl stop mysql
2)在没有权限检查的情况下重新启动数据库服务器。对于以下命令sudo mysqld_safe --skip-grant-tables --skip-networking &
3)以root用户mysql -u root
连接到数据库
4)更改Root密码
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
5)以相反方式重新启动数据库服务器
sudo kill `cat /var/run/mysqld/mysqld.pid`
sudo systemctl start mysql
现在使用数据库中的新密码登录:mysql -u root -p
或者您可以点击以下链接:
https://www.digitalocean.com/community/tutorials/how-to-reset-your-mysql-or-mariadb-root-password
以下调整适用于我的设置:
$ sudo mkdir /var/run/mysqld
$ sudo chown mysql: /var/run/mysqld
$ sudo kill -9 $(sudo cat /var/run/mysqld/mysqld.pid)