DB 만들기
이전에 외부에서 라즈베리파이(이하 라파)에 접근하는 방법을 정리했다.
이제 라파에 데이터베이스를 구축해 보도록 하자. 필자는 MariaDB를 사용했다.
설치 및 기초 세팅
우선 MariaDB를 설치해주자.
sudo apt-get update
sudo apt-get install mariadb-server
설치가 완료되었다면 mysql에 접속해보자.
sudo mysql
use mysql;
그 다음 아래의 명령어를 사용해 값들이 잘 나오는지 확인해보자.
select user, host, password from user;
값들이 잘 나왔다면 라파 내부가 아닌 외부에서도 DB에 접속할 수 있게 권한을 설정해주자.
create user '사용할 계정명'@'%' identified by '비밀번호';
grant all privileges on *.* to '위에서 생성한 계정명'@'%';
flush privileges;
이제 접속을 하면 되는데, 만약 외부에서 접속을 시도할 때 필자 처럼 에러를 겪는다면 아래와 같은 방법을 적용해보는 것도 좋다.
1. Access denied for user '사용자명'@'IP주소' (using password: YES)
이 에러의 경우 mariaDB의 접근 허용이 안되어있거나 아래에 기술할 에러가 원인이 될 수 있다.
우선 접근 허용을 하는 방법에 대해서 알아보자.
우선 라파에 들어가 보자.
pi@raspberrypi:~ $ cd /etc/mysql/mariadb.conf.d
pi@raspberrypi:/etc/mysql/mariadb.conf.d $ sudo nano 50-server.cnf
해당 파일에 들어가 bind-adress가 적혀있는 코드를 주석처리 해주자.
#bind-address = 127.0.0.1
이렇게 해주면 외부 환경의 접속을 허용하게 된다.
이와같이 수정했는데도 에러가 발생한다면 아래의 방법을 추가적으로 적용해보자.
2. ERROR: 1698 (20000): Access denied for user '사용자명'@'localhost'
위의 에러 코드가 발생하는 원인은 다음과 같다.
- 접근할 때 비밀번호를 잘못 입력했다.
- 권한 설정이 잘못되었다.
1번과 2번의 경우 데이터가 없다는 가정 하에 기존 유저를 삭제하고 다시 생성한다면 해결된다.
root 계정에 비밀번호를 설정했다면 p 뒤로 입력하자(입력 안해도 비밀번호는 나중에 입력 가능하다)
mysql -u root -p
접속한 다음 유저를 목록을 조회한다.
위의 root2가 필자가 생성한 사용자이다.
만약 비밀번호를 설정하지 않았으면 다음과 같은 방법을 사용해 비밀번호를 설정해주자.
set password for '계정명'@'localhost'=password('사용할 비밀번호');
flush privileges;
혹시 그래도 안된다? 그러면 어쩔 수 없이 사용자를 삭제해줘야한다.
drop user '사용자명'@'localhost';
삭제가된 모습을 확인하고 새로운 사용자를 만들어주자.
create user '사용자명'@'%' identified by '비밀번호';
위의 코드에서 %의 의미는 모든 IP 접속을 허용한다는 것이다. 이게 설정이 안되어있으면 외부에서의 접근이 불가능하다.
포트포워딩
이제 외부에서 들어오는 접근을 포트포워딩을 통해 DB로 연결시켜주자.
이 다음 외부에서 접속을 해주면 원활하게 DB에 접근이 가능할 것이다.
접근할 때 호스트명/IP란에 외부 IP 주소를 적어주고, 사용자란에 아까 생성한 사용자명을 입력, 암호에는 해당 사용자의 비밀번호를 작성해준다.
'프로젝트 > 북극팽귄 프로젝트' 카테고리의 다른 글
라즈베리파이를 이용한 웹 서버 구축 (3) - 배포 (1) | 2024.10.25 |
---|---|
라즈베리파이를 이용한 웹 서버 구축 (1) - 외부에서 라파 접속 가능하게 하기 (0) | 2024.09.27 |
페이지 이동에 따른 게임 실행 에러 해결.V2 (5) | 2024.09.11 |
페이지 이동에 따른 게임 실행 에러 해결 (0) | 2024.09.09 |
웹 게임 만들기를 도와주는 Kaplay 라이브러리 사용 (4) | 2024.09.03 |