반응형
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포트를 지원합니다.
엑세스에 접근이 안되는 거 기준으로 구글링
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 에러를
해결하였다.
'개발 > php' 카테고리의 다른 글
[php] 사용자 계정 탈퇴시 관련 내용들이 삭제되지 않는 오류 해결하기 (0) | 2025.03.05 |
---|---|
[ ubuntu ] DB 백업 파일 적용하기 (0) | 2025.02.27 |
[ PHP ] php form 입력을 이용한 계산기 만들어보기 (0) | 2025.02.11 |
[windows] PHP 환경 직접 구축해보기 (1) | 2025.02.11 |