1

私がやりたいのは、phpmyadmin によって作成されたダンプから新しいデータベースを作成することだけです。このダンプは /var/www/iadmin/wikifresh/db/template.sql にあり、変更されることはありません。

このコマンドを 1 回実行したところ、データベースが正常に作成されました

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

そしてデータベースを作成しました。そこで、そのスクリプトを php exec コマンドの中に入れました: (注: $wikiname は、作成される新しい wiki の名前です)

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

このスクリプトを実行すると、次のようになります。

ERROR 1049 (42000): Unknown database 'test'

コマンドラインから実行しようとしても、この問題があります。

私は何を間違っていますか?

4

2 に答える 2

1

mysqlをデフォルトのデータベース名で呼び出すには、データベースが存在している必要があります。

MySQL の一部のディストリビューションには、たまたま というデータベースが同梱されていますtest。これが、最初にコマンドが成功した理由を説明しています。それ以来、そのデータベースを削除したと思いますか? 選択する前に、再作成する必要があります。

CREATE DATABASE IF NOT EXISTS test;

もちろん、代わりに上記のコマンドを配置し、その後にファイルのUSE test;上に置き、デフォルト データベースを指定せずtemplate.sqlに呼び出すこともできます。mysql

于 2012-11-12T16:02:01.377 に答える
1

そのマシンのMySQLサーバーにデータベース「test」が作成されていないようで、template.sqlには「CREATE DATABASE」コマンドがありません。したがって、最初に作成するか、'CREATE DATABASE' を template.sql に追加する必要があります。

于 2012-11-12T16:01:36.490 に答える