手动搭建一个帆软报表项目(3)
上文已经写到在服务器上安装了MySQL服务,此篇主要是本地客户端连接服务器上的服务端。
- 创建用户
初始化完的MySQL服务默认只有root用户只能在localhost和127.0.0.1上登陆。
//使用mysql库 use mysql; //查看所有用户的用户名、地址、密码 select user,host,password from user; //查看用户所有信息(加\G让结果按一定格式输出,用于查询结果过长) select * from user\G;
mysql.user表就是用户表,可以进行查询,修改,删除,更新操作也就是修改/添加/删除用户(也可以使用命令,下文介绍)
root默认没有密码,我这是已经设置。可以直接创建一个可以任意ip登录,可以访问任何表和拥有所有权限的root用户,然后使用客户端连接进行操作,命令我放在下面,我根据业务需求创建一个用户中心的用户只能对YHZX库进行操作。
//GRENT [权限,all privileges所有权限] ON [可以访问的库.表,*.*所有的库和表] TO ['用户名'@'可以登录的ip地址'] identified by ['密码'] grant all privileges on *.* to 'root'@'%' identified by 'root'; //刷新权限 flush privileges;
- 创建一个用户
首先我先创建一个YHZX的数据库和YHZX用户,专门存放与用户有关的表,此库只对用户名为YHZX开放//创建用户中心库 create database YHZX; //创建用户中心用户 //create user '[用户名]'@'[可以访问的ip,%:所有ip]' IDENTIFIED BY '[密码]' create user 'YHZX'@'%' IDENTIFIED BY 'Yhzx'; //修改用户信息,可以直接使用update,delect语句修改user表的信息。省去记多余的命令。 //注意修改密码的时一定要使用PASSWORD('密码')这个函数进行赋值操作,因为密码有加密。
- 对用户进行授权
//查看用户权限 show grants for 'YHZX'@'%';
显示USAGE表示没有任何权限,但是可以登录连接所有库
创建一个可以对YHZX库下的所有表进行查询,修改,增加,删除,创建表,删除表的用户权限//用户授权 //GRANT [用户权限] ON [数据库,*:全部].[表,*:全部] TO '[用户名]'@'[IP地址]' GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE ON YHZX.* TO 'YHZX'@'%'; //刷新用户权限 flush privileges;
- 开设端口
用户创建完毕,最重要的一步就是开设防火墙,因为连接MySQL需要端口号,MySQL的端口号可以在my.cnf配置(port=3306),没有配置默认为3306。我的服务器是在云上,有专门的管理平台开设端口,不需要命令。开设端口号的命令就不在这里赘述。 - 权限说明
用户都可以分配什么权限,其实就是user表的字段,在这里附一张图片说明
user表字段说明
如果授予一个用户单独某个数据库的权限,就会在db表中记录一条相关信息。
如果一个MySQL用户想和多个ip地址绑定,可以常见多个相同用户名,不同ip的用户,分别授权不同的权限,比如:
----------到此就可以用开发环境的客户端进行连接MySQL了