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