最完整的MySQL、MariaDB创建用户,设置密码、设置各种权限语法演示,超简单

在经历太多垃圾教程(排版混乱、毫无价值)之后,我最终还是决定写下这篇文章
在这里插入图片描述
在这里插入图片描述
下面开始:

1、创建用户

语法如下:

create user <用户名>;

例如创建用户:test

create user test;

在这里插入图片描述

2、设置密码

创建了用户,当然需要设置密码了,这里列出两个语法

2.1、ALTER语法

第一个语法如下:

ALTER USER <用户名> IDENTIFIED BY '<密码>';

例如设置用户:test的密码为111111,那么命令就是:

ALTER USER test IDENTIFIED BY '111111';

实现效果:
在这里插入图片描述
然后尝试登录:

mysql -utest -p111111

在这里插入图片描述
此时,设置成功啦,然后还有下面这个方法:

2.2、GRANT

这个命令主要是用于授权的,不过也能实现密码的设置,语法如下:

grant <权限> on <数据库>.<数据表/字段> to '<用户名>'@'<主机>' identified by '<密码>';

然后我们新建用户:test1,然后设置密码:123456,设置这个用户对数据库:test拥有所有权限:all privileges,该用户只能本地登录:localhost,当然,在执行命令之前,我们先看下当前数据库有没有test数据库

show databases;

在这里插入图片描述
此时,数据库是存在的,那么就可以开始了
命令如下:

create user test1;
grant all privileges on test.* to 'test1'@'localhost' identified by '123456';

效果如下:
在这里插入图片描述
然后使用这个用户进行登录验证:

mysql -utest1 -p123456

登录之后查询数据库

show databases;

实现效果:

在这里插入图片描述

3、更新<修改>密码

我们在设置了密码之后,也可能需要修改这个密码,那么这时候也有两个语法,分别是:

  • set
  • grant

3.1、首先来看set

SET PASSWORD FOR '<用户名>'@'<登录主机>' = PASSWORD('<新密码>');

例如现在需要修改test用户的密码为:zgj123456,然后登录主机是所有:%,那么命令就是:

SET PASSWORD FOR 'test'@'%' = PASSWORD('zgj123456');

在这里插入图片描述
然后来看第二个方法:grant

3.2、使用grant修改密码

这个方法与设置密码的语法是一致的,所以就直接演示了

使用-e参数可以直接执行SQL语句而无需登录到控制台

mysql -utest -pzgj123456 -e "show databases;"
mysql -uroot -p1 -e "grant all privileges on *.* to 'test'@'%' identified by '123456789';"
mysql -utest -pzgj123456 -e "show databases;"
mysql -utest -p123456789 -e "show databases;"

在这里插入图片描述
然后到设置各种权限,内容就放在另一篇吧,不然太长了:

待更新