2012-11-12 59 views
1

我想要做的就是創建一個由phpmyadmin創建的轉儲的新數據庫。 該轉儲位於:/var/www/iadmin/wikifresh/db/template.sql,並且不會更改。從php導出的sql創建mysql db

我跑一次這個命令,並創建了數據庫細

mysql test < /var/www/iadmin/wikifresh/db/template.sql 

,它創建的數據庫。於是,我把該腳本的PHP exec命令內: (注:$ wikiname是新的維基正在創建的名稱)

$dbwikiname = escapeshellarg($wikiname); 
exec("mysql $dbwikiname < /var/www/iadmin/wikifresh/db/template.sql"); 

現在,該腳本運行時,我得到:

ERROR 1049 (42000): Unknown database 'test' 

即使我嘗試從我的命令行運行它我有這個問題。

我究竟做錯了什麼?

回答

1

要使用默認數據庫名稱調用mysql,數據庫必須存在。

MySQL的某些發行版碰巧隨附一個名爲test的數據庫,這解釋了爲什麼您的命令一開始就成功了。一個假設你已經放棄了該數據庫?你需要嘗試選擇它之前重新創建它:

CREATE DATABASE IF NOT EXISTS test; 

當然,你可以改爲放置在上面的命令,隨後USE test;頂上你template.sql文件,然後調用mysql不指定一個默認的數據庫。

+0

這很好,謝謝,我將如何運行導入腳本呢?現在我有: mysql --user = uname --password = pword -e「testing Ryan

+0

沒關係,我明白了。謝謝! – Ryan

1

似乎你沒有在該機器的MySQL服務器上創建的數據庫'test',而template.sql沒有'CREATE DATABASE'命令。因此,您必須先創建它,或者將「CREATE DATABASE」添加到模板中..sql