MySQL学习笔记05MySQL集群的分布式权限

在使用了多个SQL节点之后,默认情况下,在一个节点中增加的用户,在其它节点上并不是可见的。MySQL 集群提供了让用户和权限在整个集群中有效的途径。

(1)执行MySQL集群提供的SQL脚本。

MySQL集群在安装目录提供了ndb_dist_priv.sql这个脚本,用于为集群提供分布式权限。

在某一个SQL节点61的MySQL服务中执行这个脚本,这个脚本将用户与权限相关的数据表比如user表等的存储引擎从MyISAM修改为NDBCluster。

mysql -uroot -p < /usr/share/mysql/ndb_dist_priv.sql

执行完毕后,可以看到以下跟分布式权限有关的存储过程和函数:

mysql> select routine_name,routine_schema,routine_type from information_schema.routines where routine_name like ‘mysql_cluster%‘ order by routine_type asc;

+---------------------------------------------+----------------+--------------+

| routine_name                                | routine_schema | routine_type |

+---------------------------------------------+----------------+--------------+

| mysql_cluster_privileges_are_distributed    | mysql          | FUNCTION     |

| mysql_cluster_backup_privileges             | mysql          | PROCEDURE    |

| mysql_cluster_move_grant_tables             | mysql          | PROCEDURE    |

| mysql_cluster_move_privileges               | mysql          | PROCEDURE    |

| mysql_cluster_restore_local_privileges      | mysql          | PROCEDURE    |

| mysql_cluster_restore_privileges            | mysql          | PROCEDURE    |

| mysql_cluster_restore_privileges_from_local | mysql          | PROCEDURE    |

+---------------------------------------------+----------------+--------------+

7 rows in set (0.08 sec)

执行以下函数查询是否已经部署了分布式权限。在刚刚执行上述脚本后,结果是FALSE。

mysql> select mysql_cluster_privileges_are_distributed();

+--------------------------------------------+

| mysql_cluster_privileges_are_distributed() |

+--------------------------------------------+

|                                          0 |

+--------------------------------------------+

1 row in set (0.00 sec)

(2)执行有关存储过程。

需要执行MySQL Cluster提供的以下存储过程,才能实现分布式权限。

mysql> call mysql_cluster_move_privileges();

Query OK, 0 rows affected (4.23 sec)

再次查询是否部署了分布式权限,结果为TRUE。

mysql> select mysql_cluster_privileges_are_distributed();

+--------------------------------------------+

| mysql_cluster_privileges_are_distributed() |

+--------------------------------------------+

|                                          1 |

+--------------------------------------------+

1 row in set (0.00 sec)

(3)重新启动其它SQL节点的MySQL服务。

在重新启动之后,就可以看到在节点61上的MySQL服务中的user表的存储引擎已经修改为NDBCluster了。同时可以看到user表中已经有了节点61中的test用户了,而且可以使用该用户进行登录。由于用户与权限相关的数据表的存储引擎为NDBCluster,在之后对用户与权限进行的修改,将在整个集群中有效。

至此,MySQL的分布式权限已经部署完毕了。

时间: 2024-10-16 03:01:57

MySQL学习笔记05MySQL集群的分布式权限的相关文章

MySQL学习笔记03MySQL集群的安装部署

1.1.1. 准备安装包 从MySQL官网下载以下安装包: mysql-cluster_7.5.7-1ubuntu14.04_amd64.deb-bundle.tar 解压后得到以下deb安装包文件: mysql-client_7.5.7-1ubuntu14.04_amd64.deb                               mysql-cluster-community-nodejs_7.5.7-1ubuntu14.04_amd64.deb mysql-cluster-com

MySQL学习笔记02MySQL集群相关概念

