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できます。)
 

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

2021年12月3日 at 20:31
すいません、
Xampp のバージョン名と、MySQL のバージョン番号、わかりますか?

ちょっと僕は手元に Xammp がないので、検索するしかないのですが、

いただいた Xampp のバージョンや MySQL のバージョン、そして Windows などのキーワードを入れたり入れなかったりで検索して、大文字・小文字の設定はどうすればいいかの記事を見つけて対処法を調べれるかなと思います。

すいませんが、よろしくお願いします。