MySQL学习-用户管理(一)

135 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第30天,点击查看活动详情

前言

上篇我们学习完了MySQL中的数据目录。有兴趣的小伙伴可以阅读(# MySQL学习-数据目录(二))。
下面我们继续学习MySQL中的用户管理。

用户管理

MySQL的用户分为普通用户和root用户。root用户是超级管理员,拥有所有权限,包括创建用户,删除用户和修改用户的密码等权限。普通用户只拥有被授权的权限。

登录MySQL服务器

登录MySQL服务器指令如下:

mysql -h hostname|hostIP -P port -u username 
-p DatabaseName -e "SQL语句"

其中参数含义如下:

  • -h:后面加主机名或主机IP,hostname为主机名,hostIP为主机IP。
  • -P:后面加MySQL服务器的端口,通过该参数连接到指定的端口。MySQL服务的默认端口是3306,不适用该参数时自动连接到3306端口,port为连接的端口号。
  • -u:后面加用户名,username为用户名。
  • -p:提示输入密码。
  • DatabaseName:指明登录到哪一个数据库。如果没用该参数,就会直接登录到MySQL数据库中,然后可以使用USE命令来选择数据库。
  • -e:加SQL语句,登录到MySQL服务器后执行这个SQL语句,然后退出MySQL服务器。

创建用户

语法如下:

CREATE USER 用户名 [IDENTIFIED BY '密码'][, 用户名 [IDENTIFIED BY '密码']];
  • 用户名参数表示新建用户的账户,有用户和主机名构成。
  • []参数表示可选,可以指定用户登录时需要密码验证,也可以不指定密码验证,这样用户可以直接登录。不过,不指定密码的方式不安全,不推荐使用。如果指定密码值,这里需要使用IDENTIFIED BY指定明文密码值。
  • CREATE USER支持同时创建多个用户。
CREATE USER xiaozhang IDENTIFIED BY '123123';# 默认host是%

修改用户

语法如下:

UPDATE mysql.user SET USER='xiaozhang1' WHERE USER='xiaozhang';
FLUSH PRIVILEGES;

删除用户

方式一: 使用DROP方式删除,使用此方式时,必须拥有DROP USER权限。语法如下:

DROP USER user[,user]...;

举例:

DROP USER xiaozhang1;

方式二: 使用DELETE方式删除

DELETE FROM mysql.user WHERE HOST='hostname' AND User='username';
#执行完DELETE指令,需要使用FLUSH指令使用户生效
FLUSH PRIVILEGES;

注意: 不推荐使用DELETE方式删除,这种方式系统会有残留信息保留。而DROP指令会删除用户以及对应的权限,执行命令后会发现mysql.user表和mysql.db表的记录都消失了。

今天先学习到这里,明天继续。