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