XAMPP環境で、テーブルケース(テーブル名に大文字が使えない)問題

2021年11月22日 at 14:51

お世話様です。

11/22にテスト環境(XAMPP)に 9.0.1をインストールして使い始めました。
共有したい事項と、質問があります。


「共通事項」
新しいバージョンなので、折角だからphp8で使用したいと思いました。

インストールチェックで、
Concrete reguires GD library 2.0.1 with JPEG, PNG and GIF support.
Doublecheck that your installationhas support for all these image types.
となりました。

調べたところ、どうやらGD利用するときの設定が変わったらしい
\xampp\phpフォルダ内のphp.iniファイルを開き、以下の様にGDの設定を変更

GDで検索をかけて、extension=gdに変更。
この後、がApacheの再起動(重要!)

XAMPPターミナルでApacheを再起動したらエラーは出なくなりました。



「質問」テーブルケース

以前は、Windows環境で、lower_case_table_names MySQL 変数設定を 2 に設定すると「テーブル名が大文字・小文字混じりで作成できました」

my.cnf に
lower_case_table_names=2 を設定してmysqldを再起動でOKでしたが、
MySQL8.0では、 lower_case_table_namesが、
表示要素で変更ができません。

またmy.cnf自体も存在しなくなったようです。

仕方なく「警告を無視する」でテーブルを作成したら、
全部小文字のテーブル名になってしまいます。

テスト環境(Local)でなら
このままでも良く・一応サイトも問題なく表示・編集できるのですが、
本番環境ではこうも行きません。

本環境はリナックスなので、1から作るのは問題ないでしょうが、
テスト環境(開発環境)の物を、本環境に移す場合(テーブル名がそのまま小文字だけになると)心配・問題です。


何か方法があるのでしょうか?

宜しくお願いします。

タグ:

Re: XAMPP環境で、テーブルケース(テーブル名に大文字が使えない)問題

2021年11月22日 at 16:10
取り急ぎ
僕は XAMPP を使っていないので、ググっただけの回答なので、
動作確認などしていないのですが、

> またmy.cnf自体も存在しなくなったようです。

Xammp の操作パネルから、my.cnf ファイルを直接開けるようです。

参考
http://miya-system-works.com/blog/detail/42


> テスト環境(開発環境)の物を、本環境に移す場合(テーブル名がそのまま小文字だけになると)心配・問題です。

V9 対応がまだと書かれているのですが、
http://marketplace.concretecms.com/marketplace/addons/database-migration

この database migration が、小文字だけのテーブル名を大文字混じりのテーブルに変えてくれるアドオンです。

システムと設定 -> バックアップ -> Database Migration の管理画面で、

Database Migration タブを開いて、
Download Migration Script ボタンを押すと、テーブルの名前を変更してくれる SQL ファイルをダウンロードします。

本番サーバーの MySQL にデータを移行した後に、
変換 SQL を実行します。

実行方法は3通りあります。


1. SSH で
mysql -h [ホスト] -u [MYSQLユーザー] -p [データベース名] < [ダウンロードしたファイル]
で実行する。

2. PHPMyAdmin
phpmyadmin のインポート機能を使って、データベースを選択した中で SQL を実行。

3. PHPMyAdmin
SQL ファイルをテキストエディタで開いて、中身を全部コピーし、
phpmyadmin の SQL タブの中にペーストして実行します。

これで大文字小文字混じりのデータベースに戻すことができます。
 

Re: XAMPP環境で、テーブルケース(テーブル名に大文字が使えない)問題

2021年11月25日 at 13:06
改造プラレール・電車と スマホサイト
添付ファイル
13:04 (1 分前)
To concrete5-noreply

katz515さん

サポートメールありがとうございます。

まだ、苦戦しています。

my.cnfはリナックス環境だったのですね!
Windows環境で、my.cnfを探していました。
(Winでは、my.iniだったことをすっかり忘れていました)

ただ、my.iniを編集したら、XAMPPコントロールパネルからMySQL起動エラーとなってしまいました。
再度、my.iniを編集して元に戻そうと思っています。

Database Migrationは、確か、V 8.3.2の時に一度使っています。
今回、XAMPPの、ConcreteCMS9.0.1からダウンロードしようとすると
ダウンロードできませんでした。

ただ、V 8.3.2の時に使ったときは、
(この時はMAMPだったのですが)完全にはうまく行かず、

cocreteフォーラムで、どなたかに教えて戴いた
SQLのスクリプトを
phpMyAdminのSQL窓から実行してうまく行きました。

V 8.3.2のテーブルの数と名称が
V 9.0.1と同じであれば良いのですが?

古いパソコンのどこかにSQLスクリプトを保存していた様に思いますので、
探してみようと思います。
 

Re: XAMPP環境で、テーブルケース(テーブル名に大文字が使えない)問題

2021年11月26日 at 14:44
どうやら、Windows環境のXAMPPで、
my.iniの[mysqld]に「lower_case_table_names=2」 行を追加すると
エラーが起きMySQLを起動できない様です。

ログファイルにError:「unknown variable 'add lower_case_table_names=2'」がありました。
:Mysql:「lower_case_table_names変数を設定できません」というエラ-です。



数年前に、Windows環境のMAMPでも同様の問題が起こり
その時も、Windows環境のデフォルト値:lower_case_table_names=1 の問題で、
テーブル名が全て、アルファベット小文字で作成されてしまい

この時は、MAMPで、lower_case_table_names=2 に設定できたと思っていますが、記憶が定かではありません


結局、phpMyAdminから、SQL文を実行し、テーブル名を本来の大文字混じりのアルファベット名にリネームしました。

その時の、SQLスクリプトを古いPCの何処かに保存していると思いますので、探してみたいと考えています。
但し、V 8.3.2のテーブルの名称が、V 9.0.1と同じであれば良い前提です)

「途中まで再チャレンジ経過」
✅ my.iniの[lower_case_table_names=2]
記入 行を削除する
✅ MYSQLのエラーログファイルを削除する。
  「all Aria tables and delete all aria_log.######## files」
   場所は、\xampp\mysql\data で、ファイル形式は、aria_log.00000004
✅ phpMyAdiminから該当のデータベースを削除する
✅ my.iniの[mysqld]に「lower_case_table_names=2」を追加する
   場所は、\xampp\mysql\bin\my.ini
✅ phpMyAdiminを終了する。
✅  aria_log.######## files を削除する。

☒ XAMPPのMySQLを「Stop」させ、
  再度「Start」➡ スタートエラーとなり「Start」出来ない。

☒ aria_log.########の中身を確認するも、
mysqld.exeで、「未知の可変の「lower_case_table_names=2」追加 Error」で、設定できない。

※ MySQLがスタートできれば、その後データベースを作成して・・・と進めたかったのですが、残念な状態です。
(my.iniの[mysqld]に「lower_case_table_names=2 」記入が無ければ、MySQLは問題なくStartできます。)