我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql导出文件及备份操作笔记

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql导出文件及备份操作笔记

通过 SELECT ... INTO OUTFILE 语句 导出某个表

MariaDB [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| acs                |

| auth               |

| information_schema |

| mysql              |

| performance_schema |

| test               |

+--------------------+

6 rows in set (0.01 sec)

MariaDB [(none)]> use test

Database changed

MariaDB [test]> show tables;

+----------------+

| Tables_in_test |

+----------------+

| sheet1         |

+----------------+

1 row in set (0.01 sec)

MariaDB [test]> select * from sheet1 into outfile '/tmp/sheet1.txt';

Query OK, 239 rows affected (0.02 sec)

MariaDB [test]> select * from sheet1 into outfile '/tmp/sheet2.txt'

    -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'

    -> LINES TERMINATED BY '\r\n';

Query OK, 239 rows affected (0.00 sec)

      LOAD DATA INFILE是SELECT ... INTO OUTFILE的逆操作,SELECT句法。为了将一个数据库的数据写入一个文件,使用SELECT ... INTO OUTFILE,为了将文件读回数据库,使用LOAD DATA INFILE。

  通过 mysqldump 导出表作为原始数据

如下语句将 test 数据库的 sheet1 表导出到 /tmp 目录下,执行后在 /tmp 目录下回生成 sheet1.txt 文本文件:

[root@bogon ~]# mysqldump -u root -p --no-create-info  --tab=/tmp test sheet1

Enter password:

  通过 mysqldump 导出某个表定义及数据

[root@bogon ~]# mysqldump -u root -p test sheet1 > /tmp/sheet1dump.txt

Enter password:

[root@bogon ~]#

[root@bogon tmp]# more sheet1dump.txt

-- MySQL dump 10.16  Distrib 10.1.25-MariaDB, for Linux (x86_64)

--

-- Host: localhost    Database: test

-- ------------------------------------------------------

-- Server version       10.1.25-MariaDB

--

-- Table structure for table `sheet1`

--

DROP TABLE IF EXISTS `sheet1`;

;

;

CREATE TABLE `sheet1` (

  `Code` varchar(255) DEFAULT NULL,

  `Name` varchar(255) DEFAULT NULL,

  `Continent` varchar(255) DEFAULT NULL,

  `Code2` varchar(255) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

;

--

-- Dumping data for table `sheet1`

--

LOCK TABLES `sheet1` WRITE;

;

INSERT INTO `sheet1` VALUES ('ABW','Aruba','North America','Caribbean','193.00','','103000','78.4','828.00','793.00','Aruba','

….

8670.00','Zimbabwe','Republic','Robert G. Mugabe','4068','ZW');

;

UNLOCK TABLES;

-- Dump completed on 2020-03-27 18:04:43

全库备份:

[root@bogon ~]# mysqldump -u root -p --all-databases > /home/dbbakups/Test_DB_dump20200327.txt

Enter password:

将数据表及数据库拷贝至其他主机

如果你需要将数据拷贝至其他的 MySQL 服务器上, 你可以在 mysqldump 命令中指定数据库名及数据表。

在源主机上执行以下命令,将数据备份至 dump.txt 文件中:

$ mysqldump -u root -p database_name table_name > dump.txt

password *****

[root@bogon ~]# mysqldump -u root -p test sheet1 > /tmp/sheet1dump.txt

如果完整备份数据库,则无需使用特定的表名称。

[root@bogon ~]# mysqldump -u root -p acs  > /tmp/acsdump.txt

[root@bogon tmp]# ls -alh

-rw-r--r--.  1 root     root     5.2M Mar 27 18:54 acsdump.txt

如果你需要将备份的数据库导入到MySQL服务器中,可以使用以下命令,使用以下命令你需要确认数据库已经创建:

创建数据库 语法 :     

                create   database   db1   DEFAULT   CHARSET   utf8   COLLATE   utf8_general_ci;       # utf8编码  

               create database db1 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; # gbk编码

使用数据库:       use   db1;

在另一个本地PC上创建名称为acstest的数据库:

mysql>  create database acstest  DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

Query OK, 1 row affected, 2 warnings (0.09 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| acstest            |

| information_schema |

| kuqlan             |

| mysql              |

| performance_schema |

| sakila             |

| sys                |

| world              |

+--------------------+

8 rows in set (0.00 sec)

mysql> exit

Bye

C:\Users\yspmm>mysql -u root -p acstest < D:\acsdump.txt

Enter password: ********

导入语法:

$ mysql -u root -p database_name < dump.txt

password *****

你也可以使用以下命令将导出的数据直接导入到远程的服务器上,但请确保两台服务器是相通的,是可以相互访问的:

$ mysqldump -u root -p database_name \

       | mysql -h other-host.com database_name

将指定主机的数据库拷贝到本地

如果你需要将远程服务器的数据拷贝到本地,你也可以在 mysqldump 命令中指定远程服务器的IP、端口及数据库名。

在源主机上执行以下命令,将数据备份到 dump.txt 文件中:

请确保两台服务器是相通的:

mysqldump  - h other - host . com  - P port  - u root  - p database_name  >  dump . txt
password  ****

 

 

一般在导出文件目录没有在 mysql  参数文件 my .ini 或 my .cnf 里进行配置会出现如下错误:

The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

出现这个错误是因为没有给数据库指定写出文件的路径或者写出的路径有问题。错误解决方法:

首先使用下面的命令  show variables like '%secure%';  查看数据库的存储路径。如果查出的 secure_file_priv 是 null 的时候就证明在 my.ini 文件里面没有配置写出路径。

这时候就可以在 mysql.ini 文件的 [mysqld] 代码下增加 secure_file_priv= D :/ tmp  再重启 mysql 就可以了。

 

 

参考文章:

https://www.runoob.com/mysql/mysql-database-export.html



免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql导出文件及备份操作笔记

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL导出sql脚本文件操作指南

mysql数据库是非常常用的一种数据库,属于中小型数据库,常用于网站业务和一些WEB系统业务,下面这篇文章主要给大家介绍了关于MySQL导出sql脚本文件操作的相关资料,需要的朋友可以参考下
2023-01-13

编程热搜

目录