$connect = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if(!$connect){
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit();
}
php에서 이런식으로 db연결을 시도 하고있는데
연결 실패했다.
Host 'ip' is not allowed to connect to this MySQL server
이런 에러내용을 출력했는데
검색해보니 로컬호스트로는 접근가능한데 ip로 접근하려면
해당 ip에 권한을 줘야 접근할수 있다고 한다.
터미널에서 mysql -u root -p 해서 들어가서 접근할때는 잘됬는데
php에서 mysqli_connect 했을 때 접근이 안된다면 권한설정을 확인해야 한다
///////////////////////////////////////////
터미널에서 mysql -u root -p 를 이용해 접속한 후
mysql> use mysql
mysql>SELECT Host, User, Select_priv, Insert_priv,Update_priv, Delete_priv FROM user;
이렇게 입력하면 현재 권한 설정 정보를 볼수 있는데
이곳에 해당 ip가 빠져있다면 접근 불가능 한 것이다
ip접근 권한을 추가하려면
mysql> GRANT ALL PRIVILEGES ON *.* TO root@[ip주소] IDENTIFIED BY ['비밀번호'] WITH GRANT OPTION;
ex) GRANT ALL PRIVILEGES ON *.* TO root@12.34.56.77 IDENTIFIED BY '12345' WITH GRANT OPTION;
이렇게 해주면 된다
모든 ip를 추가하려면
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY '12345' WITH GRANT OPTION;
이렇게 ip 대신 "%" 를 입력해 주면 된다
'공부 > php' 카테고리의 다른 글
(json) jsonobject 안에 jsonarray (0) | 2016.04.28 |
---|---|
(php) json 한글 유니코드 (2) | 2016.04.23 |
(php db연결) select 후 json 만들기 (1) | 2016.04.23 |
(db연결) 레코드, 필드 개수 구하기 (0) | 2016.04.23 |