PostgreSQLのCollation警告を直しとく
Metasploitを久々に使おうとしたら、こんな感じで、「OSの照合順序のバージョンと、PostSQLの照合順序のバージョンが違うよ」って警告が出た。ちなみに、これはMetasploitが出しているのではなく、psql
を実行すると出るので、PostgreSQL
が出しているもの。
WARNING: データベース"msf"で照合順序バージョンの不一致が起きています
DETAIL: データベースは照合順序バージョン2.37で作成されていますが、オペレーティングシステムはバージョン2.38を提供しています。
HINT: このデータベース内でデフォルトの照合順序を使用している全てのオブジェクトを再構築して、ALTER DATABASE msf REFRESH COLLATION VERSIONを実行するか、正しいバージョンのライブラリを用いてPostgreSQLをビルドしてください。
psql (16.2 (Debian 16.2-1))
SSL接続(プロトコル: TLSv1.3、暗号化方式: TLS_AES_256_GCM_SHA384、圧縮: オフ)
"help"でヘルプを表示します。
とはいえ、Metasploit
が勝手にインストールしたPostgreSQL
なので、クレデンシャル情報を確認。
$ sudo cat /usr/share/metasploit-framework/config/database.yml
ここに接続情報が書いてある。パスワードはbase64ぽい形式をしているが、そのままコピペでOKだった。
$ psql -U msf -h localhost msf
> パスワード入力
以下のSQLを実行して、msf
データベースのみ、OSのバージョンと合わせる。
msf=> ALTER DATABASE msf REFRESH COLLATION VERSION;
NOTICE: バージョン2.37から2.38への変更
ALTER DATABASE
これで完了。