mysql数据库导入导入代码
先来讲讲利用比如到处数据用逗号(‘),竖线(|)隔开的数据。很多人会说使用用
代码如下 | 复制代码 |
mysql -uUser -pPwd dbName -e “$sql” |
进行导出。
其中$sql使用
代码如下 | 复制代码 |
SELECT * FROM `TABLENAME` WHERE xxx INTO OUTFILE “指定文件路劲” FIELDS TERMINATED BY ”|“ |
这种往往很多会报没有权限之类的莫名其妙的错误。
错误一
代码如下 | 复制代码 |
ERRORERROR 1045 (28000) at line 1: Access denied for user 'qinghua'@'localhost' (using password: YES) |
错误二
代码如下 | 复制代码 |
ERRORERROR 1 (HY000) at line 1: Can't create/write to file '/home/martin/outfile' (Errcode: 13) |
错误一是由于普通用户没有执行权限,错误二是由于没有权限穿件文件”aa”。
正确的做应该是
代码如下 | 复制代码 |
SHELLmysql -uqinghua -p123456 qinghua --e "select * from qinghua.user where 1 into outfile 'outfile' FIELDS TERMINATED BY'|'" |
这样它穿件的文件会出现在mysql datadir目录对应的数据库文件夹内。
如果想把文件创建到指定目录内。那你一定得赋予改目录mysql写入权限。
一般的做法是
代码如下 | 复制代码 |
mkdir -p /home/martin/outdata; sudo chmod 777 /home/martin/outdata; SHELLmysql -uqinghua -p123456 qinghua --e "select * from qinghua.user where 1 into outfile '/home/martin/outdata/outfile' FIELDS TERMINATED BY'|'" |
mysqldump参数介绍:http://www.zzzyk.com/database/mysql/42121.htm 相关文章
–w 设定导出的条件。
–no-create-db 导出时不到出穿件数据库。
–no-create-info 不创建表结构。
–xml 导出xml格式文件。
–skip-add-drop-table 不创建删除表结构语句。
mysql数据导入一般使用 mysql -uUser -pPwd dbName < xxx.sql,或者使用source进行导入。
参考地址:
http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html
http://dev.mysql.com/doc/refman/5.1/zh/replication.html 生成二进制日志,进行双机热备
再看看其它的方法
导出程序如下:调用方法为 ****.php?table=tablename
这个简单的程序目前一次保存一个表格!!每行为一个字段的数据!!
代码如下 | 复制代码 |
if($table=="")exit(); mysql_connect("localhost","name","password"); mysql_select_db("database"); $result = mysql_query("select * from $table"); if(mysql_num_rows($result) < = 0) exit(); echo "开始转换数据到文本... "; $handle = fopen("$table.txt","w"); $numfields = mysql_num_fields($result); fputs($handle,$numfields."rn"); for($k=0;$k { $msg = mysql_fetch_row($result); for($i=0;$i< $numfields;$i++) { $msg[$i] = str_replace("rn","&&php2000mysqlreturn&&",$msg[$i]); $msg[$i] = str_replace("n" ,"&&php2000mysqlreturn&&",$msg[$i]); fputs($handle,$msg[$i]."rn"); } fputs($handle,"------- php2000 dump data program V1.0 for MySQL --------rn"); } fclose($handle); echo "ok"; ?> |
导入的程序如下:用法同上面!
代码如下 | 复制代码 |
if($table=="")exit(); mysql_connect("localhost","name","password"); mysql_select_db("database"); $message = file("$table.txt"); echo $numfields = chop($message[0]); for($k=1;$k { $value=""; for ($i=$k;$i< ($k+$numfields-1);$i++) { $tmp = str_replace("&&php2000mysqlreturn&&","rn",chop($message[$i])); $value .= "'".addslashes($tmp)."',"; } $tmp = str_replace("&&php2000mysqlreturn&&","rn",chop($message[$k+$numfields-1])); $value .= "'".$tmp."'"; $query = "insert into $table values (".$value.")"; echo mysql_error(); mysql_query($query); echo $k." "; } echo "ok"; ?> |
补充:数据库,mysql教程