服务器更换,需要把hive使用的mysql库迁移到其他服务器上.
整个过程很简单,就是数据库导出导入
1.在原服务器将数据库导出
$ mysqldump -h ip -u username -p metadata4ad > metadata4ad.sql Enter password: tty:[4] jobs:[0] cwd:[/home/ad] $ ll metadata4ad.sql -rw-rw-r-- 1 ad ad 62317790 10-27 10:10 metadata4ad.sql
2.在目标服务器上新建数据库,用户,权限设置
mysql> create database metadata4ad; Query OK, 1 row affected (0.01 sec) mysql> create user 'user'@'%' identified by 'password'; Query OK, 0 rows affected (0.02 sec) mysql> grant ALL privileges on metadata4ad.* to 'user'@'%' with grant option; Query OK, 0 rows affected (0.02 sec)
mysql> FLUSH privileges;
3.复制数据库文件到目标服务器
$scp metadata4ad.sql dst_ip:~/
4.目标服务器上,把数据库文件导入数据库
到sql存放目录,进入数据库
$mysql -uad -p mysql>use metadata4ad mysql> source metadata4ad.sql
mysql> show tables;
+---------------------------+
| Tables_in_metadata4ad |
+---------------------------+
| BUCKETING_COLS |
| CDS |
| COLUMNS_V2 |
| DATABASE_PARAMS |
| DBS |
| DELEGATION_TOKENS |
| IDXS |
| INDEX_PARAMS |
| MASTER_KEYS |
| PARTITIONS |
| PARTITION_KEYS |
| PARTITION_KEY_VALS |
| PARTITION_PARAMS |
| PART_COL_PRIVS |
| PART_COL_STATS |
| PART_PRIVS |
| SDS |
| SD_PARAMS |
| SEQUENCE_TABLE |
| SERDES |
| SERDE_PARAMS |
| SKEWED_COL_NAMES |
| SKEWED_COL_VALUE_LOC_MAP |
| SKEWED_STRING_LIST |
| SKEWED_STRING_LIST_VALUES |
| SKEWED_VALUES |
| SORT_COLS |
| TABLE_PARAMS |
| TAB_COL_STATS |
| TBLS |
| TBL_COL_PRIVS |
| TBL_PRIVS |
| VERSION |
+---------------------------+
5.如果hive中配置了权限验证,还需要在hive中给用户配置权限
比如给 hadoop 用户配置所有权限
hive> grant all to user hadoop; OK Time taken: 0.389 seconds
只配置操作某个数据的权限
hive> grant create on database dbname to user hadoop; //只给了在数据库dbname中创建表的权限 hive> grant all on database dbname to user hadoop; //在数据库dbname中有所有权限
权限:
HIVE支持以下权限:
权限名称 | 含义 |
ALL | 所有权限 |
ALTER | 允许修改元数据(modify metadata data of object)---表信息数据 |
UPDATE | 允许修改物理数据(modify physical data of object)---实际数据 |
CREATE | 允许进行Create操作 |
DROP | 允许进行DROP操作 |
INDEX | 允许建索引(目前还没有实现) |
LOCK | 当出现并发的使用允许用户进行LOCK和UNLOCK操作 |
SELECT | 允许用户进行SELECT操作 |
SHOW_DATABASE | 允许用户查看可用的数据库 |
迁移完成.