赋予权限
grant select,insert,create,drop,index,alter on test.* to 'test_user'@'127.0.0.1' identified by '123456';
grant:创建用户及赋权操作
select,insert,create,drop:赋予查询、写入、建表及删表的权限
on test.*:只对test这个database有这些权限
to ‘test_user’@‘127.0.0.1’:用户名为test_user,host为127.0.0.1,即只能在本机使用,如果MySQL服务端跟客户端不在同一台机器上,则127.0.0.1替换成客户端ip地址
identified by ‘123456’:用户密码为123456
导出一条包含多行数据的SQL(优选)
mysqldump -uroot_user -p'root' -h127.0.0.1 --set-gtid-purged=off --single-transaction --skip-add-locks test t1 >/home/test.sql
set-gtid-purged=off:不添加SET @@GLOBAL.GTID_PURGED
–single-transaction:设置事务的隔离级别为可重复读,即REPEATABLE READ,这样能保证在一个事务中所有相同的查询读取到同样的数据
–skip-add-locks:取消每个表导出之前加lock tables操作。
导出一条包含多行数据的SQL
mysqldump -uroot_user -p'root' -h127.0.0.1 --set-gtid-purged=off --single-transaction --skip-add-locks –skip-extended-insert test t1 >/home/test.sql
–skip-extended-insert:一条SQL一行数据的形式导出数据
导入时关闭自动提交
Autocommit 开启时会为每个插入执行提交。可以在InnoDB导入数据时,关闭自动提交
SET autocommit=0;
INSERT INTO `t1` VALUES (123);
......
COMMIT;
在导出的插入SQL语句中加入关闭自动提交的语句
参数调整
innodb_flush_log_at_trx_commit
控制重做日志刷新到磁盘的策略,有0 、1和2三种值。
0:master线程每秒把redo log buffer写到操作系统缓存,再刷到磁盘;
1:每次提交事务都将redo log buffer写到操作系统缓存,再刷到磁盘;
2:每次事务提交都将redo log buffer写到操作系统缓存,由操作系统来管理刷盘。
sync_binlog
控制binlog的刷盘时机,可配置0、1或者大于1的数字。
0:二进制日志从不同步到磁盘,依赖OS刷盘机制;
1:二进制日志每次提交都会刷盘;
n(n>1) : 每n次提交落盘一次。
当都设置为0时,导入数据最快
网友评论