1.1 登录MySQL服务器
启动MySQL服务后,可以通过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 服务器。
举例:
mysql -uroot -p -hlocalhost -P3306 mysql -e "select host,user from user"
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) 构成;
“[ ]”表示可选,也就是说,可以指定用户登录时需要密码验证,也可以不指定密码验证,这样用户
可以直接登录。不过,不指定密码的方式不安全,不推荐使用。如果指定密码值,这里需要使用
IDENTIFIED BY指定明文密码值。
CREATE USER语句可以同时创建多个用户。
举例:
CREATE USER zhang3 IDENTIFIED BY '123123'; # 默认host是 %
CREATE USER 'xiashuai'@'localhost' IDENTIFIED BY '123456';
登录数据库插叙mysql.user下的用户如下
添加一个zhang3用户会看到多了一个用户且host字段位%
1.3 修改用户
UPDATE mysql.user SET USER='zhangsan' WHERE USER='zhangs';
FLUSH PRIVILEGES;
1.4 删除用户
方式1:使用DROP方式删除(推荐)
使用DROP USER语句来删除用户时,必须用于DROP USER权限。DROP USER语句的基本语法形式如下:
DROP USER user[,user]…;
举例:
DROP USER li4 ; # 默认删除host为%的用户
DROP USER 'kangshifu'@'localhost';
方式2:使用DELETE方式删除
DELETE FROM mysql.user WHERE Host=’hostname’ AND User=’username’;
执行完DELETE命令后要使用FLUSH命令来使用户生效,命令如下:
FLUSH PRIVILEGES;
注意:不推荐通过 DELETE FROM USER u WHERE USER='xx' 进行删除,系统会有残留信息保
留。而drop user命令会删除用户以及对应的权限,执行命令后你会发现mysql.user表和mysql.db表
的相应记录都消失了。