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

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

新規登録して質問してみよう
ただいま回答率
85.37%
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

解決済

2回答

29102閲覧

Connection refusedされてしまう

yuki_yuki_yukia

総合スコア10

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グッド

0クリップ

投稿2019/01/18 11:44

編集2019/01/18 11:51

ターミナルでphp -S 127.0.0.1:8000として、http://127.0.0.1:8000を開くと
SQLSTATE[HY000] [2002] Connection refusedと出てしまいます。。。

どのようにしたらこのエラーを無くせますか。

php

1<?php 2 3define('DB_DATABASE', 'dotinstall_db'); 4define('DB_USERNAME', 'dbuser'); 5define('DB_PASSWORD', '******'); 6define('PDO_DSN', 'mysql:host=127.0.0.1;dbname='.DB_DATABASE); 7 8try{ 9 // connect 10 $db = new PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD); 11 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 12 13 // insert 14 $db->exec("insert into users (name,score) values ('taguchi', 55)"); 15 echo "user added!"; 16 17 //disconnect 18 $db = null; 19 20 21}catch(PDOException $e){ 22 echo $e->getMessage(); 23 exit; 24}

ネットなどで検索してその通りにやってもうまくいきません。どうかよろしくお願いします。

##version
PHP 7.1.16
Mysql 8.0.13

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

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

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

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

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

papinianus

2019/01/18 11:52

hostの指定をipではなくhost=localhostにして見ていただけませんか
yuki_yuki_yukia

2019/01/18 11:54

localhostのした場合だとエラー内容が変わって `SQLSTATE[HY000] [2002] No such file or directory` のようになります。
set0gut1

2019/01/18 12:17

mysql上、dbuserに権限付与されましたでしょうか。 dbuser@localhost に権限付与している場合、 127.0.0.1 宛で繫いだときは繋がらず、 dbuser@127.0.0.1 に権限付与する必要があった気がします。
guest

回答2

0

自己解決

https://blog.janjan.net/2018/11/01/mysql8-request-authentication-method-unknown-to-the-client/
の方法を使い他のデフォルトのファイルを変更せずにすることができました。
たくさん教えてくれていただきありがとうございました。

投稿2019/01/18 12:55

yuki_yuki_yukia

総合スコア10

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

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

0

PHPが接続しようとしているポートとMySQLが待機しているポートが違うからでは??
恐らくMySQLが動いているポートが標準の3306ではないためにエラーが出ているのかと思います。
MySQLのターミナルで

MySQL

1show variables like ‘port’;

として出てきたポート番号をPDOをインスタンス化する時に指定してやれば行けると思います。

PHP

1define('PDO_DSN', 'mysql:host=127.0.0.1;dbname='.DB_DATABASE); 2//質問にあったこれ(上記)を 3define('PDO_DSN', 'mysql:host=127.0.0.1;dbname='.DB_DATABASE.'port=先程出力されたポート番号'); 4//これに書き換える

投稿2019/01/18 11:59

Nrkw38

総合スコア37

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

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

yuki_yuki_yukia

2019/01/18 12:08 編集

これを実行すると ``` mysql> show variables like 'port'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | port | 0 | +---------------+-------+ 1 row in set (0.01 sec) ``` のように出ます。ポートが0はあり得るのでしょうか?また念のため ”port=0”とやってもエラー内容は変わりませんでした。
Nrkw38

2019/01/18 12:22

調べてみたら似たようなものがStackOverflowにありました。 https://stackoverflow.com/questions/9979134/how-can-i-change-mysql-port-from-0-to-3306 ここにある情報を書きます。 show variables like 'skip_networking'; で値がOnになっていれば、TCP/IPでのアクセスが無効になっているようです。 次はOSがLinuxであることが前提です。 もしそうであれば、/etc/init.d/mysqlをエディタで開いてみて下さい。 そしてエディタで「--skip-networking」と検索して、その部分を削除して、MySQLを再起動すればいいようです。
yuki_yuki_yukia

2019/01/18 12:34

あろがとうございます。 自分macで、このエラーと状況が同じなのでここに絞って検索してみようと思います。
Nrkw38

2019/01/18 12:37

わかりました! 問題が解決することを祈っています!! あと、この質問は解決ということでよろしいでしょうか?
yuki_yuki_yukia

2019/01/18 12:54

この解決方法ですが、詳しく調べたところあまりいい方法ではないようです。。。 その後検索してTCP/IPを使わない方法で解決することができました。 丁寧に教えていただきありがとうございました。
Nrkw38

2019/01/18 13:02

そうでしたか。。。 でも、解決して何よりです!! 少し余談ですが、私をベストアンサーにして頂ければ嬉しかったです。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問