一、一般步驟
在中方等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設計、成都網(wǎng)站設計 網(wǎng)站設計制作定制設計,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站制作,全網(wǎng)營銷推廣,成都外貿網(wǎng)站建設公司,中方網(wǎng)站建設費用合理。
1、用phpADMIN生成CSV格式文件
以PHP+MySQL模式建立個人主頁的讀者,在自己的機器上都有PHP+MySQL環(huán)境吧?就在這個環(huán)境下,用phpADMIN生成以分號為分隔符的dotmud.csv文件。
2、將dotmud.csv文件通過FTP上傳到服務器。
3、上傳data.php程序(程序附后),在瀏覽器調用data.php程序,將dotmud.csv文件的內容加入到數(shù)據(jù)庫。
二、特殊處理
一般的數(shù)據(jù),通過上述步驟,基本可以順利上傳。但對于包含特殊字符的數(shù)據(jù)(比如數(shù)據(jù)庫記錄中包含換行符、單引號、分號),就要做些特殊的處理。
1、換行符的處理
PHP的fgetcsv()函數(shù)以換行符作為每行的結束標志。如果MySQL數(shù)據(jù)表的記錄包含換行符,fgetcsv()就不能完整讀取記錄行。
筆者的解決方法是修改phpADMIN的lib.inc.php3文件(讀者也可以不修改phpADMIN文件,而是用其他方法直接加工phpADMIN生成的dotmud.csv文件,達到同樣的效果)的get_table_csv()函數(shù):
在 $schema_insert=ereg_replace($sep."$","",$schema_insert) 行后加入如下命令行
$schema_insert=ereg_replace("\r\n","`return`",$schema_insert)
將換行符轉換為不容易出現(xiàn)的換行標識串`return`(讀者可根據(jù)自己數(shù)據(jù)的特點設置獨特的換行標識串),再在data.php程序中加一行命令$data[$i]=ereg_replace("`return`","\r\n",$data[$i]),用來將換行標識串還原成換行符。
2、分隔符的處理
如果MySQL記錄行恰好包含CSV分隔符,fgetcsv()進行分隔處理時就會出現(xiàn)問題。
筆者仍然是通過修改lib.inc.php3文件解決的。
在get_table_csv()的$schema_insert="$row[$j]".$sep行前加一行
$row[$j]=ereg_replace($sep,"`return_sep`",$row[$j]) 命令,將分隔符轉為分隔標識串`return_sep`,同時在data.php中用命令行 $data[$i]=ereg_replace("`return_sep`",";",$data[$i]) 進行還原處理。
3、單引號的處理
MySQL的SQL語句行對單引號有特殊的定義,如果直接提交含單引號的SQL語句,就會出錯。這種情況需要加上轉義符。在data.php中加一行 $data[$i]=ereg_replace("'","\'",$data[$i]) 就可解決。
另外,在數(shù)據(jù)記錄特別多的的情況下,dotmud.csv文件可能比較大,如果在服務器的限定時間內不能執(zhí)行完data.php程序,就需要按行分拆dotmud.csv。如筆者有個7000行的dotmud.csv文件,在自己的機器上執(zhí)行到600行就提示超時,便拆成10個文件上傳到全路互聯(lián)(),結果對方的服務器速度快,每個文件的處理時間還不到1秒,而php默認的限定執(zhí)行時間可是30秒??!看來我做的分拆實屬多余。
以上方法解決了數(shù)據(jù)庫內容的上傳問題。對于數(shù)據(jù)庫結構的上傳,只要稍微修改一下data.php程序就可實現(xiàn)。其實,如果庫結構比較簡單,用phpADMIN更方便
平時開放過程中,需要將Excel表格中的數(shù)據(jù)導入到MySql數(shù)據(jù)庫中,MySQL-Front為我們提供了這個功能,高效,快捷,又方便。
工具/原料
MySQL-Front 5.3
MySQL5.0
BasicCode.xls
方法/步驟
第一步:使用MySQL-Front 5.3訪問數(shù)據(jù)庫,打開數(shù)據(jù)界面如下
第二步,新建表,tb_test字段最好和保持數(shù)據(jù)一致
第三步,要導入的Excel數(shù)據(jù),格式如下
第四步,選中新建的表右鍵,然后點擊"MS excel 文件(M)...",在選中要導入的Excel文件。
第五、選中要導入的數(shù)據(jù),以下截圖中顯示的是excel文件中的sheet名稱,點擊下一步,然后將excel表中的數(shù)據(jù)項和數(shù)據(jù)庫表中的字段一一對應,點擊下一步,出現(xiàn)界面之后,直接點擊“運行”即可。
在這里分享一下在python中上傳數(shù)據(jù)到MySQL的整體流程。
利用for循環(huán),可以依次把列表中的每一組數(shù)據(jù)寫入sql語句并執(zhí)行。
需要注意的是values的每個值都需要用引號引起來,否則會報錯
MySQL數(shù)據(jù)庫的導入,有兩種方法:
1)
先導出數(shù)據(jù)庫SQL腳本,再導入;
2)
直接拷貝數(shù)據(jù)庫目錄和文件。
在不同操作系統(tǒng)或MySQL版本情況下,直接拷貝文件的方法可能會有不兼容的情況發(fā)生。
所以一般推薦用SQL腳本形式導入。下面分別介紹兩種方法。
2.
方法一
SQL腳本形式
操作步驟如下:
2.1.
導出SQL腳本
在原數(shù)據(jù)庫服務器上,可以用phpMyAdmin工具,或者mysqldump命令行,導出SQL腳本。
2.1.1
用phpMyAdmin工具
導出選項中,選擇導出“結構”和“數(shù)據(jù)”,不要添加“DROP
DATABASE”和“DROP
TABLE”選項。
選中“另存為文件”選項,如果數(shù)據(jù)比較多,可以選中“gzipped”選項。
將導出的SQL文件保存下來。
2.1.2
用mysqldump命令行
命令格式
mysqldump
-u用戶名
-p
數(shù)據(jù)庫名
數(shù)據(jù)庫名.sql
范例:
mysqldump
-uroot
-p
abc
abc.sql
(導出數(shù)據(jù)庫abc到abc.sql文件)
提示輸入密碼時,輸入該數(shù)據(jù)庫用戶名的密碼。
2.2.
創(chuàng)建空的數(shù)據(jù)庫
通過主控界面/控制面板,創(chuàng)建一個數(shù)據(jù)庫。假設數(shù)據(jù)庫名為abc,數(shù)據(jù)庫全權用戶為abc_f。
2.3.
將SQL腳本導入執(zhí)行
同樣是兩種方法,一種用phpMyAdmin(mysql數(shù)據(jù)庫管理)工具,或者mysql命令行。
2.3.1
用phpMyAdmin工具
首先,登錄mysql(127.0.0.1/phpmyadmin)輸入用戶名、密碼,用戶名通常是root,密碼自己看著辦,然后在本地導出數(shù)據(jù)庫,存為一個擴展名為xxx.sql的文檔。如果你在數(shù)據(jù)庫里用到了GB2312記得用Dreamweaver打開,替換成GBK,因為我的PHPMYADMIN里面沒有GB2312編碼。
然后通過瀏覽器打開網(wǎng)址的后臺管理界面,用新網(wǎng)給你的用戶名和密碼登陸。在最下方有一個MYSQL數(shù)據(jù)庫管理入口。
3
進入新網(wǎng)后臺以后,進去后再次要求輸入密碼,再次驗證,你照開始一樣輸入就可以。我的MYSQL數(shù)據(jù)庫沒有直接導入功能,所以把剛剛在Dreamweaver編輯的代碼全部復制到SQL執(zhí)行窗口,點擊執(zhí)行即可!接下來就是修改網(wǎng)站文件里的鏈接代碼,將對應的服務器地址、用戶名和密碼換成對應的就可以了。很簡單吧。
1)、數(shù)據(jù)不多的情況下,可以直接用數(shù)據(jù)庫連接工具,上面有數(shù)據(jù)庫拷貝到數(shù)據(jù)庫的功能來拷貝。
2)、數(shù)據(jù)量大的情況下,建議用下面的方式:
1、遠程服務上面安裝mysql服務器
2、本地的數(shù)據(jù)庫的數(shù)據(jù)導出到一個文件中
3、ftp或者其他方式,把這個數(shù)據(jù)庫文件傳到遠程服務器
4、用遠程服務中source命令,導入
本文題目:怎么上傳mysql數(shù)據(jù)庫,mysql數(shù)據(jù)庫上傳到服務器
轉載注明:http://chinadenli.net/article26/dsdjdcg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供自適應網(wǎng)站、企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站、企業(yè)建站、品牌網(wǎng)站建設、營銷型網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)