MySQL数据库的导入,有两种方法:
1) 先导出数据库SQL脚本,再导入;
2) 直接拷贝数据库目录和文件。

在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。
所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。

 

2. 方法一 SQL脚本形式
操作步骤如下:
2.1. 导出SQL脚本
在原数据库服务器上,可以用phpMyAdmin工具,或者mysqldump(mysqldump命令位于mysql/bin/目录中)命令行,导出SQL脚本。
2.1.1 用phpMyAdmin工具
导出选项中,选择导出“结构”和“数据”,不要添加“Drop DATABASE”和“Drop TABLE”选项。
选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。
将导出的SQL文件保存下来。

2.1.2 用mysqldump命令行
命令格式
mysqldump -u用户名 -p 数据库名 > 数据库名.sql
范例:
mysqldump -uroot -p abc > abc.sql
(导出数据库abc到abc.sql文件)

提示输入密码时,输入该数据库用户名的密码。

2.2. 创建空的数据库
通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。

2.3. 将SQL脚本导入执行
同样是两种方法,一种用phpMyAdmin(mysql数据库管理)工具,或者mysql命令行。

2.3.1 用phpMyAdmin工具
从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。
在"SQL"菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行。

注意:phpMyAdmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件
比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。
gzip使用方法:
# gzip xxxxx.sql
得到
xxxxx.sql.gz文件。

2.3.2 用mysql命令行
命令格式
mysql -u用户名 -p 数据库名 < 数据库名.sql
范例:
mysql -uabc_f -p abc < abc.sql
(导入数据库abc从abc.sql文件)

提示输入密码时,输入该数据库用户名的密码。

3 方法二 直接拷贝
如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和操作系统之间可能不兼容,要慎用。
3.1 准备原始文件
用tar打包为一个文件

3.2 创建空数据库

3.3 解压
在临时目录中解压,如:
cd /tmp
tar zxf mydb.tar.gz

3.4 拷贝
将解压后的数据库文件拷贝到相关目录
cd mydb/
cp * /var/lib/mysql/mydb/

对于FreeBSD:
cp * /var/db/mysql/mydb/

3.5 权限设置
将拷贝过去的文件的属主改为mysql:mysql,权限改为660
chown mysql:mysql /var/lib/mysql/mydb/*
chmod 660 /var/lib/mysql/mydb/*

================
 
另外:需要特别注意数据库的编码(default-character-set)

查看数据库属性
mysql> status
--------------
mysql  Ver 14.14 Distrib 5.1.33, for Win32 (ia32)Connection id:          7254
Current database:
Current user:          root@localhostSSL:                    Not in use
Using delimiter:        ;
Server version:         5.1.33-community MySQL Community Server (GPL)
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    gbk
Conn.  characterset:    gbk
TCP port:               3306
Uptime:                 4 hours 42 min 30 secThreads: 1  Questions: 58206  Slow queries: 0  Opens: 82  Flush tables: 1  Open tables: 16  Queries per second avg: 3.433
-------------- 
OK


一.MYSQL的命令行模式的设置:
桌面->我的电脑->属性->环境变量->新建->
PATH=“;path/mysql/bin;”其中path为MYSQL的安装路径。
二.简单的介绍一下命令行进入MYSQL的方法:
1.C:/>mysql -h hostname -u username -p
按ENTER键,等待然后输入密码。这里hostname为服务器的名称,如localhost,username为MYSQL的用户名,如root。
进入命令行后可以直接操作MYSQL了。
2.简单介绍一下MYSQL命令:

mysql->CREATE DATABASE dbname;//创建数据库
mysql->CREATE TABLE tablename;//创建表
mysql->SHOW DATABASES;//显示数据库信息,有那些可用的数据库。
   mysql->USE dbname;//选择数据库
mysql->SHOW TABLES;//显示表信息,有那些可用的表
mysql->DESCRIBE tablename;//显示创建的表的信息


三.从数据库导出数据库文件:
1.将数据库mydb导出到e:/mysql/mydb.sql文件中:
打开开始->运行->输入cmd 进入命令行模式
c:/>mysqldump -h localhost -u root -p mydb >e:/mysql/mydb.sql
然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。
2.将数据库mydb中的mytable导出到e:/mysql/mytable.sql文件中:
c:/>mysqldump -h localhost -u root -p mydb mytable>e:/mysql/mytable.sql
3.将数据库mydb的结构导出到e:/mysql/mydb_stru.sql文件中:
c:/>mysqldump -h localhost -u root -p mydb --add-drop-table >e:/mysql/mydb_stru.sql
四.从外部文件导入数据到数据库中:
从e:/mysql/mydb2.sql中将文件中的SQL语句导入数据库中:
1.从命令行进入mysql,然后用命令CREATE DATABASE mydb2;创建数据库mydb2。
2.退出mysql 可以输入命令exit;或者quit;
3.在CMD中输入下列命令:
c:/>mysql -h localhost -u root -p mydb2 < e:/mysql/mydb2.sql
然后输入密码,就OK了。
五.下面谈一下关于导入文件大小限制问题的解决:
默认情况下:mysql 对导入文件大小有限制的,最大为2M,所以当文件很大时候,直接无法导入,下面就这个问题的解决列举如下:
1.在php.ini中修改相关参数:
影响mysql导入文件大小的参数有三个:
memory_limit=128M,upload_max_filesize=2M,post_max_size=8M
修改upload_max_filesize=200 M   这里修改满足你需要的大小,
可以同时修改其他两项memory_limit=250M   post_max_size=200M
这样就可以导入200M以下的.sql文件了。