APM- MySQLi / php와 MySQL 연결하기

ouneno·2023년 9월 10일
0

Etc

목록 보기
11/20
post-thumbnail

My Infomation APM

  • Apache Web Server
  • PHP 8.1.2-1ubuntu2.14 (cli)
  • mysql Ver 8.0.34-0ubuntu0

PHP와 MySQL의 연결을 위해 찾아보다 MySQLi에 대해서 알게 되었다.
PHP언어를 접하고 알아갈게 너무나 많다😫 한참 남았다!


❓ MySQLi이란?

MySQLi(mySQL Improved)

  • PHP에서 MySQL 데이터베이스와 상호작용하기 위한 확장(extension)
  • PHP에서 제공해주는 기능 중에 하나
  • MySQL보다 더 빠르고 안전한 쿼리문이라고 볼 수 있다.

더 자세한 내용은 php사이트에서 확인가능하다.
https://www.php.net/manual/en/book.mysqli.php!


🤯 500 서버 에러발생, extension=mysqli(?)

우분투를 통해 접속을 하는데, PHP에서 MySQLi를 사용해서 접속하려니 브라우저에 500 Error가 발생했다.

500Error라고 한다면 서버 자체의 에러인데, MySQL에서 사용중인 호스트나 유저명, 비밀번호 등 값을 정확히 입력했는데도 에러가 떴다.

이래저래 씨름하다가 알아낸 것은 mysqli 모듈이 없었던 것..하

  1. 일반적으로 php에서는 phpinfo()를 작성하면 PHP에 대한 정보를 확인 할 수 있다.
<?php
	phpinfo();
?>
  1. 직접 php.ini 경로를 찾아들어가 extension=mysqli가 있는지 확인도 해봤다. (있는줄알았는데 없었음)
cd /etc/php/8.1/cli/
sudo nano php.ini
  1. php.ini파일에 없는 것을 확인하고 바로 mysqli 모듈을 설치했다.
apt-get install php8.1-mysqli
  1. php에서 다시 pageinfo()를 실행하니 설치되어진 것이 확인된다.

😱 호스트주소와 유저를 잘 입력하자.

<?php
	$host = "호스트주소 or IP";
    $user = "사용자이름";
    $pw = "패스워드";
    $db = "데이터베이스이름";
    
    $connect = mysqli_connect($host, $user, $pw, $db);
    
    if ($connect) {
    	echo "연결 성공";
	} else {
    	echo "연결 실패 : ";
		mysqli_connect_error()."<p>";
?>

정신없이 설치하고 DB연결을 시키려는데 또 오류가 발생했다.

Error

Host 'xx.xxx.xxx.xx' is not allowed to connect to this MySQL server

Fatal error: Uncaught mysqli_sql_exception: Host 'xx.xxx.xxx.xx' is not allowed to connect to this MySQL server in /var/www/html/php파일명.php:22 Stack trace: #0 /var/www/html/php파일명.php(22): mysqli_connect() #1 {main} thrown in /var/www/html/php파일명.php on line 22


에러원인

user와 host를 잘못 작성...
MySQL에 들어가서 user와 host를 다시 검색해봤다.

SELECT user, host FROM mysql.user

<?php
...(생략)
$host = "localhost"
$user = "root"
...(생략)
?>

$host를 잘못 입력해서 500 서버에러가 떴었던 것이였다.
다시 제대로 찾아보고 입력을 했더니 연결 성공을 확인할 수 있었다.

profile
지속적인 성장을 추구하는 새싹 개발자입니다🌱

0개의 댓글