忘记了mysql密码,当我输入mysql -u root -p时,系统会要求你输入密码,没有密码就回车,结果出现了错误: ERROR 1698 (28000): Access denied for user 'root'@'localhost'
方法一(使用高权限进入):
参考https://blog.csdn.net/weixin_41115274/article/details/78974472,文章里说由于使用sudo apt-get install mysql-server安装数据库,在安装过程中没有设置密码,可以使用sudo mysql -u root -p 连接数据库(没有试过)
方法二(修改密码):
https://www.cnblogs.com/leolztang/p/5094930.html
1、停止mysql服务:sudo service mysql stop
2、以安全模式启动mysql sudo mysqld_safe --skip-grant-tables &
这时我的会报错,当我弄好之后发现忘了截图。错误里有一句是
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists
解决方法:https://stackoverflow.com/questions/42153059/mysqld-safe-directory-var-run-mysqld-for-unix-socket-file-dont-exists
mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld(如果没有sudo会报权限不够的错误)
设置完之后输入:sudo mysqld_safe --skip-grant-tables &(如果没有sudo会报权限不够的错误)
3、mysql -u root
进入到mysql
4、select user,plugin from mysql.user;
5、update mysql.useexr set authentication_string=PASSWORD('root'),plugin='mysql_native_password' where user='root';
6、flush peicilwfwa;
7、exit;
8、sudo service mysql stop
9、sudo service mysql start
(这一步我没有做,不知道为什么可以直接启动mysql)
10、mysql -u root -p
完成
如何修改密码
在phpMyAdmin里修改密码:
到mysql数据库的user表,执行语句:update user set authentication_string=PASSWORD(‘root’) where user=‘root’
重启数据库即可