본문 바로가기
프로그래밍/라즈베리파이

라즈베리파이 mysql 설치 및 접속방법

by TcTT 2017. 4. 11.
반응형

라즈베리파이 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