• 締切済み

Windowsで動いているmysqlがLinuxで動かない

Mysqlの初心者です。 教えて下さい。お願いします。 今、「PHP5.0+ MySQL5.0で構築する 最速Webシステム」著者:星野努氏の本で勉強しておりまして、その中の課題のフォトライブラリーのサンプルを、Windowsで動くことを確認し、そのままので状態で、Linuxにコピーしましたが、PHPは動くのですが、JPEGの写真が見つかりません。その他DBが旨く動いていないようです。 PHPファイルの入っているライブラリー(photolib)は、/home/html/photolibに入れました。 MySQLデーターベースの入っている(photolibdb)は、/var/lib/mysqlに入れました。 単純にコピーしました。 一応「php.ini」のPATHの部分を少し手直しをしました。 しかし、写真が見つかりませんとメッセージが返ってきます。 このままでは、自分でデータベースを開発しても、動かないのは目に見えています。決定的に何処かが間違っているのだとは思うのですが、分かりません。本屋さんでも、LINUX関係のSQLを探すのですが全く無くって途方に暮れております。 どなたかご存じの方がおられましたらご教授下さい。 宜しくお願い致します。

  • MySQL
  • 回答数3
  • ありがとう数2

みんなの回答

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.3

Mysqlはバージョンによって動作が違ったりします。 3系、4.0系、4.1系、5系等 Mysqlのバージョンは一緒のものでしょうか? 違う場合は多少手を加えないと移植できないかもしれません。

回答No.2

LinuxでPHP5/MySQL5を使うのは Linuxについてよく理解していないと、結構難しいです。 普通、データベースをWindows→Linuxに移植するのに、 ファイルコピーはしません。 Windows側の、"mysqldump"コマンドでダンプファイルを作って、 LINUXの"mysql"コマンドで、データを読み込ませます。 また、そもそもMySQLが動いていないとこれはできません。 Linuxのpsコマンドでプロセスが動いているかで確認ができます。 MySQLの起動シェルがあれば、 /etc/init.d/mysqld status でも状況は確認できると思います。 MySQLの使い方は、Windowsと基本的に同じですが、 まずは、Linuxで、MySQLをコマンドラインで使って、 create tableや、select文が使えるようになってから、 その次にPHPに繋げることに取り掛かったほうが良いと思います。

robotanmarch
質問者

お礼

ご回答有り難う御座いました。 Linuxでは、Mysqlも動いておりますので、mysqldumpも行いましたがエラーで旨く移植出来ませんでした。(Linuxは十分自信あるのですが)。 そこで、仕方なく、phpMyAdminにて、ダイレクトにデータを作成しました。結局はその方法が一番早かったようです。勿論何万件もデータが有る場合はお手上げです。 データコンバージョンをする場合は、sjis,eucの2バイト文字にも引っかかり、旨く出来ませんでした。phpMyAdminにて、Windowsからエクスポート、Linux側からインポートしましたが、バージョンエラーで引っかかりました。 結果的に今回は、手打ちで旨く移植は出来、Linuxサーバーで動いているのですが、次回の為に色々コンバートの方法を模索したいと思っております(バージョン違いも含めて)。 今回のご回答、本当に有り難う御座いました。 MySql初心者

回答No.1

>本屋さんでも、LINUX関係のSQLを探すのですが全く無くって途方に暮れております。 今時本なんて買いませんよ?Web検索すれば全部わかります。

