教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
お世話様です。
MAMPのMySQL5.6.34で作成したものを
xServerのMySQL5.7.1にデプロイしたら、ドライバーエラーになるのでしょうか?
エラーメッセージは、以下の内容です。
それとも他に根本的に間違っているのでしょうか?
「Base table or view not found」となっていますが、どのテーブルまたはビューがないのかも分かりません。
「AbstractMySQLDriver.php」を見てみたのですが・・・
Doctrine \ DBAL \ Exception \ TableNotFoundException
An exception occurred while executing 'SELECT t0.pkgID AS pkgID_1, t0.pkgHandle AS pkgHandle_2, t0.pkgVersion AS pkgVersion_3, t0.pkgIsInstalled AS pkgIsInstalled_4, t0.pkgAvailableVersion AS pkgAvailableVersion_5, t0.pkgDescription AS pkgDescription_6, t0.pkgDateInstalled AS pkgDateInstalled_7, t0.pkgName AS pkgName_8 FROM Packages t0 WHERE t0.pkgIsInstalled = ? ORDER BY t0.pkgID ASC' with params [1]: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'aitc_c5840db.Packages' doesn't exist
宜しくお願いします。
Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
ありがとうございます。
aitc_c5840dbは、データベース名で、database.phpの中で、'database' => 'aitc_c5840db',と指定していますが、"aitc_c5840db"というテーブルは作成した覚えがないのですが、、、
Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
p.s. ローカルに置いてあるものと内容は変わらないように思えます。
localhostでは何の問題もなく動いているのですが、、、
p.s.2. エラーの発生しているPDOStatement.phpも見たのですが意味を理解できません。
色々調べてはいるのですが、移行(マイグレーション)時のパーミッション()で、ユーザとか権限とかが、合わないとかが問題の様な気もしますが、、、
Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
宜しくお願いします。
Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
テーブル名が小文字なのでエラーが出ています。
windowsでは大文字小文字を区別しないのですが、大抵のレンタルサーバーはlinuxなので、区別され、別のテーブルと判断されます。
修正方法としては、phpmyadminなどでテーブル名を変更していくか
こちらは正しく動くか検証が必要だと思いますが、
テーブル名を一括で変更してくれるアドオンもあるようです。
http://www.concrete5.org/marketplace/addons/database-migration
Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
ありがとうございます。
Windowsで開発しています(直接xserver側で行ったものは正常です)
教えていただいた「大文字・小文字」の問題は悩ましいですね・・・そこまで考えが及びませんでした。
教えていただいた、phpmayadminでテーブル名を変更するしかないとしても、1000を超えるTable&Viewの小文字部分のどこを変えるか(Xsever側で開発したものと比べながらとなりますし、悩ましいところです)
確かに「concrete5導入とサイト制作の教科書」ではMacを使って解説されていますが、Windowsで行う場合の注意事項にTable名のことは載っていなかったと思いますし(MAMPでそもそもTable名をつけること自体ないと思うのですが///)
p.s.
2018/07/15 Database Migration Tool を試してみました、しかし状況は変わらずです。(Logにも明確に載ってこない)
localでDatabase Migration Tool をあてて、dbをxserver側でインポートし直したのですが、
状況変わらずです。(localはその後も問題なしです)
ただ、「my.iniに後続コンフィギュレーションを持っている必要がある」というところがクリアになっておらず、C:\MAMP\conf\mysql\my.iniのどこを確認し、修正が必要なのかが分かっておりません。
p.s. 2018/07/17
ただ、Database Migration Tool のメッセ―ジでlower_case_table_names=0と表示され
どうやら「my.iniに後続コンフィギュレーションを持っている必要がある」というメッセージから
my.iniに設定が必要なのはなんとなくわかたのですが、my.iniのどの位置にlower_case_table_namesをどの様に設定したら良いかが分からずじまいのままです。
Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
ありがとうございます。
おっしゃっている「クリーンインスト―ルしてから・・・」は、xServer側でconcrete5をクリーンインストールする。ということでしょうか?
Locallhost側でconcrete5をインストール後にstuccoを入れて色々モディファイをして、「教科書」の手順で、まずconcrete5をのファイルをアップロードして、次にdbをバックアップ(local側でエクスポート)してから、Xserver側にインポートし、db情報のdatabase.phpを変更したのですが,,,
Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
手順は・・・
1.ローカル(Windows)のSQLを保存
2.Xserverに、ローカルで制作していたconcrete5のデーターを丸々アップロード
3.Xserverにアップした、application > config内のデーターを全部削除
4.Xserverのconcrete5をクリーンインストール
(MySQLの追加等は、予めしておいて下さい)
5.インストール完了後、XserverのMySQLのデーターを削除。
削除は、phpmyadminでもサーバー管理画面から該当のDBを削除して作り直すでも可。
6.phpmyadminからローカルで保存したSQLをインポート
7.サイトの確認
以上です。
「教科書」の手順で、まずconcrete5をのファイルをアップロードして、次にdbをバックアップ(local側でエクスポート)
ここまでの手順(上記手順だと2までになります)はいいのですが、一度クリーンインストールしないとXserverはDBのインポートでエラーが出るので、Xserverの場合自分はこのやり方で対応しています。
.htaccessの確認も忘れないようにしてください。
Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
ご丁寧に手順を教えていただいてありがとうございます。
xserverはクセがあるのですね。
そういえば、インポート時に気になるメッセージがでていましたが「はい」で応答してもなにも変わらなかった様に思います。メッセージはキャプチャしていたのでこの様なものでした「お使いのブラウザは、このドメインに対してのphpAdminの環境設定を(Web Storageに)保存しています。現在のセッションにその設定を読み込んでもよろしいですか? はい/いいえ」 このメッセージが影響しているのかどうかわかりませんが、
教えていただいた手順でやってみます。ありがとうございました。
p.s.
2018/07/15 教えていただいた手順で行ってみましたが、状況変わらずです。
ただ、application > config内のデータを全部削除だけだと、
4の手順の前の、Xserver側で、concrete5のダウンロードとその後の自動解凍の時点でpublic_html配下に
他のホルダがあることで「ダウンロード、展開に失敗しました。」となりました。
そこで、public_html配下ホルダをリネームしておいて、クリーンインストールし
その後は、教えていただいた手順で終えましたが、状況は変わらずでした。
その後、local側とServer側のフォルダ(特にServer側のフォルダを追加)やFileを比較(Server側のfileをダウンロードしてlocal側のFileとWinMergeで比較し、必要都度Server側のfileを修正)しながら、追加や入れ替えを行って見たものの状況は変わらずでした。(.htaccessは、上手く行っているServer側の記述を参考に修正も)
Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
Xserver側で、concrete5のダウンロードとその後の自動解凍の時点でpublic_html配下に
他のホルダがあることで「ダウンロード、展開に失敗しました。」となりました。
***
この部分がよくわからないのですが、どういう事でしょうか?
SSHを利用しているとかですか?
SSHを利用しての解凍は、パーミッションの関係でエラーが出た過去がありそれから使っていません。
代わりに、ローカルのファイルをzipにしてFTPでアップしてからPHPのZipArchiveで解凍しています。
サーバーのルートにインストールするという事で認識していましたがそれでよろしいでしょうか?
既存の稼働しているサイトがある場合は、新規でフォルダを作ってとなりますけど、その場合も本公開時にちょっと癖があります・・・
***
その後、local側とServer側のフォルダ(特にServer側のフォルダを追加)やFileを比較(Server側のfileをダウンロードしてlocal側のFileとWinMergeで比較し、必要都度Server側のfileを修正)しながら、追加や入れ替えを行って見たものの状況は変わらずでした。
***
これはアップしたデーターが欠損しているという事ですか?
だとしたらアップロードからやり直したほうがいいと思います。
サーバーにアップするファイルはapplication > config内のデーター意外、ローカルと同じ必要があります。
Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
連絡ありがとうございます。
***
Xserver側で、concrete5のダウンロードとその後の自動解凍の時点でpublic_html配下に他のホルダがあることで「ダウンロード、展開に失敗しました。」となりました。
***この部分がよくわからないのですが、どういう事でしょうか?
→ 教えていただいた手順2で、「Xserverに、ローカルで制作していたconcrete5のデーターを丸々アップロード 」とあります。
これでXserver側のドメイン/public_htmlの配下に、以下のフォルダ(application ,concrete ,packages ,updates )とファイル(.htaccess ,LICENSE.TXT ,composer.json ,composer.lock ,index.php ,robots.txt )がアップされますよね?
(それとも・ここから理解が間違っているのでしょうか?)
SSHを利用しているとかですか?
SSHを利用しての解凍は、パーミッションの関係でエラーが出た過去がありそれから使っていません。代わりに、ローカルのファイルをzipにしてFTPでアップしてからPHPのZipArchiveで解凍しています。
→ SSHは利用していますが、この例の場合は外して通常のFTPでアップしています。
その後、
手順3・で「Xserverにアップした、application > config内のデーターを全部削除」
ここで、config内:フォルダのdoctrine,generated_overrides、php(app.php, database.php)が削除されることになります。よね?
その後、
手順4で、concrete5をクリーンインストールするのですが、
concrete5をクリーンインストールする為に、
http://concrete5-japan.org/help/5-7/developer/installation/simple-downloader/
から、concrete5 CMS Simple Downloadereをダウンロードしてドメイン/public_htmlに置きます。(c5downloader.php )
(ここは正しいですか?)
ブラウザから、http://サーバーID.xsrv.jp/ c5downloader.php にアクセスし「ダウンロード開始」ボタンをクリック 。
この手順で、/public_html配下に競合するフォルダが存在しなければ、ダウンロードごに自動解凍され、インストーラーが立ち上がります。が、
/public_htmlには先にアップした(application ,concrete ,packages ,updates)フォルダが存在するため、「ダウンロード、展開に失敗しました。」エラーとなります。
ここで、確認させていただきたいのですが、concrete5をクリーンインストールするのに他の方法(concrete5 CMS Simple Downloadereをダウンロードしないで行う方法があるのでしょうか?)
「ダウンロード、展開に失敗しました。」エラーとならないように、先にアップした(application ,concrete ,packages ,updates)フォルダをリネーム(0714application ,0714concrete ,0714packages ,0714updates)したのです。(ファイルの方は展開で置き換わっていました)
その後、MySQLのdbをインポートして
(application ,concrete ,packages ,updatesを0715application ,0715concrete ,0715packages ,0715updates) にリネームして、0714application ,0714concrete ,0714packages ,0714updatesをapplication ,concrete ,packages ,updatesをリネームし直しても)ダメでした。
もちろん大事なconfig配下フォルダのdoctrine,generated_overrides(内concrete.php)、とphp(app.php, database.php):特に database.phpの 'server' => '', 'database' => '', 'username' => '', 'password' => '', パラメータは修正してあります。
これでダメだったので、
再度、0715application ,0715concrete ,0715packages ,0715updatesをリネームして
(application ,concrete ,packages ,updates)フォルダの中身をapplication > config内のデータ以外をwinMergeで比較していき、フォルダの追加やファイルの追加をしましたが、これでもダメでした。
Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
http://concrete5-japan.org/help/5-7/developer/installation/simple-downloader/
から、concrete5 CMS Simple Downloadereをダウンロードしてドメイン/public_htmlに置きます。(c5downloader.php )
ここが違いますね。
ファイル自体はアップしてあるので利用する必要はありません。
config内を削除したら普通にアクセスすればインストールが始まります。
Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
早朝から
ありがとうございます。
ダウンロードしないで、クリーンインストールすると、db入れ替え前ではエレメンタルのページで開くことができます。
db入れ替え後は、以前と同じエラー
An unexpected error occurred.
An exception occurred while executing 'SELECT t0.pkgID AS pkgID_1, t0.pkgHandle AS pkgHandle_2, t0.pkgVersion AS pkgVersion_3, t0.pkgIsInstalled AS pkgIsInstalled_4, t0.pkgAvailableVersion AS pkgAvailableVersion_5, t0.pkgDescription AS pkgDescription_6, t0.pkgDateInstalled AS pkgDateInstalled_7, t0.pkgName AS pkgName_8 FROM Packages t0 WHERE t0.pkgIsInstalled = ? ORDER BY t0.pkgID ASC' with params [1]: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'aitc_c5840db.Packages' doesn't exist
です。
.htaccessを確認すると
#suPHP_ConfigPath /home/a-itc/iine.pw/xserver_php/
#AddHandler fcgid-script .php .phps
#FCGIWrapper "/home/a-itc/iine.pw/xserver_php/php-cgi" .php
#FCGIWrapper "/home/a-itc/iine.pw/xserver_php/php-cgi" .phps
です。
これを
suPHP_ConfigPath /home/a-itc/iine.pw/xserver_php/
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
AddHandler fcgid-script .php .phps
FCGIWrapper "/home/a-itc/iine.pw/xserver_php/php-cgi" .php
FCGIWrapper "/home/a-itc/iine.pw/xserver_php/php-cgi" .phps
に変更すると、
500 Internal Server Error になります。
• 常に発生する場合:
CGIのパーミッション設定に誤りがある。 / CGIのソースコードに問題がある。/ .htaccess の記述に誤りがある。」となります。
.htaccessの記載が間違っているのでしょうか?
FTPはWinSCPを使っていますが(SCPでもSFTPでもなくFTPです)
宜しくお願いします。
Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
ありがとうございます。
lower_case_table_names
の件ですが、aciissさんから教えていただいた
Database Migration Tool を試してみました、しかし状況は変わらずでした
ただ、Database Migration Tool のメッセ―ジでlower_case_table_names=0と表示され
どうやら「my.iniに後続コンフィギュレーションを持っている必要がある」というメッセージから
my.iniに設定が必要なのはなんとなくわかったのですが、my.iniのどの位置にlower_case_table_namesをどの様に設定したら良いかが分からずじまいのままです。
追記:
Unix では、lower_case_table_names のデフォルト値は 0 です。
Windows では、デフォルト値は 1 です。
OS X では、デフォルト値は 2 です。
•Unix 上では lower_case_table_names=0 を、Windows 上では lower_case_table_names=2 を使用してください。
これでデータベース名とテーブル名の大文字と小文字の区別が保持されます。
この欠点は、ユーザーのステートメントが、Windows 上で正しい大文字または小文字でデータベース名およびテーブル名を常に参照していることを確認する必要があることです。
大文字と小文字が区別される Unix にステートメントを転送する場合、大文字と小文字が正しくなければこのステートメントは機能しません。
とうい情報も見つけたのですが
xserver側でどの様に指定するかがわかりません。
何度もアドバイスを戴いて恐縮なのですが、
教えていただけると助かります。
Re: Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
サーバーをいじるのには、.htaccessやphp.iniに限るなどの制限があると思うので、レンタルサーバーの場合サーバー側をいじるというのは現実的ではありません。
ローカルでサーバー側の設定にできる限り合わせるというのが必要だと思います。
my.iniの設定はここら辺に適当に追加してあげればいいです。
# The MySQL server
[mysqld]
lower_case_table_names = 2
port=
ただ、この設定をインストール後でしてもDBのテーブル等は小文字のままなので何かしらの対策が必要です。
この対策については小文字から大文字の変換が考えられますが、当方で経験が無いのでお答えできません。
最悪、サイト規模が大きくなければ初めからやり直すのが一番早いかもしれません。一度作り上げたものならばさほど難しくないと思うので。
テーブルやカラム名を全部チェックするのも現実的ではないと思いますし。
この大文字小文字についてはconcrete5に限らず、SQLを利用している各種CMS等に当てはまることなので、制作や開発時にローカル設定を注意するとしか言えません。
解決まで至らず申し訳ございませんが・・・
Re: Re: Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
朝からありがとうございます。
そうなんですね開発前に設定すべきことなんですね(後から設定し直してもダメかもしれませんが、やってみます)。一度作り上げてしまって、コンテンツもかなり追加しているので、Server側で再度行うのは可能だとは思いますが、時間がかかるので。
これでもダメなら、覚悟してXserver側でやり直します。
「教科書にはこの辺りは載っていなかった様に思えるのが残念です」
沢山のサポートと、丁寧なアドバイスありがとうございました。
p.s.
やはり、後からmy.iniに lower_case_table_names = 2を設定して
MAMPのPhpAdminでエクスポート から XserverでPhpAdminでインポートしてもダメでした。
別のドメインで,Xserver側で再構築します。
Re: Re: Re: Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
添付ファイルを解凍してください。
xServer の phpMyAdmin を 開き、「該当のデータベースを選択」して
[SQL]タブを開き、そのテキストエリアに 添付したファイルを解凍してできたファイルのSQL文をコピー&ペーストして[実行]を押してください。
これでテーブル名が大文字と小文字の組み合わせに変更になると思います。
(例)packages => Packages
これでサイトにアクセスすれば表示されるのではないかと思います。
(注意点)
アドオン インストール時に追加されるテーブルには対応していません。
全ての環境でテストをしたわけではなく動作を保証することはできません。ご了承ください。
必ずDBはバックアップを取り自己責任でお願いします。。
スッキリと回答できず申し訳ないのですが、せっかくコンテンツ作られたのにと思いまして。。
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
おはようございます。
ありがとうございます。
早速試してみます。
p.s.
試してみました。
しかし、以下の様なsyntaxエラーがでています。申し訳ないです。
エラー
SQL query:
{\rtf1\ansi\ansicpg932\cocoartf1561\cocoasubrtf600
{\fonttbl\f0\fswiss\fcharset0 Helvetica;
MySQL のメッセージ:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{\rtf1\ansi\ansicpg932\cocoartf1561\cocoasubrtf600
{\fonttbl\f0\fswiss\fcharset' at line 1
P.S.2
ALTER TABLE以降、全行コピペしたら、やはりエラーですが、
今、テーブルを確認してみたら、
1番目のテーブルだけがリネームされていました。
arealayoutcolumns → AreaLayoutColumns
p.s.3
試しに、1行ずつコピペして
ALTER TABLE `arealayoutpresets` RENAME TO `AreaLayoutPresets`;\
「実行」すると
エラー
SQL query:
\
MySQL のメッセージ:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\' at line 1
となるのですが、
テーブル名は AreaLayoutPresets に変わっています。
これは、根気よく、1行ごとコピペで「実行」すれば良いということでしょうか?
」
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
新しくファイル添付しました。このファイルで試してみてください。
もう一点。フォーラムで一度投稿された内容に編集で追記されると書き込みした通知メールが飛ばないので、試された結果などは新しく投稿していただいた方がわかりやすいです。
よろしくお願いします。
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
ありがとうございます。
お手を煩わせてしまいました。
実は、localhostでサイト表示させながら、Xserver側で別のドメインを使って、2/3程度移植しました。 ベースがあるので約1.5日でここまで来ました。
折角SQL分を作って戴けたことですし、
今後もlocalhostで開発してレンタルサーバーにデプロイすることですので
時間を見て
実施してみたいと思います。
その時は、結果も含めて
改めて報告させていただきます。
ありがとうございました。
Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
お世話様です。
c5_change_table_name.sqlを試してみました。
結論から言うと、やはりダメでした。
指定戴いたTableで、少なくとも2つの不一致がありました。
1.ExpressForm170ExpressSearchIndexAttributes が存在しないのと、
2.mail2expresssearchindexattributes という余分なテーブルが存在しました。
mail2expresssearchindexattributesの中身を確認したら、
自動返信メール用の設定があり、これは先日の私が失念していた
controller.phpとblock_form_auto_reply.phpに関連するものの様です。
従いまして、こちらの対応は諦めます。
今後、Windowsで開発するときに充分気を付けて行うということで、
色々サポート戴きありがとうございました。
p.s.
ところでcontroller.phpとblock_form_auto_reply.phpについてはリネームしました
リネームした結果
他のページは全く問題ないのですが、
問い合わせページで、問い合わせフォームが全く表示されない
(ブランク行が空くのではなく、全くフォームブロックを置いていない状態とおなじ)
になりました。
こちらの方は、
ブロックを再度ドラックアンドドロップして編集しようとしましたが
「フォームブロック」が2つ存在し
1つは、controller.phpに関連したフォームの様で使えません
もうひとつは、ドラックアンドドロップできない状態です。
(こちらが元々のレガシーフォームのブロックの様ですが)
application/blocks/form/と/application/mail/に
オリジナルのものを入れ替えなおすなどの必要があるのだとは思いますが、
どのフォルダのどのファイルをCopyすれば良いのか分かりません
(この部分を含め、もう一度やり直す必要があると思っています)が、
これ以上お願いするのも心苦しいのですが、
なにかサポート戴けたら嬉しいです。
Re: Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
メール送信の件、自己解決しました
おさがわせしました。
原因は2つありました。
1つは、(site_map_treeが悪さをしていた)メール自動返信機能追加の際に
view.php をコピーして、編集したsite_map_treeをリネームして無効化して
フォームブロックを再度配置して編集
もう一つは、外部SMPの設定が上手く行かない
ポート番号を設定してもダメなので、
結局、PHP関数の方に変えたこと
て、テストメール(PCからとiPhoneから)がOKになりました。
ありがとうございます。
takuro hishikawa
Re: 教えてください。Mysql5.6.34で作成したものを5.7.1にデプロイしたらドライバーエラー?
Table 'aitc_c5840db.Packages' doesn't exist