RSS

月別アーカイブ: 5月 2016

PHP / MySQL文字化け対策

デフォルトの設定ではラテン文字(ASCII)になっているので、文字化けが頻繁に発生します。

次のような環境で文字化けが発生したときの対策例です。

  • PHP 7.0 (mysqli)
  • MySQL 5.7
  • Ubuntu16.04LTS

まず、MySQL のテーブルの文字コード設定が utf8 になっているか確認します。

(コマンド入力例) mysql> show create table table1;

DEFAULT CHAR SET=latin1 になっていたら修正します。

(コマンド入力例) mysql> alter table table1 default charset=utf8;
必ず show create table で変更されたか確認します。カラムによっては latin1 のままになっていることがあります。そのような場合は、そのカラムの文字コードを変更します。

(コマンド入力例)alter table table1 change column1 column1 varchar(100) default charset=utf8;

PHP 側ですが、mysqli::set_charset(‘utf8’) を実行しておきます。これにより、PHPがUTF-8を使っていることを認識します。

 

 
コメントする

投稿者: : 2016/05/26 投稿先 MySQL, PHP

 

Oracle 11g パスワードの期限切れ対策

Oracle 11g で「パスワードがもうすぐ期限切れになるよ」というメッセージが表示されたら、下のようなコマンドを実行すると、期限切れがなくなります。(管理者で実行する)

alter profile default limit password_life_time unlimited;
 
コメントする

投稿者: : 2016/05/11 投稿先 Database

 

CentOS 5 で急に ssh 接続できなくなりました。

CentOS 5 はかなり古い OS ですが、メモリもディスクもあまり必要ないので、今も使っています。メモリなんて 256MB でも動きます。

ところが、ある日(久々に)起動してみると、TeraTerm で接続できません。ip a コマンドを打ってみると、eth0 の IPv4 アドレスが見当たりません。

ネットでさっそく調べてみると、CentOS 5 はさすがに古いため、なかなか情報がありません。CentOS 6 での情報を頼りに調べてみると、/etc/udev/rules.d/70-persistent-net.rules を調べるとよさそうなのですが、そのファイルは CentOS 5 にはありません。

その後、「/etc/sysconfig/network-scripts/ifcfg-eth0 を修正するとよい」みたいなことが書いてあったので開いてみると、MAC アドレスが ip a で表示された eth0 のものと異なっています。

 Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
HWADDR=00:0c:29:f5:56:f2
NETMASK=255.255.255.0
IPADDR=192.168.1.59
GATEWAY=192.168.1.1
TYPE=Ethernet

/etc/sysconfig/network-scripts/ifcfg-eth0 の MAC アドレスを eth0 のものに修正してネットワークを再起動したら接続できました。やれやれ。なぜ、設定がいつの間にか変わったのかわかりませんが、ネットにそういい投稿があるということは、そういうトラブルはけっこうあるようです。

 
コメントする

投稿者: : 2016/05/01 投稿先 Linux