SSHで接続できない

イメージ
 Ubuntuを24.04→26.04 時間があったので、メインマシンのUpgradeを実施。 とはいえ、とはいえ、システムディスク(/)とデータディスク(/home)を分けているのでクリーンなインストールを実施。 (1) USBでUbuntu26.04を起動 (2) /home/user → /home/user_old にリネーム (3) 26.04をインストール これで、/home/user_oldにこれまでの環境が残ったまま、新規userでインストールすれば完了。もともとのuserが使用していたuser_id:1000のままなので、どちらのフォルダも見ることができる。 あとは、使用するソフトをインストールし  /home/user_old 以下から、利用する設定ファイル等をコピーして動作確認するだけ。 Dropbox MEGA などは、先にコピーしてから、フォルダ同期設定をすることで、ダウンロードなどはチェックのみで完了する。 thunderbird brave browser vscode dbeaver-ce typora obsidian LMStudio ollama あたりを移行してほぼ終了 .sshはそのままコピーして完了。 と思っていたら、何故かサーバによっては接続できない場合があることに気づいた。 $ ssh vps 何も返ってこず、接続できない。 でこれまで接続できていたのに、うまく行かない?? 詳細を確認しながら、チェックすることに。 $ ssh -vv vps debug1: OpenSSH_10.2p1 Ubuntu-2ubuntu3.5, OpenSSL 3.5.5 27 Jan 2026 debug1: Reading configuration data /home/user/.ssh/config ︙ debug2: we sent a publickey packet, wait for reply debug1: Server accepts key: /home/user/.ssh/id_rsa RSA SHA256:n5ocPbCvMV4FGFof … … … … … pBuJ/8r/kHGANY explicit agent のように、 認証完了後にシェルが起動せず、応答がない状態になっている。 具体的には ...

PostgreSQLでEUC_JPのテーブル

今さらEUC_JPって感じだけど

すでにサーバ環境がUTF-8をデフォルトとするようになって、随分経っているので必要となるケースは少ないんだけど、今回はハマりました。

通常であれば、UTF-8でDBを構築していけば、特に問題もなく引っかかるようなところは何もないのだけれど…。
サーバの移行のため、仕方なくEUC_JPを使うことに。

旧データベースは、プログラムもEUC_JPで構築されている。
プログラムの書き換えは動作検証に時間がかかるので、そのまま動かしたい。

まぁPostgreSQLは文字コードを選べるので、問題ないだろうと…。

サーバにPostgreSQLをインストール

これは問題なく、いつも通りapt-getで入れてオシマイ。
何も引っかかるところはありません。

ついでに、phppgadminも入れておく。
これで作業が簡単になる。

旧サーバにも入っているので、確認がしやすいですな。
若干、バージョンが異なっているので、その点だけ要注意と。

さてphppgadminを使ってDBをEUC_JPで作ろうとしたら、上手くいかない。
createdb: database creation failed: ERROR:  encoding EUC_JP does not match locale en_US.UTF-8
見慣れぬエラーですね…。しかもDBは作成してくれない。

何か操作を間違えたのかと、見直すが、特に手順に問題はない。
「ERROR:  encoding EUC_JP does not match locale en_US.UTF-8」でググってみると 、最初に答えが見つかった。

名称未設定:Ubuntu12.04LTSのPostgreSQLでEUC_JPのデータベースを作る」とまんま同じ内容だった。

これによると、
createdb -T template0 -E EUC_JP --locale=C dbname
と、localをCで作りなさいということらしい。

試しに、コンソールから試してみると、確かに文句も言われず作成してくれる。

phppgadminでもできるはず 

この方法は、postgresユーザで作業するコンソール上のコマンドなので、phppgadmin上で異なるユーザで作成したい。

試してみるが、どこに設定すべきか分かりにくい。

何度か試してみると、図のようにすれば思うように作成できることがわかった。

Template→template0を選択(UTF-8の時はtemplate1)
エンコード→もちろんEUC_JP
CollectionとCharacterType→Cで設定

これでOKだった。

ここまでくれば、あとはdumpデータを突っ込んでやればOK。

と思ったら、「サーバが指定されていません」って…。見たことのあるメッセージや!
半年以上経つと、すっかり忘れて同じミスをしでかす。

だからこうやってブログにまとめておく必要があるんだなぁwww

ちゅうことで、php.iniを書き換えて解決とな。


コメント

このブログの人気の投稿

MEGAにも弱点があった?

Ubuntu24.04 でGUIが死んだ

VirtualBoxでUSBを使う方法が分かった!