특정한 페이지에서만 외부db접속하여 정보를 가져오려합니다.
본문
아래와 같이 특정페이지에서만 처리했는데
접속이 안되는거 같은데도 성공 문구가 나오는듯합니다.
<?php
$host = '122.136.101.146:13040';
$user = 'dock';
$pw = 'dock.08319';
$dbName = 'dockdb';
$connect = new mysqli($host, $user, $pw, $dbName);
if($connect){
echo "MySQL 접속 성공";
}else{
echo "MySQL 접속 실패";
}
?>
패스워드를 다르게 넣어도
문구는 MySQL 접속 성공 이라고 나오네요
실제 아래와 같이 접속을 해봤습니다.
[w81]$ mysql -h 122.136.101.146:13040 -udock -p dockdb
Enter password:
ERROR 2005 (HY000): Unknown MySQL server host '122.136.101.146:13040' (-2)
답변 2
문법이조금 이상한데요
mysqli_connect(host, username, password, dbname, port, socket)
https://www.w3schools.com/php/func_mysqli_connect.asp
의 샘플코드
<?php
$con = mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}
?>
를 기반으로 수정하면
<?php
$host = '122.136.101.146';
$port = '13040';
$user = 'dock';
$pw = 'dock.08319';
$dbName = 'dockdb';
$connect = mysqli_connect($host, $user, $pw, $dbName, $port);
if (mysqli_connect_errno()) {
echo "MySQL 접속 실패";
exit;
}
else{
echo "MySQL 접속 성공";
}
?>
와 같이 되어야 테스트 진위여부를 명확하하겠네요
mysql 접속시에 해당서버에서 외부접근을 허용했는지 확인이필요합니다.
허용안할경우 무조건 접근불가 입니다.
!-->!-->
new mysqli <-- 이건.. 어딧는건가요? 클래스로 뭐 만들어 놓으신게 있으신건가요 -0-;