搞定linux上MySQL编程(四):数据导入导出和备份

【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途】

在MySQL中提供多种数据导入方法,比如mysqlinport、sql语句导入以及编写专门导入程序等。通常情况下,数据导入基本步骤科分成3步:

1.确定导入的数据源,按固定格式存储的文本文件或者SQL文件。2.依照导入的文件格式,确定目标数据表,这个数据表如果没有,可以依照导入的文本文件格式,创建一个相对应的数据表。3.执行导入命令,将数据导入数据表中。 下面分别介绍MySQL提供的各种导入数据方法,此处设计一张表,一个一个要导入的数据,已文本格式存储。1.数据源创建一个如下文本文件,各字段已tab键隔开:# cat myuser.txt zhao 2582015-1-1qian 2242014-5-6sun3112013-12-7li4062014-12-12zhou 4532015-2-8wu1812014-9-12zheng 4492012-10-12wang 29122015-3-62.然后创建一张目标数据库表,表的数据结构要和文本文件一一对应,如下:[root@localhostdb_bak]#mysql-uroot-pEnterpassword:mysql> use db_users;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> create table user_import ( name varchar(32) not null primary key, age int, level int, login_date date );Query OK, 0 rows affected (0.02 sec)mysql> desc user_import;+————+————-+——+—–+———+——-+| Field| Type| Null | Key | Default | Extra |+————+————-+——+—–+———+——-+| name| varchar(32) | NO | PRI | NULL ||| age| int(11)| YES || NULL ||| level| int(11)| YES || NULL ||| login_date | date| YES || NULL ||+————+————-+——+—–+———+——-+4 rows in set (0.00 sec)mysql> 3.导入数据,mysqlimport是MySQL提供的导入工具,该工具可以把文本文件导入到用户指定的数据表中。

mysqlimport 使用格式为:

mysqlimport[-d/f…] tablename data.txt

其中[-d/f…]是可选参数。

tablename用于表示数据库名称。

data.txt用于表示记录的文本文件,通常要导入的数据表名默认是与文本文件同名的。

例如下面运行mysqlimport命令将文本数据导入到MySQL中:

# cp /home/allen/user_import.txt /var/lib/mysql/db_users/# mysqlimport -uroot -pxxx db_users user_import.txtdb_users.user_import: Records: 8 Deleted: 0 Skipped: 0 Warnings: 0# mysqlimport -uroot -p db_users user_import.txtEnter password: mysqlimport: Error: 1062, Duplicate entry 'zhao' for key 'PRIMARY', when using table: user_import# mysqlimport -d -uroot -p db_users user_import.txtEnter password: db_users.user_import: Records: 8 Deleted: 0 Skipped: 0 Warnings: 0

然后查看数据导入后的情况如下:

# mysql -u root -pEnter password:……mysql> use db_users;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> select * from user_import;+——-+——+——-+————+| name | age | level | login_date |+——-+——+——-+————+| zhao | 25 |8 | 2015-01-01 || qian | 22 |4 | 2014-05-06 || sun | 31 |1 | 2013-12-07 || li | 40 |6 | 2014-12-12 || zhou | 45 |3 | 2015-02-08 || wu | 18 |1 | 2014-09-12 || zheng | 44 |9 | 2012-10-12 || wang | 29 | 12 | 2015-03-06 |+——-+——+——-+————+8 rows in set (0.00 sec)

有时候数据源的间隔符可能不是默认tab键,有可能是逗号,这时可以加入参数–field-terminatied-by=str, 导入的命令为:

# mysqlimport -uroot -pxxx –fields-terminated-by=, db_users user_import2.txtdb_users.user_import2: Records: 8 Deleted: 0 Skipped: 0 Warnings: 0

数据导出是将数据库中已存的数据导出到固定文本记录,mysqldump是MySQL中专门仅数据导出服务的工具,,它可以将一个数据库、表,设置存储过程一SQL语句的形式导出,另外在数据备份中也会使用该工具。其使用格式为:

mysqldump [-r/…] databsesname < data.sql

[-r/…]为可选参数;

databsesname为数据库名称;

data.sql表示亚导出的SQL的脚本。

# mysqldump -u root -p db_users > db_userr.sqlEnter password: # ls -al db_userr.sql-rw-r–r–. 1 root root 6366 Jun 10 22:52 db_userr.sql# vim db_userr.sql– MySQL dump 10.13 Distrib 5.1.66, for redhat-linux-gnu (i386)—- Host: localhost Database: db_users– ——————————————————– Server version5.1.66/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;/*!40103 SET TIME_ZONE='+00:00' */;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;—- Table structure for table `password`–DROP TABLE IF EXISTS `password`;/*!40101 SET @saved_cs_client= @@character_set_client */;"db_userr.sql" 163L, 6366C1,1Top– MySQL dump 10.13 Distrib 5.1.66, for redhat-linux-gnu (i386)—- Host: localhost Database: db_users– ——————————————————– Server version5.1.66……

数据导出成功。

数据库导出文件可以通过如下几种方式来恢复到数据库中:

1 利用mysql命令执行数据的恢复操作:

创造条件,去改变生活,做生活的强者.愿你早日成为生活的强者

搞定linux上MySQL编程(四):数据导入导出和备份

相关文章:

你感兴趣的文章:

标签云: