ドットインストールで、PHPのMySQLデータベースの利用について学習しているのですが
PHP
1<?php 2 3define('DB_DATABASE', 'dotinstall_db'); 4define('DB_USERNAME', 'dbuser'); 5define('DB_PASSWORD', 'g6fd7Xx'); 6define('PDO_DSN', 'mysql:host=localhost;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} catch (PDOException $e) { 20 echo $e->getMessage(); 21 exit; 22}
データベースに情報を追加するというシンプルなコードです。ビルドインサーバーでこの「index.php」にアクセスしたのですが、
「SQLSTATE[HY000] [2002] No such file or directory」 とエラーが出てしまいます。
Googleにてこのエラーを検索にかけて調べた結果、php.ini に mysql.sock のパスを教えなければならないと分かりました。しかし /etc に php.ini というファイルは見つからず、代わりに似たような php.ini.default というファイルが見つかりましたのでそちらの中で
pdo_mysql.default_socket= ↓ pdo_mysql.default_socket=/tmp/mysql.sock
というように変更をして、もう一度MySQLサーバーを立ち上げて、ビルドインサーバも再起動し index.phpにアクセスすると今度は「SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client」というエラーが代わりに出るようになりました。
ちなみにビルドインサーバーを立ち上げる時は
php -S localhost:8000
を実行して localhost:8000 にアクセスしています。
もう二時間くらい色々試してはいるんですが全く分かりませんでした。
本当によろしくお願いします。
OS Mac10.14.6
MySQL 8.0.18
PHP 7.1.32
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/16 07:42