Mysql导出文件及备份操作笔记
发布时间:2022-06-28 13:36:26 所属栏目:MySql教程 来源:互联网
导读:通过 SELECT ... INTO OUTFILE 语句 导出某个表 MariaDB [(none)] show databases; +--------------------+ | Database | +--------------------+ | acs | | auth | | information_schema | | mysql | | performance_schema | | test | +-----------------
![]() 通过 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 'rn'; Query OK, 239 rows affected (0.00 sec) LOAD DATA INFILE是SELECT ... INTO OUTFILE的逆操作,SELECT句法。为了将一个数据库的数据写入一个文件,使用SELECT ... INTO OUTFILE,为了将文件读回数据库,使用LOAD DATA INFILE。 如下语句将 test 数据库的 sheet1 表导出到 /tmp 目录下,执行后在 /tmp 目录下回生成 sheet1.txt 文本文件: [root@bogon ~]# mysqldump -u root -p --no-create-info --tab=/tmp test sheet1 Enter password: [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`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; 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; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `sheet1` -- LOCK TABLES `sheet1` WRITE; /*!40000 ALTER TABLE `sheet1` DISABLE KEYS */; 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'); /*!40000 ALTER TABLE `sheet1` ENABLE KEYS */; 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:Usersyspmm>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 就可以了。 (编辑:我爱制作网_池州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐


