1. 使用select * from table_name into outfile “file_name”;
2. 使用mysqldump实用程序
下面我们来举例说明:
假设我们的数据库中有一个库为samp_db,一个表为samp_table.现在要把samp_table的数据导出.则我们可以利用以下方法来实现:
在Mysql提示符下打入select * from samp_table into outfile “file_name”;
在系统命令提示符下打入mysqldump –u root samp_db samp_table >samp.sql
(当然mysqldump有很多选项.如 -d 表示只导出表结构; -t 表示只导入表数据)
如何来处理数据的导入:一般我们在系统命令提示符下打入mysqlimport –u root samp_db samp_table.txt(注意:这个TXT文件名必须以表的名字命名).对于mysqldump导出的数据我们还可以用mysql –u root samp_db < file_name来导入.在Mysql提示符下我们用Load data infile “file_name” into table samp_table.
另外除了以上方法,对于移动后的数据库系统与原系统一致的前提下,我们可以通过文件的拷贝来实现数据的导入与导出.首先我们用mysqladmin –u root variables(在系统命令提示符下)或者用show variables;(在Mysql提示符下)来找到datadir.如在我的环境下,此目录在c:mysqldata.然后对其中的一些文件进行拷贝.一切ok!
有了以上知识后,我们进入正题:如何把ACCESS的数据导入到Mysql中.
首先我们把数据从ACCESS中导出为文本文件.在导出过程中注意选择好字段分隔符和文本标识符,且查看一下文本文件,确定一个记录是否在同一行上,如不是,则手工把回车键除掉.假如我们导出的文本文件为c:samp_table.txt.其内容如下:
1,张新化,男
2,江先进,女
接下来我们用mysqlimport –u root –fields-terminated-by=”,” samp_db samp_table.txt
或者用load data infile “c:\samp_table.txt” into table samp_table fields terminated by “,”;
去试一下(注意转义字符),是不是一切ok!如果还不行,请仔细看一下具体命令的帮助.下面列出一些选项:
--fields-enclosed-by=char 指明列值应包括在指定的字符中.通常用引号.缺省时,假定列值不包括在任何字符中.
--fields-escaped-by=char 表示用于转义特殊字符的转义符.缺省时表示无转义符
--fields-terminated-by=char 指定分隔列的字符.缺省时假定列值由制表符分隔.
--lines-terminated-by=str 指定结束输入行的串(可以是多字符的).缺省时假定由换行符终止行.


补充1

<%
dim driverName,chs
driverName="Driver={mysql odbc 3.51 driver};server=localhost;database=discuz;uid=root;pwd=;"
set conn=server.createobject("adodb.connection")
conn.open driverName

Set conns=Server.CreateObject("ADODB.Connection")
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath("news.mdb")&""
On Error Resume Next
Conns.open ConnStr
If Err Then
Err.Clear
Set Conns = Nothing
Response.Write "连接数据库错误……"
Response.End
End If

'之前先执行下面这一句,这句是解决读取数据库乱码问题的关键
set chs=conn.Execute("SET NAMES 'gb2312'")

IntId = Request.QueryString("IntId")
If Len(IntId)<1 Or IsNumeric(IntId)=False Then
IntId=0
Else
IntId=CLng(IntId)
End If

Set Rs = Server.CreateObject("Adodb.Recordset")

'取得当前处理的数据
Set Rs = Server.CreateObject("Adodb.Recordset")
Rs.Open "Select top 1 * From info Where id>"&IntId&" Order by id asc",conns,1,1
If Not Rs.Eof Then
aid=Rs("id")
Title=Trim(Rs("Title"))
Content=Trim(Rs("Content"))
Content=Replace(Content,"&nbsp;"," ")
Content=Replace(Content,"?","")
Content = Replace(Content, "<br>", CHR(10))
Content = Replace(Content, CHR(13), CHR(10))
Content = Replace(Content, CHR(10)&CHR(10), CHR(10))
Else
Response.Write "处理完毕!"
Response.End()
End If
Rs.Close

'取得最大pid
Rs.Open "Select * FROM cdb_posts order by pid desc limit 1",Conn,1,1
NewPid=Rs("pid")+1
Rs.Close

'取得最大dateline
Rs.Open "Select * FROM cdb_threads order by dateline desc limit 1",Conn,1,1
NewDateline=Rs("dateline")+1
Rs.Close

