라즈베리파이 mysql 설치 및 접속방법 입니다.
라즈베리파이에선 데이터베이스로 mysql, sqlite3 두가지를 많이 사용하는거 같네요~
전 mysql, sqlite3 둘다 설치했지만, 사용은 대부분 sqlite3을 사용하고있습니다.
설치한내용과, 사용방법정도는 포스팅하는게 좋다생각하여 오늘은 mysql 설치방법 및 db접속정도를 포스팅하겠습니다.
우선 라즈베리에 mysql을 설치합시다!
설치전에 라즈베리를한번 업데이트 해줍니다
$ sudo apt-get update
$ sudo apt-get upgrade
업데이트가 완료되면 mysql을 설치합니다.
라즈베리에서 mysql을 설치할때 대부분 AMP로 묶어서 설치를 합니다.
A : Apache 웹서버용으로 많이 사용하는 오픈소스입니다!
M : Mysql 오픈소스인 데이터베이스죠?
P : PHP입니다. html에 다양한 기능을 넣기위함?? php를 많이 다뤄보지않아서 설명을 어떻게해야할지 모르겠네요 ㅋㅋ
위에 3개의 앞글자를따서 AMP라 부른다고하네요!
업데이트도 완료했으니 설치를 해봅시다!
$ sudo apt-get install apache2
$ sudo apt-get install mysql-server mysql-client
$ sudo apt-get install php5 php5-common libapache2-mod-php5
설치방법은 간단합니다.. 인터넷만 연결되어있으면 다 잘받아지네요~
mysql-server 설치시 password를 입력합니다.
나중에 접속 시 필요하니 잘 기억해두셔야 합니다!
설치가됬으니 mysql에 잘접속이되는지 라즈베리에서 확인해봅시다.
ex) mysql -u 아이디 -p
전 root 계정으로 접속하겠습니다.
$ mysql -u root -p
Enter password: 나타나면 패스워드를 입력합니다.
mysql> 이 나온다면 정상적으로 Mysql에 접속한 상태입니다.
사용가능한 db 목록을 보기위해서 아래와같은 명령어를 입력합니다
mysql> show databases;
전 3개의 db가있네요. 그중에서 mysql 이라는 db를 사용할겁니다!
DB에있는 테이블이 잘 SELECT 되는지 확인해봅시다!
mysql> SELECT Host,User,Password FROM mysql.user;
mysql.user 는 db에 접속을 허가한 user가 있는곳입니다.
로컬에서(라즈베리) 접속하려면 따로 설정할 필요가 없지만, 대부분이 외부에서 사용하기때문에, user에 db접근을 허용해야합니다.
외부에서 접속을 위한 USER 허용법입니다.
==전체 USER 허용==
mysql > INSERT INTO mysql.user (host,user,password) VALUES ('%','root',password('패스워드'));
mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
mysql > FLUSH PRIVILEGES;
==하나만 허용==
mysql > INSERT INTO mysql.user (host,user,password) VALUES ('111.222.33.44','root',password('패스워드'));
mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'111.222.33.44';
mysql > FLUSH PRIVILEGES;
위와 아래의 차이점을보면 위에는 host에 전체 접근가능한 %를 줬으며
아래는 하나의 ip (111.222.33.44) 만 허용해줬습니다.
이렇게 USER를 허용해줘도 로컬에서만 접속이 가능하고, 외부에서는 접속이 불가능합니다.
이부분은 Mysql의 서버문제가아닌 OS 자체의 문제일 확률이 큽니다.
$ cd /etc/mysql
$ ls
하시게되면 my.cnf 라는 cnf파일이 있습니다. 여기에서 mysql에 외부접속을 허가해줘야합니다. 사용자가 편한 편집기로 들어갑시다
$ sudo vi /etc/mysql/my.cnf
중간으로 조금 내리다보면 bind-address = 127.0.0.1 이라고 한줄 있습니다.
이부분을 주석처리해주시면됩니다. 허용하는 ip는 127.0.0.1만 허용한다 라는 뜻인거같네요
아래와같이 #으로 주석처리를한뒤 저장후 닫습니다!
이부분은 wq! 를 사용하면되겠죠?
이후에 mysql 서비스를 재시작해줍니다.
$ service mysql restart
이후에 외부에서 접속을 해봅시다!
혹시나 아래와같은 오류가 난다면
Lost connection to MySQL server at 'reading initial communication packet', system error: 0
http://tctt.tistory.com/112 참고하세요!
'프로그래밍 > 라즈베리파이' 카테고리의 다른 글
라즈베리파이 자동실행 (1) | 2020.07.21 |
---|---|
라즈베리파이 이미지 백업 (0) | 2017.05.17 |
HeidiSQL (0) | 2017.04.11 |
라즈베리파이 스크린샷 (0) | 2017.04.10 |
라즈베리파이 3 전력부족 (0) | 2017.03.31 |