2016-08-17 9 views
0

GrailsでローカルファイルベースのH2 Hibernateデータベースを使用しています。H2データベースログインの問題

私はdataSource.groovyに2つの別々のファイルタイプのDBSの設定があります。

dataSource { 
    logSql = false 
    pooled = true 
    dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', '' 
    url = "jdbc:h2:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000" 
} 

dataSource_publish { 
    logSql = false 
    pooled = true 
    dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', '' 
    url = "jdbc:h2:/dbmak/devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE" 
} 

彼らの両方が、プロジェクトのルートディレクトリ内のファイルを生成します。

devDb.h2.db and dbmak.h2.db

最後に私がdBで行ったのは、 'sa'パスワードを変更することでした。これは、null以外の値に設定することを好みます。

私はユーザーのsa 'を介してdbconsoleにログインし、コマンドを使って、これをしなかった:正常に動作するように見えた

set password 'newPassword' 

org.h2.jdbc.JdbcSQLException: Wrong user name or password [28000-173] 

私は、元のヌル・パスワードなどで働いている他のログイン/パスワードの組み合わせを試してみた:私は今、私はエラーを取得するGGTSでアプリケーションを試してみて、再起動が

、上記のエラーが表示されます。

もう1つは、h2.dbファイルを最新のバックアップコピーに置き換えることですが、まだ成功していません。私は、これらの個々のアプリケーションデータベースではなく、「sa」パスワードを保持する休止状態のシステムデータが他の場所に存在するかどうか疑問に思っていました。システムが動作しているときにh2.dbファイルのコピーを持っていれば、今は失敗している変更済みのファイルと置き換えることができます。

もう1つ - 私が現在のサイズ(230kbのサイズではありません)のサイズを比較すると、debdb.h2.dbファイルとバックアップされたもの(サイズは1252kbです)サイズが違う場合、およびdbファイルのバックアップコピーを使用してアプリケーションを再起動しようとすると、アプリケーションの起動に失敗した後、サイズは230kbの失敗サイズに戻ります。

+0

このdBにはまだログインできません。たぶん誰かが、この休止状態のデータベースが、システムのユーザーデータをどこに保持しているのかという点でどのように構成されているのか、さらに詳しい情報を私に与えることができます。上で述べたように、2つのアプリケーションdBはgrailsアプリケーションのルートディレクトリにあり、実際の休止状態のシステムデータは、hibernate dB構造内の個々のアプリケーションdBへのアクセスを別々のファイルにすることを制御します。これを見つけることができたら、私はこの問題を解決することができますか?または、これにWebリンクがある場合は、 – mikek

答えて

0

私はこのログインの問題を解決しました。私は2つの別個のDbsを持っており、両方のパスワードをnull以外の値に設定しているので、別々のDbごとにパスワードを明示的に定義する必要があります。

dataSource { 
username = "sa" 

password = "value01" 

}このなし

dataSource_publish {

username = "sa" 
password = "value02" 

}

だから、DataSource.groovyに私は今、ログイン/パスワードの定義の2セットを持っています私はログイン&パスワードが自動的に設定されていると思う「sa」と「」(つまり、null)です。そして、起動時にdataSource_publishブロックがなければ、アプリケーションはnullパスワードでdataSource_publish dBにログインしようとしていました。

これを見ると、明らかです。

関連する問題