目录
本期我们将学习MySQL用户管理相关的内容。
查看用户信息
登录 mysqld 的所有的用户的信息全部是存储在 mysqld 的 mysql 数据库中的 user 表中。
user表中有三个重要的字段。
- user:用户的名称。
- host:用户以何种方式登录。localhost表示本机登录,%表示可以以任何方式登录,如本机登录和远程登录。
- authentication_string:表示用户的密码经过加密后的字符串。
- *_priv:为用户的各种权限。
创建用户
创建用户sql语句如下。
create user '用户名'@'登陆主机/ip' identified by '密码';
登录新用户,并查看登录的用户名。
给用户赋权
创建的用户登录之后,查看mysqld中的数据库。
我们发现此时,yjd这个用户只能看到一个数据库,这是为什么呢?
这是因为当前用户还不具备查看其它数据库以及操作其它数据库中表的所有权限。
所以我们就要给新创建的用户赋权,使用一下sql语句进行赋权。
grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' ;
但是要注意,新用户的权限只能由root用户进行赋予。
使用root用户,给yjd用户赋予所有数据库下所有数据库表的所有权限。
如果权限赋予之后,新用户还没有对应权限,可以执行下述sql语句。
flush privileges;
如果执行该语句之后,新用户还是没有对应的权限,则重启新用户的mysql客户端即可,一般情况下,都是要重启新用户的客户端的。
回收权限
权限的回收也只有root用户可以进行回收,回收权限的sql语句如下。
revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';
回收yjd的对所有数据库的所有数据库表的所有权限。
用户yjd登录mysql客户端,查看数据库。
如上图,已经成功的收回了yjd对所有数据库的所有权限。
修改用户的密码
用户的密码只有root用户和用户自身可以进行修改。
root修改用户密码的sql语句如下。
set password for '用户名'@'主机名'=password('新的密码');
root修改用户yjd密码。
用户自己修改密码的sql语句如下。
set password=password('新的密码');
用户yjd修改自己密码。
删除用户
用户的删除只有root用户可以进行删除,删除用户的sql语句如下。
drop user '用户名'@'主机名';
删除用户yjd。
使用图形化界面连接数据库
市面上连接数据库的图形化界面有很多,我们以MySQL Workbench演示,因为它是mysql官方的免费的mysql图形化客户端,我们之前在linux中使用的是mysql的命令行客户端。
安装 MySQL Workbench
点击download即可。
之后运行,MySQL Workbench的安装可执行程序,运行之后,一路傻瓜式安装即可。
安装好客户端程序之后,运行打开。
点击+号,进行远程登录的配置界面。
注意:因为是远程连接,所以要使用TCP/IP协议规格。HostName为连接的mysql服务所在的服务器的公网ip。Port端口号默认是3306,但是建议在服务器中的 /ect/my.cnf文件中进行端口的修改,增加安全性,同时,不管端口号修没有修改,mysqld的端口必须对外开放,3306端口默认是不开放的,所以需要在购买的服务器的服务器安全组中进行端口的开放。username为用户的姓名,同时需要注意在创建用户时要允许该用户远程登录,即 '登录主机' 字段设置为 '%'。
点击OK,之后显示以下界面则远程登录成功。
以上便是本期的所有内容。
本期内容到此结束^_^ 。