'insert


'取得最大tid
Rs.Open "Select * FROM cdb_threads order by tid desc limit 1",Conn,1,1
NewTid=Rs("tid")+1
Rs.Close

'写入cdb_threads表
Rs.Open "Select * FROM cdb_threads where 1=2",Conn,1,3
Rs.Addnew
   Rs("tid")=NewTid
   Rs("fid")=10
   Rs("iconid")=0
   Rs("typeid")=0
   Rs("readperm")=0
   Rs("price")=0
   Rs("authorid")=1
   Rs("dateline")=NewDateline
   Rs("lastpost")=NewDateline
   Rs("views")=0
   Rs("replies")=0
   Rs("displayorder")=0
   Rs("highlight")=0
   Rs("digest")=0
   Rs("rate")=0
   Rs("blog")=0
   Rs("special")=0
   Rs("p_w_upload")=0
   Rs("subscribed")=0
   Rs("moderated")=0
   Rs("closed")=0
   Rs("itemid")=0
   Rs("supe_pushstatus")=0
Rs.update
Rs.Close

Sql2="update cdb_threads set author='admin',subject='"&Title&"',lastposter='admin' where tid="&NewTid
Conn.execute(sql2)


'----------------------------------


'写入cdb_posts
Rs.Open "Select * FROM cdb_posts where 1=2",Conn,1,3
Rs.Addnew
   Rs("pid")=NewPid
   Rs("fid")=10
   Rs("tid")=NewTid
   Rs("first")=1
   Rs("authorid")=1
   Rs("dateline")=NewDateline
   Rs("invisible")=0
   Rs("anonymous")=0
   Rs("usesig")=0
   Rs("htmlon")=0
   Rs("bbcodeoff")=-1
   Rs("smileyoff")=-1
   Rs("parseurloff")=0
   Rs("p_w_upload")=0
   Rs("rate")=0
   Rs("ratetimes")=0
   Rs("status")=0
Rs.update
Rs.Close
Set Rs = Nothing

Sql2="update cdb_posts set author='admin',subject='"&Title&"',message='"&Content&"',useip='127.0.0.1' where pid="&NewPid
Conn.execute(sql2)

Response.Write "<br><br><br><br><div align=center>已经成功转移了<b>"&IntId&"</b>条数据,数据编号是<b>"&aid&"</b>!</div>"
Response.Write "<script>location.href(""?IntId="&IntId+1&""");</script>"
%>

补充2

利用PHP,将ACCESS数据导入MYSQL(表与字段不相同)的处理[转载]

<?
/**
*利用COM打开ACCESS,然后正常插入到数据表中
*
* @Author    袁相宜
* @Date       2006/09/26
*/

//利用COM打开ACCESS数据表
$conn = @new com("ADODB.Connection") or die("ADO连接创造失败");
$connstr = "Provider=MSDASQL.1;Data Source=test;";
$conn->open($connstr);
$rs = @new com("ADODB.RecordSet") or die("ADO记录集创建失败");
$db = "SELECT * FROM reg";
$rs->Open($db,$conn,1,1);

$conn = mysql_connect("localhost","root","") or die("连接主机失败");
mysql_query('set names "gb2312"');
mysql_select_db("neugd") or die("打开数据库失败");

//循环取出,插入到MYSQL数据表的相应字段中!
while(!$rs->eof)
{
    $a6 = $rs->Fields["a6"];
    if (strlen($a6) > 30)
    {
        $a6 = substr($a6,0,15);
        $a6 = $a6 . "..";
    }
    $query = "INSERT INTO sz_schoolfellow SET
                            s_account = '{$rs->Fields["a1"]}',
                            s_ps = '{$rs->Fields["a2"]}',
                            s_name = '{$rs->Fields["a1"]}',
                            s_neckname = '{$rs->Fields["a1"]}',
                            s_sex = '{$rs->Fields["a3"]}',
                            s_hometown = '{$a6}',
                            s_phone = '{$rs->Fields["a8"]}',
                            s_email = '{$rs->Fields["a5"]}',
                            s_qq = '{$rs->Fields["a11"]}',
                            s_hits = 0,
                            s_rank = 1,
                            s_check = 1
                            ;";
    echo $query . "<br>";
    mysql_query($query) or die("插入失败");

    $rs->MoveNext();
}

?>
 
   

?2009 Baidu