XAMPP環境で、テーブルケース(テーブル名に大文字が使えない)問題
お世話様です。
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環境で、テーブルケース(テーブル名に大文字が使えない)問題
添付ファイル
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環境で、テーブルケース(テーブル名に大文字が使えない)問題
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できます。)
Katz Ueno
Re: XAMPP環境で、テーブルケース(テーブル名に大文字が使えない)問題
僕は 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 タブの中にペーストして実行します。
これで大文字小文字混じりのデータベースに戻すことができます。