関連するQ&A

  • MySQLのデータが表示されない。

    最近、PHPとMySQLでデータベースシステムを作ろうと考え、「導入効果バツグン! PHP5.0+MySQL5.0で構築する最速Webシステム」という本を購入しました。→http://www.amazon.co.jp/gp/product/4774127078 しかし、最終章あたりでおこなわれている「PHPとMySQLを利用したフォトライブラリ概要・解説」というところでどうも検索結果やカテゴリー検索の結果が表示されないのですが、何故でしょうか?ちなみに、付属のphotodbはきちんとコピーして動くはずなのですが、検索結果が返ってきません。教えてください。

    • ベストアンサー
    • MySQL
  • phpからmysqlへ接続できなくて困っております

    phpからmysqlへ接続したいのですが、データベースへ接続できません。 まず、使用環境は以下の通りです。 ------------------------------ OS:RedHatLinuxES4 MYSQL:mysql-4.1.7-4.RHEL4.1 PHP:php-4.3.9-3.1 MysqlとPHPはRedHatサイトのパッケージを使用してrpmでインストール しております。 MySQLのデータディレクトリをデフォルトの/var/lib/mysqlから /home/mysqlへ変更してます。 それに伴い、/etc/my.cnfのソケットとデータディレクトリの箇所 を変更しております。 <デフォルト設定> socket=/var/lib/mysql/mysql.sock datadir = /var/lib/mysql <変更後> socket=/home/mysql/mysql.sock datadir = /home/mysql ------------------------------ 色々調べていて原因は分かりました。 mysqlで指定しているソケットの場所と、PHPで指定している ソケットの場所が違うため、接続できないようです。 phpinfoにて情報を取得したところ、mysqlの箇所でソケットを指定 がデフォルト値の/var/lib/mysql/mysql.sockとなっておりました。 そこで、php.iniファイルのMYSQLの箇所を以下のように修正しました。 <デフォルト設定> mysql.default_socket = <変更後> mysql.default_socket = /home/mysql/mysql.sock 上記変更後、apacheを再起動し、再度phpinfoにて情報を取得した ところ、以下のようになりました。 MySQL Support項目、 MYSQL_SOCKET → /var/lib/mysql/mysql.sock #変更されず、反映されていないように見受けられるます Directive項目、 mysql.default_socket → /home/mysql/mysql.sock #php.ini修正前は確か、no valueであったと思います。 #従いまして、php.iniの内容が反映されている? --- その後、mysqlへ接続する、mysql_connect関数を利用して 接続テストを行った結果、エラーとなり接続できませんでした。 <エラーメッセージ> 接続できませんでした: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) --- おそらく、上記のphpinfo情報取得した時の、MYSQL_SOCKETが反映 されていないからだと思っておりますが、php.iniファイルの mysql.default_socketを修正すれば反映されると思ったにも関わらず 反映されないので、次にどこを修正すれば良いのか分かりません。 ご教授頂けませんでしょうか。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • MySQL5の文字化けについて(Linux)

    MySQL5の文字化けについて linuxもデータベースも初級の素人です。 my.iniをデフォルトのままwindowsからTeraTermでサーバに接続し SQLを発行していたのですが、そのときは日本語が文字化けしませんでした。 しかしphpmyadminを利用しようとmy.iniを変更すると、変更したが為に日本語文字化けするようになってしまいました。 修正後はMySQLは再起動しており、再起動後、新たにテーブルを作成し、 データの挿入をしてテストしています。それでもうまくいきません。 修正後のmy.iniのどこがおかしいのでしょうか? [サーババージョン] OS:CentOS5.4 (OSの文字コード:UTF-8のまま変更なし) MySQL5.0.77 [テスト環境] windowsマシンからTeraTermProでログイン ・TeraTermの設定:文字コード送受信ともに「UFT-8」を指定 ****************** [ 変更前のmy.ini ] *********************** [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 user=mysql [mysqld_safe] err-log=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid *************************************************************** ****************** [ 変更後のmy.ini ] *********************** [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 default-character-set=utf8 init-connect=SET NAMES utf8 (←これがいるのがよく分からない) skip-character-set-client-handshake [mysql.server] user=mysql basedir=/var/lib [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [mysql] default-character-set=utf8 [mysqldump] default-character-set=utf8 [client] ← (これもいるのかよく分からない) default-character-set=utf8 ************************************************************* ********* TeraTermで接続しSQLを発行したときのSQL文 ********** mysql> create table account (ID integer primary key, NAME varchar(100), MONEY varchar(100) ); mysql> insert into account values (1,'ボブ',1000), (2,'パトリック',2000), (3,'サンディー',3000), (4,'イカルト',4000) ; ************************************************************* かなりテンパってます。。 よろしくお願いします。

  • MySQLを認識していない?

    Windows Vistaで apache2.0.61 + PHP5.2.4 + MySQL5.0.14 でシステム構築をしています。 書籍は、 「PHP5.0 + MySQL5.0 で構築する最速Webシステム」を参考にしています。 その中で、PHPの設定を以下のように行いました。 ・「php5ts.dll」を「C:\Windows\System32」にコピー ・「libmysql.dll」を「C:\Windows\System32」にコピー ・「php.ini-dist」を「php.ini」にリネームして「C:\Windows」にコピー ・「php.ini」の編集  1.拡張モジュールを置くフォルダを指定    extension_dir = "C:/php5/ext"  2.PHPからMySQLを利用するための設定    extension=php_mysql.dll(先頭の;を削除) それぞれ単体では動作確認が取れているのですが、 ・apache(http://localhost/で動作確認) ・PHP( phpinfo() でパラメータ表示) ・MySQL(コマンド入力で確認) MyAdmin をインストールして、 http://localhost/phpmyadmin/ にアクセスすると、 「mysql 拡張をロードできません。PHP の設定を確認してください」 とエラー表示されます。 また、 書籍に付随しているDB読み込みサンプルを実行すると、 「Fatal error: Call to undefined function mysql_connect() in C:\Apache2\htdocs\photolib\regdatelist.php on line 10」 とエラー表示されます。 2つのエラーの内容は、MySQLを認識していないということだと思うのですが、 (PHP5ではMySQLが標準ではハンドルされていないので) 「php.ini」でその設定はしているハズです。 また、過去ログ(QNo.3173055)の回答で、 「phpinfoで、Configuration File (php.ini) Pathのパスは正しいですか? また、extension_dirのパスはどうなっていますか?」 とありましたが、これらのパスはどうやって確認すればよいのでしょうか? どこが悪いのか分りません。 何方か、アドバイスをお願いいたします。

    • ベストアンサー
    • MySQL
  • PHPの設定でMySQLを有効にするには?

    現在Windowsを使ってPHPなどの勉強をしています PHPのプログラム上からデータベース(MySQL)に接続したいので、MySQLを有効にするためにphp.iniの「;extension=php_mysql.dll」から「;」を取るとMySQLが有効になると参考書には書いてあるのですが、有効になりません。 何か設定が足りないのでしょうか? 教えてください!!

    • 締切済み
    • PHP
  • MySQLのバイナリデータについて

    Linux版MySQLで稼働していたデータベースをWindows版で稼働させたいと思っています。 データベースはinnodbです。 my.iniをWindowsの環境に合わせて書き換え、MySQLは起動したのですがテーブルが見れません。 mysqlデータベースは参照でき、ユーザー権限等も書き換えられるのですが、どうやらinnodbが見れないようです。 そもそもLinux版のinnodbはWindows版MySQLでは使用できないのでしょうか?

    • ベストアンサー
    • MySQL
  • PHPとMySQLが接続できません。(Linux環境)

    【状態】 ブラウザからサーバのPHPにアクセスした際、MySQLに接続してSelect文を流すスクリプト(仮にselect.phpとします)を作成しました。 しかしブラウザからドキュメントルート直下の同スクリプトにアクセスすると、 Fatal error: Call to undefined function mysql_connect() in [スクリプトのフルパス] on line 14 とエラー表示されてしまいます。 phpinfo()を確認したところ、MySQLのセクションがない状態。 他のWebページを参考にphp-mysqlモジュールをyumでインストールし、php.iniに   extension=mysql.so   extension=mysqli.so と   extension_dir = "/usr/lib/php/modules" の2行を追加しApacheを再起動しましたが、状態変わらずです。 ちなみにApacheとPHPはソースからインストールし、httpd.confもphp.iniも/usr/local/apache2/conf/以下に配置。 httpd.conf中に   PHPIniDir "/usr/local/apache2/conf" の表記もあり、MySQLに接続しないPHPは正常に処理されます。 また、mysql.so/mysqli.soも上記php.iniで指定した"/usr/lib/php/modules"に存在します。 何か原因として考えられる事はありますでしょうか。 心当たりのある方がいらっしゃいましたらアドバイスお願い致します。 【各バージョン ※インストールした順に表記】 OS:CentOS 5.2 (VMWare上で稼働) カーネル:2.6.18-92.el5 Apache:2.2.9 (ソースからコンパイル) PHP:5.2.6 (ソースからコンパイル) php-mysql:5.1.6 (yumでインストール) mysql:5.0.45 (yumでインストール) mysql-server:5.0.45 (yumでインストール) 以上、見にくくて申し訳ありませんが宜しくお願い致します。

    • ベストアンサー
    • PHP
  • mysqlのバックアップについて

    mysqlのバックアップを検索したところ、データベースがオンライン(稼働中)の場合、mysqlhotcopyやmysqldumpを使ってのバックアップで、オフラインの場合は、/var/lib/mysql/*のディレクトリコピーをするといったサイトが多いのですが、オンライン中(稼働中)に/var/lib/mysql/*のディレクトリコピーをするのは問題があるのでしょうか。 単純にディレクトリコピーをしてしまえば、リストアの時も簡単な気がするのですが、オンライン中にディレクトリをコピーしたら、壊れるとかありますか。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQL、php.ini の設定

    PHP、勉強中の者です。 参考書を見て、MySQLをインストールしました。(インストールはOKのようです。) php.iniの設定で「;extension=php_mysql.dll」を「extension=php_mysql.dll」に変更しましたが、<?php phpindo() ?>でMySQLの確認ができません。 他にも設定しなければいけないところがあるのでしょうか? なお、良く覚えていませんが、.iniのファイルは簡易版?をコピーしてます。(php.ini-distでしたっけ?)

    • ベストアンサー
    • PHP
  • PHPでMySQLのデーターベースが書込み出来ない

    PHPとMySQLとJAVAスクリプトで作成しましたデーターベースについてお尋ねします。 PHPとMySQLで作成したデータベースの検索したり、読み込みを普通に可能ですが、書き込み及び、削除が出来ません。 PhpMyAdminでは書けます(データー入力出来ます)が、PHPプログラムからはデーターを入力したり、削除を行うことが出来ません。 そして、全くエラーも出ません。 PHP上では「書き込みました」と、いかにも正常なようなメッセージが返ってきます。 が、中身は空です。 システムが出来上がって問題なく3年以上使用していたのですが、自宅のLINUXサーバーのHDDが壊れましたので、再度システム構築をやり直しました。 MySQLとPHPも再インストールを行い再構築を行いました。 その後上記症状が出て書き込み、削除が出来なくなりました。 PHPのプログラムは全く触っておらず、変更も更新もしておりません。 念のためプログラムのチェックも何度もしておりますが、勿論これといって問題は見あたりません。 PHP.INI等の設定ファイルに問題があるのでしょうか。 それとも、MySQLに問題が有るのでしょうか。 宜しくご教授の程お願い致します。