数据库文件导入导出操作,以及赋予权限SQL语句

1、导出数据库xxxx和tlog(经过测试,没有问题)
# /data/mysql/bin/mysqldump -u root -ppassword qq9x | gzip > /home/xxxxDataBase.sql.gz
# /data/mysql/bin/mysqldump -u root -ppassword  tlog | gzip > /home/tlogDataBase.sql.gz
2、导出到本地文档
在SFTP下
#get -r /home/xxxxDataBase.sql.gz
#get -r /home/tlogDataBase.sql.gz
2、导入数据(路径是/home) 
 【直接执行上述导出的脚本,下面经过测试,没有问题,但是xxxxDataBase.sql这个脚本比较大,因此很耗费时间】
 (有些文件需要use  database; 那么就需要选定database。因此有可能在qq9x这个database下执行sql脚本)
 # /data/mysql/bin/mysql -u root -p 
--password=password  qq9x < xxxxDataBase.sql
 
 在tlog这个database下执行sql脚本
 # /data/mysql/bin/mysql -u root -p 
--password=password  tlog < tlogDataBase.sql
 
 直接导入执行sql脚本(不需要database)
 # /data/mysql/bin/mysql -u root -p 
--password=password  < xxxx_create_db.sql
 # /data/mysql/bin/mysql -u root -p 
--password=password  < tlog.sql

4、grant select, insert, update, delete on testdb.orders to dba@localhost;
       执行了这句语句之后,dba这个用户就拥有了对testdb(database)中的orders(table)这张表查询、插入、更新、删除这写操作的权利。
5、撤销已经赋予给 MySQL 用户权限的权限。
    revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:
    grant  all on *.* to   dba@localhost;
   // 撤销权限 
   revoke  all  on  *.*  from  dba@localhost;

6、grant或者revoke之后,该用户只有重新连接MySQL数据库,权限才能生效。
       如果想要授权的用户,也可以将这些权限grant给其他的用户,需要“grant option”
       grant select on testdb.* to dba@localhost with grant option;
这句话执行完了之后的影响是: dba这个用户拥有了对testdb中所有表结构的查询的权利
这个特性一般用不到,实际上,数据库权限一般最好由DBA来统一管理。本条语句应该是在普通用户下执行的语句。所以才会实现这样的权利。
7、 删除mysql用户xxxx的SQL语句:

       在root用户下执行: DELETE FROM mysql.user WHERE user = 'xxxx';

8、NoSQL数据库与关系型数据库设计理念比较:

       关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。而非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。

你可能感兴趣的:(数据库文件导入导出操作,以及赋予权限SQL语句)