質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Hyper-V

Hyper-Vとは、マイクロソフト社が提供しているサーバー仮想化技術。Windows Serverの機能の一つであり、仮想化活用時の手順が簡単で、機能を有効にするだけで使用できます。小~中大規模なシステムでも高いコストパフォーマンスの仮想環境を構築することが可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

0回答

547閲覧

MySQL+phpを仮想環境に移行した後に起動不能に陥りました

hatsuzo

総合スコア56

Hyper-V

Hyper-Vとは、マイクロソフト社が提供しているサーバー仮想化技術。Windows Serverの機能の一つであり、仮想化活用時の手順が簡単で、機能を有効にするだけで使用できます。小~中大規模なシステムでも高いコストパフォーマンスの仮想環境を構築することが可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

0グッド

0クリップ

投稿2021/04/07 10:01

いつもお世話になっています。
この度、WindowsServer2012上で動作しているphp+MySQLで動いているアプリを仮想環境上に移行することになり、テスト段階でおかしな現象が発生しました。
php 5.4/mysql 5.5 と替えなければと思いつつも、古いバージョンのまま使い続けている環境です。

こうした作業は未経験なので、試行錯誤しながら、手順は以下のように行いました。
・現在稼働中の環境をそっくりコピーして、Hyper-Vの仮想環境下にコピー。
・仮想環境下でIPアドレス、コンピュータ名ををバッティングしないように変更。
・別システムへの更新、別システムからの更新が動かない時間帯に、仮想環境をActivate。
・ドメイン参加し、タスクスケジューラを手動で全て停止。

この状態で、対象のphpアプリを仮想環境下で動かしたところ、正常に動作したかに見えたのですが、
本番のデータを書き換えてしまっていました。基幹業務ではないので、問題は無かったのですが、調べたところ、

php

1 if (!($cn = mysqli_connect("192.168.*.*", "user", "password", "dbname"))) { 2 die; 3 }

としている部分を変更し忘れているのに気づき、この部分を仮想環境下のアドレスに変更しました。
接続先の指定はこの一か所のファイルをインクルードしています。

変更後は正常に動作し、その後の画面遷移を見る限りでは、正常にMySQLのテーブルが更新されていました。
本番環境で同じアプリを起動したところ、上記の更新内容は反映されておらず、仮想環境下で更新されたように見えて、ひとまずは安心しました。

しかし、次に、仮想環境で再度、同じアプリを動かしたところ、
起動時に動作する修正した部分、mysqli_connect のところでエラーが出て、起動できなくなってしまいました。

順番が後先になってしまったのですが、改めて、仮想環境下でのMySQLにログインしようとすると、MySQLのサービスが停止している状態で、サービスの再接続を行いました。
エラー1067が出てサービス起動が出来なかったのですが、何分か後には、起動までは出来ました。
しかし相変わらず、MySQLには接続できず、アプリの起動も出来ない状態です。

試行錯誤での移行作業なのですが、このような作業手順で問題があったのでしょうか?
有識者の方々のアドバイスを頂けましたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AbeTakashi

2021/04/07 17:39

正直、これだけの情報では他の人からみてもさっぱり分からないと思います。せめて仮想環境の構成(OS、PHPやMySQLのバージョンなど)の詳細や該当のPHPのソースコード、MySQLサーバのエラーログなどを記載して頂かないと、エスパーでもいない限り回答は出てこないと思います。移行の手順に問題があったかといわれても、これだけの情報ではさすがに外の人にはわかりません。 とりあえず仮想環境下のMySQLに接続できないならMySQL側にログに何かしら接続の形跡があるか? ログがあるならどのようなログが出ているのか? ログすら出てないならPHP上のMySQLへの接続設定が間違っている可能性があるので、その場合はPHPやhttpd側のログに何か出ていないか? などをチェックされるべきじゃないでしょうか。 もう少し文章を読みやすく整理して、質問のピントを絞った方が良いと思います。そして移行手順の質問よりも仮想環境でのエラーの原因に絞って質問した方が良いと思います。移行手順に関してはこのエラーの原因を元にして解決後にご自分で検証すべきかと。
FKM

2021/04/08 01:28

ワイルドカードが問題じゃないんですか?明示的にホストを示してもだめでしょうかね?
hatsuzo

2021/04/08 05:34

TakashiAbeさん コメントありがとうございます。 最後の仮想化の手順云々については余分でした。 余計なことを書いてしまったと思いますが、知りたいのはMySQLの挙動です。 一度動いたものが動かなくなったのは、仮想化に影響があるのでは、と思ったからです。 http接続やphpの問題以前に、MySQL自体が止まってしまい、かつ、OSのコマンドラインから接続しても接続不能になったので、動かし方に間違いがあったのなと思ったので、手順云々の話を経緯として書きました。 何れにしても言葉足らずかもしれません。失礼しました。
hatsuzo

2021/04/08 05:36

FKMさん コメントありがとうございました。 ご指摘のパラメタですが、ワイルドカードでなく、伏字のつもりで書きました。実際には数字が入っています。紛らわしい書き方をしてしまいすみません。
over

2021/04/08 08:14

MySQLのログを見て、起動できない原因を探ってください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問