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 [email protected];
执行了这句语句之后,dba这个用户就拥有了对testdb(database)中的orders(table)这张表查询、插入、更新、删除这写操作的权利。
5、撤销已经赋予给 MySQL 用户权限的权限。
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:
grant all on *.* to [email protected];
// 撤销权限
revoke all on *.* from [email protected];
6、grant或者revoke之后,该用户只有重新连接MySQL数据库,权限才能生效。
如果想要授权的用户,也可以将这些权限grant给其他的用户,需要“grant option”
grant select on testdb.* to [email protected] with grant option;
这句话执行完了之后的影响是: dba这个用户拥有了对testdb中所有表结构的查询的权利
这个特性一般用不到,实际上,数据库权限一般最好由DBA来统一管理。本条语句应该是在普通用户下执行的语句。所以才会实现这样的权利。
7、 删除mysql用户xxxx的SQL语句:
在root用户下执行: DELETE FROM mysql.user WHERE user = ‘xxxx‘;
8、NoSQL数据库与关系型数据库设计理念比较:
关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。而非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。