1.1.1. MySQL集群基本框架 本文所介绍的MySQL集群指基于NDBCluster的MySQL 集群. 一个MySQL集群包含一个或多个Management Node.Data Node和SQL Node. 管理节点Management Node:用于对集群本身的管理,运行ndb_mgmd服务.应当首先启动管理节点,再启动其它节点. 数据节点Data Node:用于存储集群的数据,运行ndbmtd或ndbd服务.数据节点支持复制. SQL节点SQL Node:用于对外提供SQL查询服务,

Elasticsearch 学习笔记2 集群和数据

集群术语 - 节点: 一个elasticsearch实例(一个elasticsearch进程)就是一个节点 - 集群: 由一个或者多个elasticsearch节点组成 - 主节点: 临时管理集群级别变更:新建/删除索引,新建/移除节点,不参与文档级别变更或者搜索,当数据量增长时,不会成为集群瓶颈,集群只有一个主节点,通过各个节点选举产生 - 分片(shard):是最小级别工作单元,它只是保存了索引中所有数据的一部分 - 主分片:每个文档属于一个单独主分片,主分片数量可以在创建索引时指定,默认个

Dubbo -- 系统学习 笔记 -- 示例 -- 集群容错

Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 集群容错 在集群调用失败时,Dubbo提供了多种容错方案,缺省为failover重试. 各节点关系: 这里的Invoker是Provider的一个可调用Service的抽象,Invoker封装了Provider地址及Service接口信息. Directory代表多个Invoker,可以把它看成List<Invoker>,但与List不同的是,它的值可能是动态变化的,比如注册中

spark学习笔记-spark集群搭建(7)

安装spark包 1 1.将spark-1.3.0-bin-hadoop2.4.tgz使用WinSCP上传到/usr/local目录下. 2 2.解压缩spark包:tar zxvf spark-1.3.0-bin-hadoop2.4.tgz. 3 3.更改spark目录名:mv spark-1.3.0-bin-hadoop2.4 spark 4 4.设置spark环境变量 5 vi .bashrc 6 export SPARK_HOME=/usr/local/spark 7 export PA

ElasticSearch学习笔记-02集群相关操作_cat参数

_cat参数允许你查看集群的一些相关信息,如集群是否健康,有哪些节点,以及索引的情况等的. 检测集群是否健康 curl localhost:9200/_cat/health?v 说明: curl 是一个利用URL语法在命令行下工作的文件传输工具 9200 访问集群的端口号,可以修改.通过配置文件更改,一般不建议更改 _cat 前缀 _ 是URL参数的一个习惯 ?v 通过?v会显示每一列的含义 下面的返回的响应信息: epoch      timestamp cluster       statu

MongoDB学习笔记~Mongo集群和副本集

一些概念 对于Mongo在数据容灾上,推荐的模式是使用副本集模式,它有一个对外的主服务器Primary,还有N个副本服务器Secondary(N>=1,当N=1时,需要有一台仲裁服务器Arbiter,当N>1时不需要Arbiter),它们之前是通过内部机制实现同步的,并且当Primary挂了后,它会通过内部的心跳机制,选举别一台Secondary成为一个Primary,与外界(Route)进行通讯. 工业标准 在标准上,我们的副本集推荐使用奇数个服务器(3,5,7,9),但经过我的测试,只要大

Redis学习笔记7--Redis集群搭建

在安装redis集群之前,要先安装一些环境 (1)安装zlib 确保系统安装zlib,否则gem install会报(no such file to load -- zlib) zlib-1.2.6.tar ./configure make make install (2)安装ruby ruby 使用本地yum安装也能使用(推荐) 编译安装: 这里不能使用make & make install ruby1.9.2 ./configure -prefix=/usr/local/ruby make

学习笔记,集群与存储

Linux存储与集群 集群LB负载均衡集群:LVS和HapoxyHA高可用集群:   keepalived  RHSS(RHEL6 iptables) 共享存储空间:Iscsi/NFS分布式存储fastDFS***************************************************************************************************什么是集群?集群分类高性能计算机集群(HPC)负载均衡集群(LB)高可用集群(HA)集群的目的