mysql导数据及注意事项

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 导出表testmysql> use db1;Database changedmysql> select count(*) from test;+----------+| count(*) |+----------+| 5 |+----------+1 row in set (0.

导出表test

mysql> use db1;
Database changed
mysql> select count(*) from test;
+----------+
| count(*) |
+----------+
|        5 |
+----------+
1 row in set (0.01 sec)

使用mysqldump导出

加--single-transaction参数
[root@miles21 ~]# mysqldump -uroot -pbeijing --socket=/data/mysql.sock --single-transaction db1 test > /home/mysql/table_db1_test.sql
查看对应的general日志
151207 11:38:53     8 Connect   root@localhost on 
                    8 Query     /*!40100 SET @@SQL_MODE='' */
                    8 Query     /*!40103 SET TIME_ZONE='+00:00' */
                    8 Query     SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ #设置隔离级别为可重复读
                    8 Query     START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */  #开启新事务
                    8 Query     SHOW VARIABLES LIKE 'gtid\_mode'
                    8 Query     UNLOCK TABLES
...

不加--single-transaction参数
[root@miles21 ~]# mysqldump -uroot -pbeijing --socket=/data/mysql.sock  db1 test > /home/mysql/table_db1_test.sql
查看对应的general日志,可以看到LOCK TABLES的锁表操作。
...
                    9 Query     SHOW VARIABLES LIKE 'ndbinfo\_version'
                    9 Init DB   db1
                    9 Query     SHOW TABLES LIKE 'test'
                    9 Query     LOCK TABLES `test` READ /*!32311 LOCAL */  #锁表
...
而且使用--single-transaction参数对导出的用户的权限要求更低
mysql> grant select on *.* to test@'localhost' identified by 'beijing';
Query OK, 0 rows affected (0.01 sec)

加--single-transaction参数,mysqldump正常导出
[root@miles21 ~]# mysqldump -utest -pbeijing --socket=/data/mysql.sock  db1 test > /home/mysql/table_db1_test.sql

不加--single-transaction参数,mysqldump会报错
[root@miles21 ~]# mysqldump -utest -pbeijing --socket=/data/mysql.sock  db1 test > /home/mysql/table_db1_test.sql
mysqldump: Got error: 1044: Access denied for user 'test'@'localhost' to database 'db1' when doing LOCK TABLES

导出csv文件

需要file权限

[root@miles21 mysql]# mysqldump -utest -pbeijing --socket=/data/mysql.sock --single-transaction --fields-terminated-by=,  db1 test -T  /home/mysql
mysqldump: Got error: 1045: Access denied for user 'test'@'localhost' (using password: YES) when executing 'SELECT INTO OUTFILE'

mysql> grant file on *.* to test@'localhost';
Query OK, 0 rows affected (0.00 sec)

[root@miles21 mysql]# mysqldump -utest -pbeijing --socket=/data/mysql.sock --single-transaction --fields-terminated-by=,  db1 test -T  /home/mysql
[root@miles21 mysql]# ll
...
-rw-r--r--. 1 root  root  1335 Dec  7 16:32 test.sql #表定义文件
-rw-rw-rw-. 1 mysql mysql   24 Dec  7 16:32 test.txt #数据文件
查看对应的general日志
...
SELECT /*!40001 SQL_NO_CACHE */ * INTO OUTFILE '/home/mysql/test.txt' /*!50138 CHARACTER SET binary */ FIELDS TERMINATED BY ',' FROM `test`
...

所以可以直接使用select into outfile
mysql> select * from test into outfile '/home/mysql/test2.txt' fields terminated by ',';
Query OK, 5 rows affected (0.00 sec)
也可以根据业务需要使用连表查询
mysql> select a.id,a.name,b.age from test a,test2 b where a.id=b.id into outfile '/home/mysql/join.txt';
Query OK, 3 rows affected (0.00 sec)
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
13天前
|
缓存 NoSQL 关系型数据库
13- Redis和Mysql如何保证数据⼀致?
该内容讨论了保证Redis和MySQL数据一致性的几种策略。首先提到的两种方法存在不一致风险:先更新MySQL再更新Redis,或先删Redis再更新MySQL。第三种方案是通过MQ异步同步以达到最终一致性,适用于一致性要求较高的场景。项目中根据不同业务需求选择不同方案,如对一致性要求不高的情况不做处理,时效性数据设置过期时间,高一致性需求则使用MQ确保同步,最严格的情况可能涉及分布式事务(如Seata的TCC模式)。
37 6
|
20天前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:保障数据完整性,MySQL事务在进销存管理系统中的应用(12)
轻松入门MySQL:保障数据完整性,MySQL事务在进销存管理系统中的应用(12)
|
27天前
|
关系型数据库 MySQL
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
21 0
|
30天前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
20 1
|
30天前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
15 1
|
26天前
|
关系型数据库 MySQL
MySQL查询当天昨天明天本月上月今年等数据
MySQL查询当天昨天明天本月上月今年等数据
19 2
|
26天前
|
关系型数据库 MySQL 开发工具
MySQL分组后,组内排序,然后取每组的第一条数据
MySQL分组后,组内排序,然后取每组的第一条数据
15 1
|
27天前
|
canal SQL 关系型数据库
MySQL数据直接实时同步到ES
MySQL数据直接实时同步到ES
32 0
|
30天前
|
Java 数据库连接 mybatis
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
19 1
|
30天前
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
15 1