개발/php

php를 우분투에 설치하고 나서 실행시 나왔던 오류!!!!

1104탱크 2025. 2. 23. 17:27
반응형
php mysql apache
를 각각 구축하고
실행해보니
mysqli를 찾을수 없다고
오류가 나왔다.


그래서
다음과 같이
해결해보았다.

 

 

이 오류는  mysqli가 활성화가 안되서 그런거구나

 

# 우분투에서  cd 명령어를 이용하여 php.ini에 접근한다.
cd  어쩌구자쩌구/php.ini

# php,ini 파일을 code 명령어로 열은다.
code php.ini

#ini 파일은 ;로 주석처리 되어있다. 제거하여 활성화
extension =mysqli 


# 그리고 저장하고 시스템 재시작후 실행해보기

 

 

잘 될줄 알았는데  오류가 안나오네 흰화면만 나오네

 

php.ini 에 들어가서  error를 보여주는 특성 off 에서 on으로 설정하기

#  /etc/php/8.1/apache2/php.ini

# 아래 설정을 찾아서 On으로 변경합니다.

display_errors = On
display_startup_errors = On
error_reporting = E_ALL

 

그래서  나오는 오류를 살펴보니  dbConn.php 내  사용되는 mysql 에서  Access denied가 생겼다.

 

 

 

포트 때문에 그런가
mysql> show global variables LIKE 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.10 sec)

 

포트 문제는 아니었구나.... 기본적으로 mysql은  3306포트를 지원합니다.

 

 

엑세스에 접근이 안되는 거 기준으로 구글링

 

https://velog.io/@shyuuuuni/Error-Access-denied-for-user-rootlocalhost-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-%EC%82%AC%EB%A1%80-sqlState-28000

 

Error: Access denied for user 'root'@'localhost' (sqlState: '28000') 에러 해결 사례

typeorm 문제인줄 알았는데 mysql 문제였다고..!

velog.io

 

 

 

 

ubuntu와 같은 몇몇 시스템에서는 기본값으로 UNIX auth_socket 플러그인을 사용한다.

 

그러면 다음과정을 따르면 된다.

1. 관리자권한으로 mysql에 접근한다.

2. user 테이블을 user , host , plugin으로 검색해본다.

3. mysql 인증관리자 mysql_native_password로 변경해준다. >>> 비밀번호 재설정후 적용하기

# 일단은 sudo 권한으로 mysql 접속해준다
andante@andante-IdeaPad-1-15IJL7:/var/www/html$ sudo mysql -u root -p
Enter password:

# mysql 이름의 데이터베이스에 관련 정보가 있다.
mysql > USE MYSQL

# USER과 HOST를 조회한다.
mysql> select user, host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+

# 추가로 플러그인 까지 조회해본다.
mysql> select user,host,plugin from mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| debian-sys-maint | localhost | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | auth_socket           |
+------------------+-----------+-----------------------+
5 rows in set (0.00 sec)


# UPDATE문을 이용해서 root의 user의 plugin을 mysql_native_password로 변경해준다.
UPDATE user SET plugin='mysql_native_password' where user='root';

# mysql_native_password는 비밀번호도 따로 만들어줘야 한다.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '1234';


# EXIT 하지말고 flush privileges를 통해 적용시켜줘야한다.
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

 

오류내용이 안보이면 된것이다.

 

 

이상으로 우분투에서
php 개발 환경 구축중에
나타난 mysqli 에러를
해결하였다.