當前位置:首頁 » 編程語言 » sql文件如何發布
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql文件如何發布

發布時間: 2023-08-03 18:32:18

❶ 如何在mysql中導入/導出超大的sql文本文件

在mysql中導入/導出超大的sql文本文件,我們可以使用很多方法實例,如有:客戶端直接命令操作,分塊導入,客戶端用source命令操作等等。
在實際工作中,有時經常地時行mysql資料庫的導入和導入操作,但對於大型sql文件導入時,phpmyadmin是不行的,有太多限制,比如記錄,內存等!

多種方案收集,如下:
方案一:客戶端直接命令操作(此方法是我比較喜歡的)

剛恢復一個電商網站mysql備份數據,此備份文件有300多M,因為phpmyadmin支持上傳有限,文件太大IE停止響應,所以在本地用

代碼如下
復制代碼

mysql -u root -p root jiahuibuydb<
c:/yebihai.sql

但沒導入進去,出來一大堆mysql的參數提示,不認輸入的命令參數,後來寫成下面這個樣子,就是去掉了參數和數據之間的空格

代碼如下
復制代碼

mysql -uroot -proot jiahuibuydb<
c:/yebihai.sql

導入就OK了

導出命令:

a)導出整個庫

mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名

代碼如下
復制代碼

mysqlmp -u root -p student
>d:/yebihai.sql

b)導出一個表

mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名

方案二:分塊導入

代碼如下
復制代碼

<?
//用來快速Mysql的大數據備份
//使用前請首先按照代碼注釋修改要導入的SQL文件名、資料庫主機名、資料庫用戶名、密碼、資料庫名
//同時將資料庫文件和本文本一起ftp導網站目錄,然後以web方式訪問此文件即可

$file_name="sql.sql"; //要導入的SQL文件名

$dbhost="localhost"; //資料庫主機名
$dbuser="user"; //資料庫用戶名

$dbpass="pass"; //資料庫密碼
$dbname="dbname";
//資料庫名

set_time_limit(0); //設置超時時間為0,表示一直執行。當php在safe
mode模式下無效,此時可能會導致導入超時,此時需要分段導入
$fp = @fopen($file_name, "r") or
die("不能打開SQL文件 $file_name");//打開文件
mysql_connect($dbhost, $dbuser,
$dbpass) or die("不能連接資料庫 $dbhost");//連接資料庫
mysql_select_db($dbname)
or die ("不能打開資料庫 $dbname");//打開資料庫
mysql_query('set names utf8');

echo "正在執行導入操作";
while($SQL=GetNextSQL()){
if
(!mysql_query($SQL)){
echo
"執行出錯www.111cn.net:".mysql_error()."
";
echo
"SQL語句為:
".$SQL."
";
};
}
echo
"導入完成";

fclose($fp) or die("Can』t close file $file_name");//關閉文件

mysql_close();

//從文件中逐條取SQL
function GetNextSQL() {

global $fp;
$sql="";
while ($line =
@fgets($fp, 40960)) {
$line =
trim($line);

//以下三句在高版本php中不需要,在部分低版本中也許需要修改
$line =
str_replace("////","//",$line);
$line =
str_replace("/』","』",$line);
$line =
str_replace("//r//n",chr(13).chr(10),$line);
// $line
= stripcslashes($line);
if (strlen($line)>1)
{
if ($line[0]=="-" && $line[1]=="-")
{

continue;
}

}

$sql.=$line.chr(13).chr(10);
if
(strlen($line)>0){
if
($line[strlen($line)-1]==";"){

break;
}

}
}
return $sql;

}
?>

方案三:客戶端用source命令操作

比較好的辦法仍是用mysql的source命令:

一、在客戶端下操作:

1、進行入客戶端 代碼如下
復制代碼

2、mysql>use 資料庫名(如果沒有,先建一個)

3、mysql>set names 'utf8'; (一般看導入的是什麼格式的文件)

4、mysql>source d:/aaa.sql;

即可正常導入,如果有錯,可以看出錯提示

二、PHP文件操作:

建立a.php

裡面有下面內容 代碼如下
復制代碼

mysql_connet('xxxx');

mysql_query("set names 'utf8'");

mysql_query("source d:/aaa.sql'");

原理同上,主要方便了無法使用命令行用戶的操作

方案四:下面教大家一個簡單有效的辦法,適合不會使用命令窗口的非技術人員,可以導入任意大小的mysql資料庫,理論上不論您的資料庫備份文件多大,都可以導入

方法如下:

1.將資料庫備份文件(如backup.sql)上傳至網站根目錄。

2.將以下代碼保存為mysql.php文件,上傳至網站根目錄。

代碼如下
復制代碼

system("mysql -hdbhost -udbuser -ppassword dbname < backup.sql");

print "導入成功";

其中

dbhost 改為您的資料庫伺服器地址(小提示:一般主機默認資料庫伺服器地址是:localhost)

