MySQL导出导入命令的用例

随着数据的增多,数据的备份显得日益重要,下面是mysql常用的数据导入导出命令。

  1. 导出整个数据库

    格式:mysqldump -u 用户名 -p 数据库名 > 导出的文件名

举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
C:\Documents and Settings\Owner>mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 5 to server version: 5.0.7-beta-nt

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> use testdb
Database changed
mysql> select * from user;
+--------+----------+----------+---------------+
| userid | username | password | email |
+--------+----------+----------+---------------+
| 1 | aaa | aaa | aaaa |
| 2 | bbb | bbbb | bbbb@sina.com |
+--------+----------+----------+---------------+
2 rows in set (0.00 sec)

mysql> select * from user1;
+--------+----------+----------+---------------+
| userid | username | password | email |
+--------+----------+----------+---------------+
| 1 | cccc | cccc | cccc |
| 2 | cccc | cccc | cccc@sina.com |
+--------+----------+----------+---------------+

2 rows in set (0.00 sec)

在mysql的bin目录里面执行如下命令

1
2
3
4
C:\MySQL\MySQL Server 5.0\bin>mysqldump -u root -p testdb > testdb.sql
Enter password:

C:\MySQL\MySQL Server 5.0\bin>

testdb.sql内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
– MySQL dump 10.10

– Host: localhost Database: testdb
– ——————————————————
– Server version 5.0.7-beta-nt

/*!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 */;
/*!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__ON_ZERO’ */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;


– Table structure for table `user`


DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`userid` int(11) NOT NULL,
`username` varchar(20) NOT NULL,
`password` varchar(50) NOT NULL,
`email` varchar(50) default NULL,
PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


– Dumping data for table `user`

/*!40000 ALTER TABLE `user` DISABLE KEYS */;
LOCK TABLES `user` WRITE;
INSERT INTO `user` S (1,’aaa’,'aaa’,'aaaa’),(2,’bbb’,'bbbb’,'bbbb@sina.com’);
UNLOCK TABLES;
/*!40000 ALTER TABLE `user` ENABLE KEYS */;


– Table structure for table `user1`


DROP TABLE IF EXISTS `user1`;
CREATE TABLE `user1` (
`userid` int(11) NOT NULL,
`username` varchar(20) NOT NULL,
`password` varchar(50) NOT NULL,
`email` varchar(50) default NULL,
PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


– Dumping data for table `user1`

/*!40000 ALTER TABLE `user1` DISABLE KEYS */;
LOCK TABLES `user1` WRITE;
INSERT INTO `user1` S (1,’cccc’,'cccc’,'cccc’),(2,’cccc’,'cccc’,'cccc@sina.com’);
UNLOCK TABLES;
/*!40000 ALTER TABLE `user1` ENABLE KEYS */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE*/;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS*/;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS*/;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT*/;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS*/;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION*/;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES*/;

  1. 导出一个表

    格式:mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
    举例:表结构与上面的相同,命令如下:

    1
    2
    3
    4
    C:\MySQL\MySQL Server 5.0\bin>mysqldump -u root -p testdb user > user.sql
    Enter password:

    C:\MySQL\MySQL Server 5.0\bin>

    user.sql内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    – MySQL dump 10.10

    – Host: localhost Database: testdb
    – ——————————————————
    – Server version 5.0.7-beta-nt

    /*!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 */;
    /*!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__ON_ZERO’ */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;


    – Table structure for table `user`


    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user` (
    `userid` int(11) NOT NULL,
    `username` varchar(20) NOT NULL,
    `password` varchar(50) NOT NULL,
    `email` varchar(50) default NULL,
    PRIMARY KEY (`userid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


    – Dumping data for table `user`

    /*!40000 ALTER TABLE `user` DISABLE KEYS */;
    LOCK TABLES `user` WRITE;
    INSERT INTO `user` S (1,’aaa’,'aaa’,'aaaa’),(2,’bbb’,'bbbb’,'bbbb@sina.com’);
    UNLOCK TABLES;
    /*!40000 ALTER TABLE `user` ENABLE KEYS */;

    /*!40101 SET SQL_MODE=@OLD_SQL_MODE*/;
    /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS*/;
    /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS*/;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT*/;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS*/;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION*/;
    /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES*/;
  2. 导出一个数据库结构

    格式:mysqldump -u 用户名 -p -d –add-drop-table 数据库 > 导出的文件名
    说明:
    -d 选项表示没有数据
    –add-drop-table 选项说明在每个create语句之前增加一个drop table
    举例:表结构与上面的相同

    1
    2
    3
    4
    C:\MySQL\MySQL Server 5.0\bin>mysqldump -u root -p -d –add-drop-table testdb > testdbstruct.sql
    Enter password:

    C:\MySQL\MySQL Server 5.0\bin>

    testdbstruct.sql内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    – MySQL dump 10.10

    – Host: localhost Database: testdb
    – ——————————————————
    – Server version 5.0.7-beta-nt

    /*!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 */;
    /*!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__ON_ZERO’ */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;


    – Table structure for table `user`


    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user` (
    `userid` int(11) NOT NULL,
    `username` varchar(20) NOT NULL,
    `password` varchar(50) NOT NULL,
    `email` varchar(50) default NULL,
    PRIMARY KEY (`userid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


    – Table structure for table `user1`


    DROP TABLE IF EXISTS `user1`;
    CREATE TABLE `user1` (
    `userid` int(11) NOT NULL,
    `username` varchar(20) NOT NULL,
    `password` varchar(50) NOT NULL,
    `email` varchar(50) default NULL,
    PRIMARY KEY (`userid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    /*!40101 SET SQL_MODE=@OLD_SQL_MODE*/;
    /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS*/;
    /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS*/;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT*/;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS*/;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION*/;
    /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES*/;
  3. 导入数据库

    格式:常用source 命令

    进入mysql数据库控制台:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    C:\MySQL\MySQL Server 5.0\bin>mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or g.
    Your MySQL connection id is 10 to server version: 5.0.7-beta-nt

    Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

    mysql> use testdb;
    Database changed
    mysql> source testdb.sql;
    Query OK, 0 rows affected (0.05 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.13 sec)
    Query OK, 0 rows affected (0.10 sec)
    Query OK, 0 rows affected (0.01 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 2 rows affected (0.04 sec)
    Records: 2 Duplicates: 0 Warnings: 0
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.03 sec)
    Query OK, 0 rows affected (0.09 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.01 sec)
    Query OK, 2 rows affected (0.03 sec)
    Records: 2 Duplicates: 0 Warnings: 0
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.01 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)
    Query OK, 0 rows affected (0.00 sec)

    mysql>

    其中testdb.sql放在C:\MySQL\MySQL Server 5.0\bin目录下,如果不在这个目录下则要指定路径