サイトの引越し:データベースバージョンが違っている場合  【解決済み】

質問全般・改善要望
返信する
アバター
min-o
メンバー
メンバー
記事: 324
登録日時: 2009年10月07日(水) 18:32

サイトの引越し:データベースバージョンが違っている場合  【解決済み】

投稿記事 by min-o »

-----
ご利用のサーバ:さくらインターネット ビジネスプロ
MODXのバージョン:1.0.6J-r4
PHPのバージョン: PHP Version 5.2.17
MySQLのバージョン:
  旧サーバー 5.1.66-log
  移転先サーバー 5.5.28-log
ブラウザ: Firefox19.0.2
-----

いつもお世話になっております。
サイトリニューアルのため、新規レンタルサーバーで、新規modxサイトを作りました。
以前のサイトのレンタルサーバー解約前に、旧サイトを内部用非公開サイトとして新規サーバーに丸々移転させようとしているのですが、うまくいきません。

旧サイトはデータベースsqlとassets他ファイルをバックアップ。
新規サーバーにデータベースを追加して、旧サイトのデータベースsqlファイルをインポート、modx_system_settingsのrb_base_dir、filemanager_pathを変更。
config.inc.phpを新規データベースの情報に変更し、新規サーバーにはサブドメインを設定して、FTPでassets他ファイルをすべてアップロード。

すると
新規サーバーのサブドメイン/  Error  のみ
新規サーバーのサブドメイン/manager/  白紙
になってしまいます。

同じsqlファイルを、旧サーバーの未使用データベースにインポートした場合はうまくいったので、サーバーの差かと確認したところ
MySQLのバージョンが
  旧サーバーのMySQL 5.1.66-log
  移転先サーバーのMySQL 5.5.28-log
でした。
※どちらもさくらインターネットのビジネスプロです。

旧サーバーは契約がかなり古く、当時はデータベースが3個付属でした。
その後データベース無制限になり、旧サーバでも新規にデータベースを作ると 5.5.28-log で作成されます。
旧サーバーの新規データベース5.5.28-log にインポートした場合は
/manager/にアクセスすると以下のエラーが延々と出ます。
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'xxxxx'@'219.94.155.202' (using password: YES) in /home/****/www/wp/manager/includes/extenders/dbapi.mysql.class.inc.php on line 97

サイトの引越しでデータベースバージョンが違っている場合、よい方法はないでしょうか?
よろしくお願いします。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: サイトの引越し:データベースバージョンが違っている場合

投稿記事 by yama »

エラーメッセージを見たところデータベースへの接続自体ができてないみたいなので、データベースのバージョンは関係ないような気がします。接続が確立してからでないとデータベースのバージョン情報を取得することもできないですし。
config.inc.phpに何かヒントがあるかも?
saki...
メンバー
メンバー
記事: 17
登録日時: 2013年3月17日(日) 15:42

Re: サイトの引越し:データベースバージョンが違っている場合

投稿記事 by saki... »

mysql はバージョン 5.5 系からセキュリティだかの変更がかかったので、パスワード認証で詰まっている可能性があります。

5.5の方で mysqlのmodx 用アカウントを新規登録しているとすればパスワードの保管方法が違うので
config.inc.php 内に保存されているアカウントの(旧)パスワードだとアクセスできないかもしれません。
(同じパスワード文字列であっても暗号化の方法が別なので違う結果になり、5.5 からは古い方法を受け付けなくなっている)

mysql の設定を変えるのは難しいと思いますが、modx側のパスワードが5.5で再設定されれば良いので

・install フォルダをコピーしてアップグレードでパスワードを再設定
・いったん新規インストールしてから、旧サーバーのスナップショットを流し込む

あたりで何とかなりませんでしょうか?
アバター
min-o
メンバー
メンバー
記事: 324
登録日時: 2009年10月07日(水) 18:32

Re: サイトの引越し:データベースバージョンが違っている場合

投稿記事 by min-o »

yamaさん saki... さん
返信ありがとうございます。
mysql はバージョン 5.5 系からセキュリティだかの変更がかかったので、パスワード認証で詰まっている可能性があります。
・install フォルダをコピーしてアップグレードでパスワードを再設定
・いったん新規インストールしてから、旧サーバーのスナップショットを流し込む
このあたりを参考にいろいろ試してたところ、以下の方法で移行できました。

