2012-08-27 43 views
0

當我遇到load infile data命令中local選項的規範時,我正在通過在dev.mysql上加載和從MySQL表中加載數據的規範。它說如果local未被使用,則如果給出了沒有前導組件的文件名,服務器在缺省數據庫的數據庫目錄中查找該文件。誰能告訴我這裏的默認數據庫是什麼意思,以及如何設置一個?它可以從MySQL本身設置,或通過一些服務器指令?MySQL中'默認數據庫'的含義

回答

1

默認數據庫是一個您使用USE子句調用或在登錄時指定。如果您使用SELECT * FROM tablename而不是SELECT * FROM databasename.tablename,則還使用默認數據庫。

編輯

只是爲了說清楚:默認的數據庫不是一個靜態的東西 - 它僅僅定義爲一個定義的時間點上定義的會話 - 例如如PIT和開始load data infile命令的會話。

+0

然後,根據上面的答案,如果'use'指定了一個數據庫,並且該指令指定了另一個數據庫,那麼哪個數據庫將具有優先級? – SexyBeast

+1

連接時會選擇[客戶端]部分中的任何一個 - 稍後任何USE語句(或客戶端連接中的任何覆蓋)都會更改它。不同的時間點,不同的默認數據庫 –

1

通常默認數據庫將在database PARAM的[client]標題下在你的配置(的my.ini/my.cnf中/等)指定,如例如:

[client] 
database = name_of_default_db 
+0

這是一個嚴重的指令嗎? – SexyBeast

+0

是的。這是一個服務器指令,在您的配置中指定。 – jornak

+0

那麼這是否意味着當PHP開始一個會話時,它不需要像'use foo'那樣發出一個命令,任何查詢都會在默認數據庫'foo'中查找表? – SexyBeast