问题出现的场景
在安装MySql的过程中,由于版本的问题,在安装的过程中并未让设置密码,所以就需要我们去自己设置密码
可能存在两种情况:
1.root 无密码登录,也就是输入什么密码都可以
2.输入什么密码都错误
运行下面代码,如果成功进入了数据库,就说明是第一种情况:无密码登录,如果报错,就是第二种情况
bash
mysql -u root
解决办法
情况一
直接重新设置新密码就可以
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
然后重启数据库
bash
systemctl restart mysql
情况二
从debian.cnf中找到安装时生成的用户名和密码
bash
cat /etc/mysql/debian.cnf
user
和password
就是安装时生成的用户名和密码,其中密码是随机生成的
然后,用这个user
和password
登录mysql
bash
mysql -u debian-sys-maint -p
下面就是进行修改密码的操作
首先,使用叫做mysql的数据库
sql
use mysql
然后修改密码,老版本的mysql可以使用下面的指令:
sql
update mysql.user set authentication_string=password("你的密码") where user="root" and Host ="localhost";
而较新版本的 MySQL 中,password() 函数已经被移除了。从 MySQL 5.7.6 开始,password() 函数不再被支持,对于 MySQL 5.7.6 及以上版本,应该使用以下命令来修改 root 密码:
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
接下来修改plugin字段内容为mysql_native_password
sql
update user set plugin="mysql_native_password";
重新加载权限表
sql
flush privileges;
最后退出,并重启数据库,就可以修改密码就完成了
bash
systemctl restart mysql