分类 MySql 下的文章

Ubuntu 16.04下安装MySQL

简单分享Ubuntu 16.04下安装MySQL的过程。
首先执行下面三条命令:

sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev

安装成功后可以通过下面的命令测试是否安装成功:

sudo netstat -tap | grep mysql

出现如下信息证明安装成功:
blog1.png

可以通过如下命令进入MySQL服务:

mysql -uroot -p你的密码

现在设置mysql允许远程访问,首先编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf:

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

注释掉bind-address = 127.0.0.1:
blog2.png

保存退出,然后进入mysql服务,执行授权命令:

grant all on *.* to root@'%' identified by '你的密码' with grant option;
flush privileges;

然后执行quit命令退出mysql服务,执行如下命令重启mysql:

service mysql restart

现在在Mac Os下可以使用navicat远程连接Ubuntu下的MySQL服务:
WX20180611-105507@2x.png

MySQL · 8.0.0新特性 · ROLE

摘要: Role功能可以说是一个期待已有的功能,这从它的Worklog号(WL#988)就可以看出来,这是个相当早并且呼声很高的需求了。 所谓Role,可以认为是一个权限的集合,这个集合有一个统一的名字,就是Role名,你可以为多个账户赋予统一的某个Role的权限,而权限的修改可以直接通过修改Role来实

Role功能可以说是一个期待已有的功能,这从它的Worklog号(WL#988)就可以看出来,这是个相当早并且呼声很高的需求了。

所谓Role,可以认为是一个权限的集合,这个集合有一个统一的名字,就是Role名,你可以为多个账户赋予统一的某个Role的权限,而权限的修改可以直接通过修改Role来实现,而无需每个账户逐一GRANT权限,大大方便了运维和管理。

Role可以被创建,修改和删除,并作用到其所属于的账户上。

1、举个简单的例子。创建如下测试表
1.1.jpg

2、创建Role,拥有t1表的查询权限:
1.2.jpg

3、创建一个账户,并将role的权限赋给它
1.3.jpg

4、以rw_user1登录
1.4.jpg

5、然而此时并不能直接获得t1表的查询权限, 你需要手动进行选择哪些role在账户连接上来时被激活,如下:
1.5.jpg

6、修改role的权限,会直接作用到对应的账户上:
1.6.jpg

7、增加了两个系统表来维护Role信息,一个是mysql.default_roles表,用于展示账户使用的默认role信息,一个是role_edges,用于展示已创建的role信息
1.7.jpg

8、新增函数用于显示当前账户使用的role:
1.8.jpg

如何使用点击官方文档
如果你对具体怎么实现感兴趣,可以参阅commit 19ff587febb635f4518a78bdd5dffbfd9058c9aa