MYSQL OUTPUT 指令碼 修正

2022-07-16 01:39:12 字數 1893 閱讀 8758

這個重新寫的乙個mysql資料匯出指令碼, 匯出格式為csv,這種格式更加的輕便,不會過份影響資料檔案體積,適合匯入到本地資料庫!大家通過修改**裡面標註的一些配置變數就可以了。如果匯出資料有篩選要求可以直接修改sql語句滿足你的要求!

如果資料是百萬級別,這個指令碼並不適合通過瀏覽器訪問來脫褲,所以要用命令列來執行該指令碼,這樣就不會漏資料了。(記得網上廣傳的adminer 指令碼,這個匯出大量資料時會不完整,十分不穩定!只適合瀏覽資料和修改。)

執行方式:

linux 下可以 :

php /tmp/outdata.php (在未安裝php 環境中,需要單獨去安裝一下php。)

問題總結:

1 。提示php沒找到就是下面這樣的情況:

沒有設定對應php環境變數則找不到php 路徑。(這些操作最好在ssh 或者**出的shell 中操作。我用菜刀的命令列執行指令碼,匯出大量資料也沒任何問題, 你也可以這樣做。)

解決辦法:

linux 安裝了php, 不知道路徑 敲入下面命令

locate php | more

帶上php完整路徑執行指令碼就行了。windows 下就需要找到php 的安裝路徑了,一般情況管理員可能並沒有為php設定環境變數!

提醒 : 資料匯出過程中,會生成data.csv 資料檔案,資料在多的情況,不會瞬間匯出完畢,要等待一會。如果你用類似菜刀這樣的工具執行的指令碼,菜刀在一段時間內沒接收到資料會出現超時提醒,但不是你的指令碼超時,你要不斷重新整理注意檔案體積,如果看到大小不變了,那就匯出完畢了。指令碼只是脫整個表的資料,如果你的需求不是這樣,那就要另外修改了!

<?php

ini_set('max_execution_time', 0);

ini_set('memory_limit','900m'); // 記憶體最大空間。 discuz/uccenter 一般幾百w 資料也就占用 160 - 200 m 硬碟空間

$db_host = 'localhost'; // host

$db_user = 'uc'; // mysql user

$db_pass = '527200.kenweige'; // mysql pass

$db_database = 'uc'; // database name

$table_name = 'uc_members'; // table

$sql = mysql_connect($db_host,$db_user,$db_pass) or die('error!');

mysql_select_db($db_database,$sql) or die("could not connect: " . mysql_error()."\n");

mysql_query('set names gbk');

$query = "select * from $table_name";

$export = mysql_query($query) or die("sql error : ".mysql_error()."\n");

$fields = mysql_num_fields ($export);

$data = '';

$header = '';

for ( $i = 0; $i < $fields; $i++)

$header = substr($header, 0, -1);

while ($row = mysql_fetch_array($export, mysql_num))

else

$line .= $value;

}wf(substr(trim($line), 0, -1)."\n");

}function wf($data)

if ( $data == "" )

?>

GM 指令碼 修正 github

從某時起,github 和 linux 一樣,開始有著越來越多的 bug 和讓人不舒服的地方。本文所附的 greasemonkey 指令碼修正以下問題 新建專案後,從已有專案建立的提示命令使用https而不再是ssh協議。這直接導致 git 向使用者詢問使用者名稱和密碼,而不使用使用者已經上傳並確認...

GM 指令碼 修正 github

從某時起,github 和 linux 一樣,開始有著越來越多的 bug 和讓人不舒服的地方。本文所附的 greasemonkey 指令碼修正以下問題 新建專案後,從已有專案建立的提示命令使用https而不再是ssh協議。這直接導致 git 向使用者詢問使用者名稱和密碼,而不使用使用者已經上傳並確認...

Ruby rcov問題修正

前兩天在我本機上用rcov測試覆蓋率,出錯,出錯提示為 rexml formatters pretty.rb 131 in implicit conversion from nil to integer 現已查明原因,是rcov 0.8.1.2.0和 ruby1.8.7的rexml庫不相容所致。修改...