1. 旧サーバーのmodxを1.0.6J-r8にアップデート(1.0.8Jへのアップデートのつもりで間違えましたが、とりあえず続行しました)
3. バックアップとスナップショットを取る
3. 新サーバーに新規データベース、新規サブドメイン作成し、1.0.6J-r8を新規インストール
4. 旧サーバーのスナップショットを使ってリストア
5. 新サーバーのデータベースのSQLから、テーブルmodx_system_settings 以外を削除して、
  旧サーバーのSQL(modx_system_settings以外)をインポートして入れ替え
6. 新サーバーにassets、contentをコピーし、modxのグローバル設定は手動で旧サーバーのmodxにそろえる
7. サイトのリフレッシュ で移行完了

※modx_system_settingsもインポートでいけたかもしれませんが、安全を取って、少しずつインポートしてテーブルを入れ替えました。
最終的にmodx_system_settings以外全部入れ替えても問題なかったです。

modx_system_settings はphpMyAdminで開くと、新旧のデータベースで順番が微妙に違っていたので…。
(5.1.66-log では2ページ目にあるrb_base_dirが 5.5.28-logでは4ページ目にあるなど)
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: サイトの引越し:データベースバージョンが違っている場合

投稿記事 by kazuike »

横からすみません。

もし、よろしければ、
最初にエラーが出た時のconfig.inc.phpと、成功した時のconfig.inc.phpに、
DBの接続情報等で、何か違いがあるか教えていただけますでしょうか?
(たとえば、DBサーバの指定が、一方はIPアドレス、もう一方は「localhost」とか…)

エラーが出ていた「mysql_connect」の動作が変わるとすれば、
config.inc.phpの違いぐらいしか思いつかないですし、
もし、インストーラを通したことで変わることがあるとすれば、
DB用のパスワードをハッシュ化する等は、MODXはしていないと思いますので、
インストーラ画面でデフォルト値を使うような箇所かな?と想像してるのですが…
どうでしょう?

ちなみに、
新規データベースを作成される時、
作成ユーザやDBのオプション?等は、
最初にエラーになった時と、成功した時とで、違いはありませんよね?
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
min-o
メンバー
メンバー
記事: 324
登録日時: 2009年10月07日(水) 18:32

Re: サイトの引越し:データベースバージョンが違っている場合

投稿記事 by min-o »

>kazuikeさん

$lastInstallTimeのあたりから二つのconfig.inc.php違ってますね。


うまくいったconfig.inc.php
<?php
/**
* MODX Configuration file
*/
$database_type = 'mysql';
$database_server = '******';←mysql000.db.sakura.ne.jp のようなサーバーアドレス指定です
$database_user = '******';
$database_password = '******';
$database_connection_charset = 'utf8';
$database_connection_method = 'SET CHARACTER SET';
$dbase = '`******`';
$table_prefix = 'modx_';

$https_port = '443';

$lastInstallTime = 1363669284;

setlocale (LC_TIME, 'ja_JP.UTF-8');
if(function_exists('date_default_timezone_set')) date_default_timezone_set('Asia/Tokyo');

include_once(dirname(__FILE__) . '/initialize.inc.php');
うまくいかなかったconfig.inc.php
この上は同じ
$https_port = '443';

$lastInstallTime = 1342597212;
$site_sessionname = '**英数字**';

if (!defined('MODX_SITE_URL')) include_once(str_replace('\\', '/', dirname(__FILE__)) . '/initialize.inc.php');
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: サイトの引越し:データベースバージョンが違っている場合

投稿記事 by kazuike »

min-oさん
ありがとうございます。m(_ _)m
min-o さんが書きました: $lastInstallTimeのあたりから二つのconfig.inc.php違ってますね。
ということは、前半のDBの接続情報のあたりは同じってことですね。
残念ながら、私には何でエラーが出たのか理解できませんでした。(>_<)
今後、同じようなことがあれば、その時にまたチャレンジしたいと思います。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
min-o
メンバー
メンバー
記事: 324
登録日時: 2009年10月07日(水) 18:32

Re: サイトの引越し:データベースバージョンが違っている場合

投稿記事 by min-o »

>kazuikeさん

いえいえ、ご協力ありがとうございました^^
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
返信する