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

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

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

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

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

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

Q&A

解決済

3回答

6689閲覧

PHPからMySQLに接続できません。エラーの理由が不明です。

TakaakiTorihira

総合スコア11

MySQL

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

PDO

PDO(PHP Data Objects)はPHPのデータベース抽象化レイヤーです。

PHP

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

0グッド

1クリップ

投稿2015/10/30 05:24

PHPをレンタルサーバーで利用しています。
バージョンは5.3.3です。
そこから、XAMPPのMySQLに接続を試みています。

コードはpdoを使用しており、記述部分は以下の通りです。

try {
$pdo = new PDO($dsn, $user, $pass);
}
catch( PDOException $e){
echo $e->getMessage();
exit;
}

$dsnには、mysql:host=localhost,dbname=自分で設定したdb名,charset=utf8
$userには、自分で設定したユーザー名
$passには、自分で設定したパスワードを代入しています。

この状態でブラウザでページを表示すると

SQLSTATE[28000] [1045] Access denied for user 'ユーザー名'@'localhost' (using password: YES)

というエラーが表示され、MySQLにアクセスできません。
MySQLは起動させており、ユーザー名とパスワードも何度も確認するのですが、一致しています。

Googleで検索しても、ユーザー名とパスワードが間違っている時に起こるエラー、といった回答しか見受けられません。
トラブルの原因と解決方法をどなたかお教え頂けませんでしょうか。

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

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

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

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

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

guest

回答3

0

ベストアンサー

PHPをレンタルサーバーで利用しています。
バージョンは5.3.3です。
そこから、XAMPPのMySQLに接続を試みています。

PHPはレンタルサーバ上で動いていて、MySQLはローカルPC上で動いているように読めますが、この認識はあっていますか?

その場合、PHPから見たlocalhostはレンタルサーバのことになるので、レンタルサーバのMySQLにユーザ設定を行う必要があります。(MySQLが使えないレンタルサーバなら不可能です。)

レンタルサーバ上のPHPからローカルPCのXAMPPのMySQLに接続する方法が存在しないわけではありませんが、色々大変なので普通はしません。

投稿2015/10/30 05:34

tanat

総合スコア18713

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

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

TakaakiTorihira

2015/10/30 05:43

ありがとうございます。そういった状態です。レンタルサーバー上のPHPからレンタルサーバー上のMySQLへの接続を試してみます。
tanat

2015/10/30 05:50

レンタルサーバでのMySQLのホスト名やユーザ名は指定されていて変更できない場合が殆どだと思うので、レンタルサーバのヘルプなどを参照してみてください。 そこで詰まった場合は、具体的なレンタルサーバのサービス名とエラーを記載して質問すると具体的な回答が得られると思いますよ。
TakaakiTorihira

2015/10/30 05:55

接続できました!!ありがとうございました!
guest

0

MySQLは、ユーザー名とパスワードだけではなく、接続元も確認して接続の可否を判断します。そして、全アドレスから受け入れる設定になっていても、ローカルホストだけは別途設定が必要です。また、ローカルだとソケットファイル経由で接続する設定になっていることもあるので、それにも注意が必要です。

投稿2015/10/30 05:28

編集2015/10/30 05:32
maisumakun

総合スコア145184

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

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

TakaakiTorihira

2015/10/30 05:40

ありがとうございます。調べて設定してみます。
guest

0

ユーザー名とパスワードに間違いがないのであれば、「ホスト名」が間違っているのでしょう。


PHPをレンタルサーバーで利用しています。
バージョンは5.3.3です。
そこから、XAMPPのMySQLに接続を試みています

なるほど。そりゃあ、無理って話ですね。
レンタルサーバー側から見て、「localhost」とは自分自身のことですから、そこにMySQLはありませんね。XAMPPのMySQLに繋ぎたいのですから、PHPからあなたの自宅(会社?)のPCのあなたのマシンのIPを設定しなくてはなりません。外部から内側への接続となると、一般的に「自宅サーバー」を立てるのと同様な作業工程が必要です。

ルーターの設定(ポート開放)
ポートフォワーディングの設定など。

投稿2015/10/30 05:26

編集2015/10/30 05:46
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

TakaakiTorihira

2015/10/30 05:28

phpmyAdminでユーザー名とホスト名を確認するとlocalhostと記載されています。。。
退会済みユーザー

退会済みユーザー

2015/10/30 05:41 編集

記載されているからといって、接続できないという事実は変わりません。レンタルサーバーの仕様によってホスト名をどのように設定すべきかは、ヘルプなどに書いてあるはずです。 phpMyAdmin が設置されているマシンと、PHPのプログラムがあるマシンが異なっていれば、絶対に localhost ではありません。phpMyAdmin と PHPプログラムの場所が同じかどうかは、レンサバの仕様ですから、なんとも回答の仕様がありません。
TakaakiTorihira

2015/10/30 05:48

PHPはレンタルサーバ上で動いていて、MySQLはローカルPC上で動いているという状態になってしまっていました。レンタルサーバー上のMySQLで試してみます。ありがとうございます。
TakaakiTorihira

2015/10/30 05:55

接続できました!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問