macアップデートによりmysqlが破損?

投稿者: Anonymous

本日macのアップデートを実行した所、macにインストールしているmysqlのデータベースのテーブルにアクセスできなくなるという現象が発生しました。
(幸い開発テスト用データベースのため被害なし)

データベースは存在しており、 show tables でそのデータベース内の全てのテーブルも確認できます。
しかし、その全てのテーブルにアクセスしようとすると
ERROR 1146 (42S02): Table ‘iantenna.category’ doesn’t exist
という感じのエラーになります。

また、該当のデータベースを削除しようとしても
ERROR 1010 (HY000): Error dropping database (can’t rmdir ‘./iantenna’, errno: 66)
とでてエラーになります。

その原因は分かりました。
それは、データベース名の大文字小文字を「判別しなくなっている」ということでした。
例えば、 iAntenna という名前でデータベースを作っていた場合、今回の不具合が発生します。
MySQL上で iAntenna を iantenna と置き換えているみたいです。
(ただしshow databasesではちゃんとiAntenna表記)

同じ現象の発生した方いらっしゃいますか?
macのアップデートのせいなのかを確認したいです。

私はmacのアップデートを行って再起動した瞬間から発生致しました。

なにか、対策はあるのでしょうか

MySQLバージョン
Server version: 5.6.14 MySQL Community Server (GPL)

今回適用したMacアップデート(1つのみ)
OS X EI Capitan アップデート
10.11.3

解決

古いOSのMacが無いので憶測になってしまいますが、
設定が変わったのではなく設定が使えないようになったのではないのでしょうか?

lower_case_table_names=2はテーブル名をそのまま保持します。
大文字小文字も全てそのままです。
ただ参照しに行く際に全て小文字に置き換えてLookUpします。
要は大文字小文字を無視するわけです。

ただし
大文字小文字を区別しないファイルシステムでのみでしか動作しません。
恐らくアップデート前は大文字小文字を区別しなかったのが
アップデートで区別するようになったのではないでしょうか?

大文字小文字を区別したいのであればlower_case_table_names=0にする必要があります。

回答者: user10259

Leave a Reply

Your email address will not be published. Required fields are marked *