CakePHP로 MySQL에 접속하려고 하면 「SQLSTATE[HY000] [2002] No such file or directory」라고 나왔다
「SQLSTATE[HY000][2002] No such file or directory」라고 하는 에러가 나와 접속을 확인할 수 없었기 때문에, 여러가지 조사해 대응했습니다.
원인
mysql.sock
라는 MySQL 소켓에 관한 파일이 잘 읽히지 않는 것이 원인인 것 같습니다.
( config/app.php
의 연결 정보가 올바른지 확인됨)
대응
mysql.sock의 위치 확인
# mysqladmin version
mysqladmin Ver 9.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Server version 10.1.26-MariaDB-0+deb9u1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 2 min 37 sec
Threads: 1 Questions: 88 Slow queries: 0 Opens: 32 Flush tables: 1 Open tables: 26 Queries per second avg: 0.560
상기의 UNIX socket
의 항목에 /var/run/mysqld/mysqld.sock
라고 있습니다만, 이것이 mysqld.sock
의 패스가 됩니다.
mysql.sock의 위치를 php에게 가르친다.
php.ini
에 mysql.sock
의 패스를 기술합니다.
이를 위해 먼저 php.ini
의 위치를 찾습니다.
# php -i | grep php.ini
//php -iでphpに関する情報を表示しつつ、grepでphp.iniの部分だけ検索して表示します
Configuration File (php.ini) Path => /usr/local/etc/php
Loaded Configuration File => /usr/local/etc/php/php.ini
다음으로 php.ini
에 기술합니다.
PDO를 사용하기 위해 다음과 같이 설명합니다.
# vim /usr/local/etc/php/php.ini
php.inipdo_mysql.default_socket=/var/run/mysqld/mysqld.sock
MySQL 서버 재시작
# service mysql restart
확인
cakephp의 빌트인 서버를 기동해, 브라우저로부터 액세스 해, Database의 항목에 녹색 콕 모자가 붙어 있으면 OK입니다.
# bin/cake server -H 0.0.0.0 -p 80
이런 느낌↓
【참고】
(mysql.sock 관련)
htps //w w. 모구마구. 이 m/wp/를 rdp 렛 s/아 r ゔぇ s/1198
(php.ini 관련)
htps : // m / u g23 / ms / ab76 7104 0d073f1712
(SQL 관련)
htps : // 코 m / 유 sk24 / ms / 923305 5 아카에 19f6976d
htps : // 우에 b 걸린다. 네 t/mysql/mysql-로오 t파스ぉ
Reference
이 문제에 관하여(CakePHP로 MySQL에 접속하려고 하면 「SQLSTATE[HY000] [2002] No such file or directory」라고 나왔다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Yorinton/items/bfdf962fe4b7339866f6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
mysql.sock의 위치 확인
# mysqladmin version
mysqladmin Ver 9.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Server version 10.1.26-MariaDB-0+deb9u1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 2 min 37 sec
Threads: 1 Questions: 88 Slow queries: 0 Opens: 32 Flush tables: 1 Open tables: 26 Queries per second avg: 0.560
상기의
UNIX socket
의 항목에 /var/run/mysqld/mysqld.sock
라고 있습니다만, 이것이 mysqld.sock
의 패스가 됩니다.mysql.sock의 위치를 php에게 가르친다.
php.ini
에 mysql.sock
의 패스를 기술합니다.이를 위해 먼저
php.ini
의 위치를 찾습니다.# php -i | grep php.ini
//php -iでphpに関する情報を表示しつつ、grepでphp.iniの部分だけ検索して表示します
Configuration File (php.ini) Path => /usr/local/etc/php
Loaded Configuration File => /usr/local/etc/php/php.ini
다음으로
php.ini
에 기술합니다.PDO를 사용하기 위해 다음과 같이 설명합니다.
# vim /usr/local/etc/php/php.ini
php.ini
pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock
MySQL 서버 재시작
# service mysql restart
확인
cakephp의 빌트인 서버를 기동해, 브라우저로부터 액세스 해, Database의 항목에 녹색 콕 모자가 붙어 있으면 OK입니다.
# bin/cake server -H 0.0.0.0 -p 80
이런 느낌↓
【참고】
(mysql.sock 관련)
htps //w w. 모구마구. 이 m/wp/를 rdp 렛 s/아 r ゔぇ s/1198
(php.ini 관련)
htps : // m / u g23 / ms / ab76 7104 0d073f1712
(SQL 관련)
htps : // 코 m / 유 sk24 / ms / 923305 5 아카에 19f6976d
htps : // 우에 b 걸린다. 네 t/mysql/mysql-로오 t파스ぉ
Reference
이 문제에 관하여(CakePHP로 MySQL에 접속하려고 하면 「SQLSTATE[HY000] [2002] No such file or directory」라고 나왔다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Yorinton/items/bfdf962fe4b7339866f6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# bin/cake server -H 0.0.0.0 -p 80
Reference
이 문제에 관하여(CakePHP로 MySQL에 접속하려고 하면 「SQLSTATE[HY000] [2002] No such file or directory」라고 나왔다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Yorinton/items/bfdf962fe4b7339866f6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)