
データベースサーバ(MariaDB)へMacで開いている簡易サーバからアクセスしたいのですが、"SQLSTATE[HY000] [2002] No such file or directory"が発生してしまいます。
このサイトも見てみたのですが、同じパソコンで動いているわけではないので、この方法ではできないと思います。
コードは以下の通りです。
php
1<?php 2define('DSN', 'mysql:dbhost=192.168.3.101;dbname=test'); 3define('DB_USERNAME', 'mac'); 4define('DB_PASSWORD', '********'); 5 6 7class Model { 8 protected $db; 9 10 public function __construct() { 11 try { 12 $this->db = new \PDO(DSN, DB_USERNAME, DB_PASSWORD); 13 } catch (\PDOException $e) { 14 echo $e->getMessage(); 15 exit; 16 } 17 } 18 19 public function create($values) { 20 $stmt = $this->db->prepare("insert into users (email, password, created, modified) values (:email, :password, now(), now())"); 21 $res = $stmt->execute([ 22 ':email' => $values['email'], 23 ':password' => password_hash($values['password'], PASSWORD_DEFAULT) 24 ]); 25 } 26 27 $userModel = new \MyApp\Model\User(); 28 $userModel->create([ 29 'email' => $_POST['email'], 30 'password' => $_POST['password'] 31 ]); 32 33 34}
define('DSN', 'mysql:dbhost=192.168.3.101;dbname=test');
のところをdefine('DSN', 'mysql:dbhost=192.168.3.101;dbname=test;port=3306');
とポートを指定してみたりもしてみましたがだめでした。
データベースサーバには、macからアクセスする用のユーザは作ってあるので問題はないと思います。
MariaDB [(none)]> select Host, User, Password from mysql.user; +-------------+--------+-------------------------------------------+ | Host | User | Password | +-------------+--------+-------------------------------------------+ | localhost | root | *2076BF19746A0ADFADD62DF22FFD41B906F15090 | | 127.0.0.1 | root | *2076BF19746A0ADFADD62DF22FFD41B906F15090 | | ::1 | root | *2076BF19746A0ADFADD62DF22FFD41B906F15090 | | 192.168.3.2 | mac | *2076BF19746A0ADFADD62DF22FFD41B906F15090 | | localhost | dbuser | *2076BF19746A0ADFADD62DF22FFD41B906F15090 | +-------------+--------+-------------------------------------------+
データベースサーバのIPは192.168.3.101
macのIPは192.168.3.2
です。
回答1件
あなたの回答
tips
プレビュー