SQLの開発メモ(Tips)ITエンジニアの四方山話PHP、Perl、html、xmlの開発メモ、その他色々書いています。SQLMySQLがガラリと変わっていました2018年10月22日まだ完全移行ではありませんが、一応【ネットビジネス便利ツール】のSSL化とSQLサーバーの文字コード変換が終わりました。動いていない箇所の修正には時間がかかるので、とりあえず非SSLで動かします。何度もテストをするのは面倒なので、ページそのものをUTF-8へ、html5へ変更しました。PHPもバージョン5から7へ移行しています。その関係で久々にMySQLの部分のPHPのソースを触ることになりました。PHP7ではmysqlが使えなくなっています。何かで読んで知ってはいましたが、そうですね、修正しなくてはいけませんね。調べたらmysqliかPDOを使うことになるとのこと。mysqliを使うことにしました。改良版拡張モジュールここがわかりやすかったです。意外にハマってしまったのが、文字コードです。MySQLもWebページもUTF-8にしているのに化けてしました。古いmysqlのソースを見ていると文字コードを指定していました。言えばそうでした(このブログでも書いていました・・・MySQLの文字化け)。"UTF8");です。UTF-8ではなく、UTF8で指定します。テスト環境で色々触っているのですが、完全に本番と同じではないことでエラーになったり、バグも見つけてしまったりとなかなか前に進めません。自分が何をやっているのか、わからなくなりそうです。さあ、また明日続きをやろう。コメントTop↑SQLPostgreSQLのパスワード2018年10月21日SQLデータベースの文字コードを変更するため、新しい文字コードUTF-8でデータベースを作って全移動しています。データベースが変わるので、cronで動かしているバックアップ(ダンプ)やバキューム(最適化)を変更しなくてはいけません。cronから実行する場合、パスワードを入力できないので、【.pgpass】にIDやパスワード記録して、そこから読み込んで使います。ホスト名:ポート番号:データベース名:ユーザ名:パスワードを【.pgpass】に保存してホームディレクトリにアップロード、パーミッションを600にします。これでcronからバックアップや最適化が可能になります。副産物で、タームミナルエディタから接続する時も、PHPなどのソースでもパスワードを入力しなくてよくなります。【.pgpass】には複数のデータベースのパスワードを保存できます。【*】も使用可能です。どれでもOKの時は使用します。パスワードファイル例1*:*:db01:user1:pass1*:*:db02:user1:pass2例2*:*:*:*:pass3パスワードは平文で保存されますが、パーミッションが600ですし、大丈夫ということなんでしょう。ファイルが流出したら困りますよね。コメントTop↑ブログデータベースの文字コード変換2018年10月15日TwitterAPIのどツボにハマって遊んでしまいましたでTwitter関係を触ったら、このブログが文字化けし始めました。紺屋の白袴で、未だにEUC-JPでした。なったらついでにUTF-8にしてしまいます。いつかはやらねばと思っていたし、いやもっと優先順位の高い物があるので、その後のつもりだったのですが。