月: 2014年1月

Windows7でWindows Updateしたらコード643で失敗した

Windows7でWindows Updateしたらコード643で失敗した。

調べてみると同じ現象の人がいた。

Windows Updateで失敗、エラーコード643の解決方法

 

自分の環境の場合Fix itはうんともすんとも言わなかったので、 .NET Frameworkの修復から行った。

修復したあとは再起動も要求されなかったけれど再度Windows Update したら正常にUpdateされた。

良かった良かった。

【MySQL】 Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation ‘like’

mysql5.0の環境で動いていたものをmysql5.5の環境に移行したら以下のような
エラーが発生した。。

General error: 1267 Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation ‘like’

このエラーは(utf8_general_ci,COERCIBLE)がサーバ側のコード
(latin1_swedish_ci,NUMERIC)がクライアント側のコード
ということらしい。
文字コードが違うからlikeで調べられないよっていうことっぽい?

よくわからないので参考URLなどをもとに調査。

クライアント側の文字コードをプログラムで調べるとASCIIになっていたので、
UTF-8に変換するのか?とか思ってやってみるもASCIIで取り扱われる。。

そもそもutf8_general_ciとなっているサーバ側のカラムはDATE型。
DATE型にUTF-8とかあるのかよくわからない。
型の問題なのかと思ってとりあえずカラムを文字列型に変更。

ALTER TABLE `テーブル` CHANGE COLUMN `対象カラム` `対象カラム` VARCHAR(10) NOT NULL  ;

カラム側を文字列に変換したらエラーが無くなった。

でもカラムの意味としてはDATEが正しいのでカラム型を変換するのは気持ち悪い・・・。
さらに調査。。その後以下のページを発見。

Illegal Mix Of Collations While Comparing Datetime with String

selectするときにデータベース側の列をDATE_FORMATで変換してあげればいいということらしい。

とりあえず動いた!

「llegal mix of collations」のエラーは色々な原因が
考えられるややこしい問題なんだということがわかった。

■参考URL

mysql の utf8_general_ci と utf8_unicode_ci の混在でエラー

Illegal mix of collations:ほんとに漢字コードの問題はややこしい ・・・ 【MySQL】

migrateでInnoDBの文字コードをutf8に

ω・)。○(思いつき広場 Illegal mix of collations

MYSQLへの接続を永久UTF8化:Illegal mix of collations

concrete5の検索ブロックで mysql error: Illegal mix of collations for operation ‘like’

Illegal Mix Of Collations While Comparing Datetime with String

MySQL DATE_FORMAT(date,format)

Vagrantメモ

あけましておめでとうございます。

今年も宜しくお願いいたします。

今年の1発目は正月の間に触っていたVagrantについてのまとめ。

インストール方法や使い方は以下の参考サイトを参照
とりあえずドットインストール見ておけばいいと思う。

ドットインストール:Vagrant入門 (全13回)
※共有フォルダとかProvisioningの説明もあり

Windows7にVirtualBoxとVagrantをインストールしたメモ – k-holyのPHPとか諸々メモ

Vagrantの備忘録 | jekylog

Vagrant – naoyaのはてなダイアリー

Vagrantで固定IPのVMを作ってみたら超簡単だった

Bridged Networking

A list of base boxes for Vagrant

CentOS 上で Vagrant を導入するまでのメモ(CUI)

Vagrantのboxに少しだけ手を加えたものをboxとして取っておきたい

以下コマンドなどメモ書き

■バージョン確認

vagrant -v

■Boxの追加

vagrant box add 名前 boxのURL

■今あるBoxの確認

vagrant box list

■初期化

vagrant init

■仮想サーバの起動

vagrant up

■仮想サーバの状態確認

vagrant status

■仮想サーバの停止

vagrant halt

■データを破棄

vagrant destroy

■仮想サーバを再起動

vagrant reload

■仮想サーバの一時停止

vagrant suspend

■仮想サーバへの接続

vagrant ssh

■ネットワーク設定(ブリッジ接続)※hostがwindowsの時
Vagrantfileをエディタで開き以下の場所のコメントアウトを外す

#config.vm.network :public_network
↓
config.vm.network :public_network

保存後に仮想サーバを再起動する

■MacBookAirでブリッジの設定をした時
以下のコマンドを実行しアダプタの名前を取得

$ VBoxManage list bridgedifs | grep ^Name
Name:            en0: Wi-Fi (AirPort)

Vagrantfileをエディタで開き以下の設定をファイル末尾に追記

Vagrant::Config.run do |config|
  config.vm.network :bridged, :bridge => "en0: Wi-Fi (AirPort)"
end

保存後に仮想サーバを再起動する

■vagrantにcommit、rollback機能を追加できるSaharaをインストールする

vagrant gem install sahara

□sandbox モードに入る

vagrant sandbox on

□sandbox モード on に入った時点まで巻き戻す!

vagrant sandbox rollback

□変更を確定

vagrant sandbox commit

■任意のタイミングでOSのスナップショットを取得する

vagrant package