数据库的开发学习过程中,MySql的学习应用是一个绕不过去的坎。很多初学者或者开发人员,经常会遇到创建用户、修改密码或者密码遗失的问题,下面内容就详细解读。
初学MySql的小伙伴或者对此不够熟练的,请收藏备查。
以下内容于2023年8月用Ubuntu22.04.1、MySql8.0环境下调试通过,参考本文时请注意自己的软件环境。
sudo mysqladmin version
如果正常响应,说明没有密码(初始登录密码为空),如果报错,说明有密码。
输入指令后回车,
sudo mysql -u root -p
提示输入密码,此时直接回车,进入系统。
update mysql.user set authentication_string='123456' where user='root';
(此处应注意 引号一定要用英文半角)
退出系统并用新密码123456登陆
将密码123456修改为其他密码参照上面的流程执行。
在/etc/mysql/文件夹下,有一个debian.cnf文件,这个文件中保存有MySql的一直超级帐户和超级密码,.其主要内容如下图:
sudo cat /etc/mysql/debian.cnf
里面有一个debian-sys-maint用户,这个用户只有Debian或Ubuntu服务器才有,所以如果您的服务器是Debain或Ubuntu,debian-sys-maint是个Mysql安装之后自带的用户,具体作用是重启及运行mysql服务。所以如果忘了root密码,可以通过这个用户来重设密码。
sudo mysql -u debian-sys-maint -p
然后输入文件中的password值,即可进入mysql。
> use mysql;
>show fields from user; 或者(describe user;)
authentication_string这列就是密码(注:以前的版本这个字段是password,如果是password下面的操作将authentication_string替换成password即可)
5.接下来修改root的密码为空(重复安装完系统初次登陆时的步骤)
UPDATE mysql.user SET authentication_string='' WHERE user='root';
update mysql.user set authentication_string='123456' where user='root';
mysql> exit
service mysql restart
重要说明:用户的添加、修改、删除、等操作都是在root权限下完成的,当您进行用户操作时不能完成时,请及时检查您的目前的用户权限。
检查当前用户指令:
select current_user();
或select user();
输出状态
sudo mysql -u root -p
create user 'test' @'localhost' identified by 'test01';
select user,host from mysql.user;
drop user 'test'@'localhost';
再次查看所有用户,已经没有了test帐户
欢迎有疑问的小伙伴交流互动。