dbuser 改為您的資料庫用戶名

password 改為您的資料庫用戶密碼

dbname 改為您的資料庫名(導入的時候此庫必須先建立好,否則會失敗並且不會進行任何提示)

backup.sql表示通過ftp上傳到網站根目錄下資料庫文件的文件名(該文件是解壓縮後的文件)

3.在瀏覽器裡面訪問mysql.php, 那麼就在瀏覽器裡面輸入/mysql.php,只要瀏覽器一訪問這個mysql.php文件,數據就開始導入,數據導入結束後,就會顯示「導入成功」的字樣。這個時間根據您要導入的數據大小決定,一般時間很短

❷ 如何導出sql文件

1. 概述
MySQL資料庫的導入,有兩種方法:
1) 先導出資料庫SQL腳本,再導入;
2) 直接拷貝資料庫目錄和文件。
在不同操作系統或MySQL版本情況下,直接拷貝文件的方法可能會有不兼容的情況發生。
所以一般推薦用SQL腳本形式導入。下面分別介紹兩種方法。
Linux下:
2. 方法一 SQL腳本形式
操作步驟如下:
2.1. 導出SQL腳本
在原資料庫伺服器上,可以用phpMyAdmin工具,或者mysqlmp(mysqlmp命令位於mysql/bin/目錄中)命令行,導出SQL腳本。
2.1.1 用phpMyAdmin工具
導出選項中,選擇導出「結構」和「數據」,不要添加「DROP DATABASE」和「DROP TABLE」選項。
選中「另存為文件」選項,如果數據比較多,可以選中「gzipped」選項。
將導出的SQL文件保存下來。
2.1.2 用mysqlmp命令行
命令格式
mysqlmp -u用戶名 -p 資料庫名 > 資料庫名.sql
範例:
mysqlmp -uroot -p abc > abc.sql
(導出資料庫abc到abc.sql文件)
提示輸入密碼時,輸入該資料庫用戶名的密碼。
2.2. 創建空的資料庫
通過主控界面/控制面板,創建一個資料庫。假設資料庫名為abc,資料庫全權用戶為abc_f。
2.3. 將SQL腳本導入執行
同樣是兩種方法,一種用phpMyAdmin(mysql資料庫管理)工具,或者mysql命令行。
2.3.1 用phpMyAdmin工具
從控制面板,選擇創建的空資料庫,點「管理」,進入管理工具頁面。
在"SQL"菜單中,瀏覽選擇剛才導出的SQL文件,點擊「執行」以上載並執行。
注意:phpMyAdmin對上載的文件大小有限制,php本身對上載文件大小也有限制,如果原始sql文件
比較大,可以先用gzip對它進行壓縮,對於sql文件這樣的文本文件,可獲得1:5或更高的壓縮率。
gzip使用方法:
# gzip xxxxx.sql
得到
xxxxx.sql.gz文件。
2.3.2 用mysql命令行
命令格式
mysql -u用戶名 -p 資料庫名 < 資料庫名.sql
範例:
mysql -uabc_f -p abc < abc.sql
(導入資料庫abc從abc.sql文件)
提示輸入密碼時,輸入該資料庫用戶名的密碼。
3 方法二 直接拷貝
如果資料庫比較大,可以考慮用直接拷貝的方法,但不同版本和操作系統之間可能不兼容,要慎用。
3.1 准備原始文件
用tar打包為一個文件
3.2 創建空資料庫
3.3 解壓
在臨時目錄中解壓,如:
cd /tmp
tar zxf mydb.tar.gz
3.4 拷貝
將解壓後的資料庫文件拷貝到相關目錄
cd mydb/
cp * /var/lib/mysql/mydb/
對於FreeBSD:
cp * /var/db/mysql/mydb/
3.5 許可權設置
將拷貝過去的文件的屬主改為mysql:mysql,許可權改為660
chown mysql:mysql /var/lib/mysql/mydb/*
chmod 660 /var/lib/mysql/mydb/*
把mysqlmp出來的數據修改一下。除了要把表增加上) TYPE=MyISAM CHARACTER SET gbk;以外,在下面再增加一句SET NAMES GBK;
這樣,數據就可以平滑的導入4.1了,而不必怕出現亂碼。
Windows下:
DOS窗口
開始->運行->cmd
導出為:mysqlmp -u 用戶名 -p --opt 資料庫用戶名 > 資料庫名.sql
輸入你的資料庫密碼!
導入為:mysql -u 用戶名 -p 資料庫用戶名 < 資料庫名.sql (要在當前目錄下操作)

❸ sql資料庫如何導出

1、打開SQL Server,找到需要導出的資料庫。

如何配置 SQL Server 發布伺服器計算機

Configuration Manager 2007 不支持站點資料庫完全復制,只應復制特定的站點資料庫對象。注意 在Configuration Manager 2007 安裝中,為支持站點系統訪問站點資料庫副本,必須復制 98 個對象(48 個表、44 個存儲過程、4 個視圖和兩個用戶定義的函數)。在 Configuration Manager 2007�0�2SP1 安裝中,為支持站點系統訪問站點資料庫副本,必須復制 99 個對象(49 個表、44 個存儲過程、4 個視圖和兩個用戶定義的函數)。 在開始執行這些過程之前,確保已完成復制前必需任務。有關必需的復制前安裝任務的詳細信息,請參閱 如何執行必需的復制前安裝任務。可以使用以下過程來配置宿主站點資料庫的 SQL Server 以發布要復制的站點資料庫,並充當其自身的分發伺服器。配置宿主站點資料庫的 SQL Server 以發布要復制的站點資料庫在連接到宿主站點資料庫的 SQL�0�2Server 的 SQL Server 2005 SQL�0�2Server�0�2Management�0�2Studio 控制台中,右鍵單擊「復制」,然後單擊「配置分發」以啟動配置分發向導。在「歡迎」頁面上,單擊「下一步」(如果顯示)。在「分發伺服器」頁面上,選擇「『』將充當自己的分發伺服器;SQL Server 將創建分發資料庫和日誌」。如果SQL Server 代理服務尚未啟動,必須在「啟動 SQL Server 代理」頁面上將其啟動。注意 如果SQL Server 服務帳戶對 SQL Server 計算機沒有管理許可權,必須手動啟動 SQL Server 代理服務並將其配置為在 SQL Server 啟動時自動啟動。 在「快照文件夾」頁面上,輸入空的共享網路資源,訂閱伺服器 SQL Server 將訪問該資源以檢索存儲在其中的站點資料庫快照信息。重要 必須為快照文件夾指定有效的 UNC 共享路徑。對快照文件夾使用本地驅動器路徑將不支持在訂閱伺服器 SQL Server 計算機上創建的請求訂閱。 在「分發資料庫名稱」頁面上,指定要創建以支持站點資料庫分發的系統資料庫的資料庫名稱和資料庫文件安裝目錄。注意 分發資料庫文件安裝路徑必須是 SQL�0�2Server 計算機上的本地位置,並以驅動器號和冒號開頭(例如,C:)。 在「發布伺服器」頁面上,選擇宿主站點資料庫的 SQL Server,在它變為發布伺服器時將使用分發伺服器資料庫。在「向導操作」頁面上,選擇「配置分發」。在「完成向導」頁面上,驗證將用於配置分發的設置,然後單擊「完成」。完成分發配置之後,單擊配置頁面上的「關閉」。配置新的本地發布以獲得所需的 SQL Server 副本站點資料庫信息在連接到宿主站點資料庫的 SQL�0�2Server 的 SQL Server 2005 SQL�0�2Server�0�2Management�0�2Studio 控制台中,展開「復制」,右鍵單擊「本地發布」,然後單擊「新建發布」以啟動新建發布向導。在新建發布向導歡迎頁面上,單擊「下一步」。在「發布資料庫」頁面上選擇站點資料庫。在「發布類型」頁面上,選擇「事務發布」。在「項目」頁面上,選擇要作為復制項目發布的必需站點資料庫對象。確定要發布的必需站點資料庫對象: 在SQL�0�2Server�0�2Management�0�2Studio 控制台中,右鍵單擊站點資料庫名稱並選擇「新建查詢」。 在SQL�0�2Server�0�2Management�0�2Studio 結果窗格中,輸入以下查詢:Select�0�2ObjectName�0�2from�0�2ReplicatedObjects�0�2where�0�2SiteSystemType�0�2=�0�2'MP',然後單擊「執行」。注意 支持伺服器定位器點站點系統以訪問 SQL�0�2Server 站點資料庫副本所需的對象將作為管理點復制的對象查詢的一部分返回。完成此步驟之後,不需要為復制配置其他對象以支持為訪問站點副本而配置的伺服器定位器點站點系統。如果僅配置 SQL�0�2Server 站點資料庫復制以支持伺服器定位器點訪問 SQL Server 副本,您可以使用以下查詢:Select�0�2ObjectName�0�2from�0�2ReplicatedObjects�0�2where�0�2SiteSystemType�0�2=�0�2'SLP'。 在「項目問題」頁面上,確保已為復制選擇列出的表和對象。在「篩選錶行」上,不要添加任何錶篩選。在「快照代理」頁面上,選擇「立即創建快照並使快照保持可用狀態,以初始化訂閱」。選擇「計劃在以下時間運行快照代理:」並接受默認計劃。或者,您可以單擊「更改」,以根據自己的復制要求為快照代理配置日常計劃頻率。在「代理安全性」頁面上,單擊「安全設置…」並配置用於快照代理和日誌讀取器代理的帳戶。在「向導操作」頁面上,驗證是否已選中「創建發布」。在「完成向導」頁面上,輸入發布的名稱並檢查發布設置,然後單擊「完成」。在「創建發布」頁面上,在創建發布之後單擊「關閉」。