1. 用户管理
1.1 登录MySQL服务器
启动MySQL服务后,可以通过MySQL命令来登录MySQL服务器,命令如下:
mysql –h hostname|hostIP –P port –u username –p DatabaseName –e “SQL语句”
举例:
勘误:
通过测试发现不写数据库名字,没进入MySQL数据库。
1.2 创建用户
在mysql数据库中,官方推荐使用create user语句来创建用户。mysql8移出了password加密方法,因此不再推荐使用insert语句直接操作mysql中的user表来增加用户。
使用create user语句来创建用户时必须拥有create user权限。每添加一个用户,create user语句会在mysql.user表中添加一条新的记录,但是新创建的用户没有任何的权限。如果添加的用户已经存在,create user语句会返回一个错误。
CREATE USER语句的基本语法形式如下:
CREATE USER 用户名 [IDENTIFIED BY ‘密码’][,用户名 [IDENTIFIED BY ‘密码’]];
用户名参数表示新建用户的账户,由用户(User)和主机名(Host)构成;
举例:
创建的用户被存储在MySQL数据库里面的user表中,这个表的主键是(host,user),这个主键表明哪个主机的用户可以操作此数据库。
1.3 修改用户(用的很少)
可以看到用户名已被更改,接下来我用新的用户名登录,显示登录不上。
必须使用flush privileges命令刷新一下,然后可以登录。
1.4 删除用户
方式1:使用DROP方式删除(推荐)
使用DROP USER语句来删除用户时,必须用于DROP USER权限。DROP USER语句的基本语法形式如下:
DROP USER user[,user]…;
删除已存在的用户,默认删除的是’XXX’@'%‘这个用户,如果还有其他的用户如’XXX’@‘localhost’等,不会一起被删除。如果要删除’XXX’@‘localhost’,使用drop删除时需要加上host即drop user ‘XXX’@‘localhost’。
方式2:使用DELETE方式删除,语法如下:
delete from mysql.user where user=‘XXX’ and host=‘localhost’;
其中XXX为用户名,localhost为主机名。
区别:
drop不仅会将user表中的数据删除,还会删除其他权限表的内容。而delete只删除user表中的内容,所以使用delete删除用户后需要执行FLUSH PRIVILEGES;刷新权限,否则删除无效。
1.5 设置当前用户密码
1.使用ALTER USER命令来修改当前用户密码 ,基本语法如下:
ALTER USER USER() IDENTIFIED BY ‘new_password’;
举例:
- 使用SET语句来修改当前用户密码 ,基本语法如下:
SET PASSWORD=‘new_password’;
举例:
设置的密码被加密存储在mysql.user表中。
1.6 修改其它用户密码
- 使用ALTER语句来修改普通用户的密码 ,基本语法形式如下:
ALTER USER 用户名 [IDENTIFIED BY ‘新密码’],用户名参数表示创建用户的账户,由用户(User) 和主机名(Host) 构成; - 使用SET命令来修改普通用户的密码 ,基本语法形式如下:
SET PASSWORD FOR ‘username’@‘hostname’=‘new_password’;