일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 안드로이드 라이선스
- 안드로이드 유닛 테스트
- 객체
- 스택 자바 코드
- 안드로이드 os 구조
- 안드로이드 라이선스 종류
- android ar 개발
- 자바 다형성
- 안드로이드 레트로핏 사용법
- ANR이란
- 큐 자바 코드
- 안드로이드 레트로핏 crud
- 2022 플러터 안드로이드 스튜디오
- 2022 플러터 설치
- rxjava hot observable
- jvm이란
- 플러터 설치 2022
- android retrofit login
- Rxjava Observable
- ar vr 차이
- rxjava cold observable
- 스택 큐 차이
- 서비스 vs 쓰레드
- rxjava disposable
- 안드로이드 유닛테스트란
- 서비스 쓰레드 차이
- 안드로이드 유닛 테스트 예시
- 멤버변수
- jvm 작동 원리
- 클래스
- Today
- Total
나만을 위한 블로그
[PHP] 버추얼박스로 하이디 SQL과 MySQL 연동하기 본문
※ 이 글은 버추얼박스, CentOS 7을 기준으로 작성됨
※ 이 글은 전에 포스팅한 MySQL 8.0.15 버전을 기준으로 작성됨
참고한 사이트 (MySQL의 계정과 권한에 대한 이해가 필요하다. 이 설명은 공식 홈페이지를 한 줄 한 줄 잘 읽고 구글에 여러 자료를 검색하면 좋은 글들이 많으니 참고)
https://dev.mysql.com/doc/refman/8.0/en/grant.html
https://dev.mysql.com/doc/refman/8.0/en/roles.html
https://dev.mysql.com/doc/refman/8.0/en/account-names.html
MySQL 설치글
https://onlyfor-me-blog.tistory.com/81
이 글에서 포트번호가 port:33060 이라고 나오는데 난 3306으로 해도 성공했다. 나중에 잘 안되면 3306에서 33060으로 바꿔야겠다.
다운받기 전 버추얼박스의 센토스를 우클릭해 설정 -> 네트워크 -> 고급 -> 포트 포워딩을 눌러 3306 포트를 열어야 한다. 왜냐면 내가 설치한 MySQL은 3306이란 포트를 쓰기 때문에, 윈도우(외부)에서 하이디 SQL로 리눅스(내부)에 깔린 MySQL에 접속하려면 이렇게 포트 포워딩을 해서 포트를 뚫어줘야 접근 가능하기 때문이다.
설정이 끝났다면 먼저 하이디 SQL 공식 사이트에서 프로그램을 다운받는다. 내가 받은 건 10.3 버전이다.
역시 시간이 지날수록 최신 버전이 나오기 때문에 설치 과정은 좀 달라지겠지만 설치의 큰 틀은 다음 버튼만 줄창 누르면 설치된다.
https://www.heidisql.com/download.php
난 이 버튼을 눌러 다운받았다.
그러면 파일이 하나 다운로드된다.
다른 블로그들은 예전 버전을 설치해서 그런가 모르겠는데 내가 받은 버전을 설치할 때 중간에 다크 테마를 쓸지 기본 화이트 테마를 쓸지 선택하는 부분이 있었다. 다크 테마를 쓸 거면 체크하고 다음을 누르면 된다. 난 체크했다.
이후 다음 버튼만 줄창 누르면 된다.
설치가 완료되면 하이디 SQL을 킬거냐는 체크박스에도 체크가 돼 있으니까 다음 누르면 된다.
그럼 처음엔 이 화면이 나온다.
왼쪽 하단의 신규 버튼을 누르면 Unnamed란 이름의 세션이 하나 생성되고 우측에 정보를 입력할 수 있다.
호스트명은 apm 설치 시 localhost라고 했다면 localhost를 쓴다. 혹은 자신을 가리키는 아이피(127.0.0.1)를 쓰면 된다.
127.0.0.1을 쓰려면 아파치 설정 시 ServerName을 정하는 부분에 localhost가 아니라 127.0.0.1을 써야 될 수도 있다. 혹시 안되면 참고.
user 네임은
# mysql -uroot -p
=> user mysql;
=> select host, user from user;
위 커맨드 입력 후 localhost 옆에 나오는 걸 쓰면 된다.
비밀번호는 당연히 MySQL 비밀번호를 입력한다.
네트워크 유형은 저 상태로 건드리지 않는다. 뭐 있는지 보려면 눌러서 보는 것도 좋다.
여기까지 다 입력했고 왼쪽 세션의 이름도 정해서 열기를 눌렀다면, 정상적으로 MySQL과 연결됐을 경우 이 화면이 나온다.
이 화면이 뜬다면 하이디SQL과 MySQL 연동은 성공한 것이다.
이 다음에 해야 하는 중요한 과정이 있다. 내 경우 이걸 하지 않았더니 보라색 상병 표시 밑에 우클릭 -> 새로 생성 -> 데이터베이스를 누르면 이런 오류가 나왔다.
access denied for user 'root'@'localhost'
먼저 센토스로 이동해 터미널에서 mysql을 켠다. 켜 있는 상태라면 굳이 또 킬 필요 없다.
# mysql -uroot -p // 원래 -u root 라고 쳐야 하는 것 같은데 이렇게 쳐도 된다.
Enter password : // 이 부분은 비밀번호를 입력해도 터미널 화면에 아무것도 나오지 않는다. 당당하게 입력한다.
비밀번호까지 치고 나서
use mysql;
=> select host, user, authentication_string from user;
위 커맨드들을 치면 이런 화면이 나올 것이다.
select host, user, authentication_string from user;는 현재 MySQL의 계정(user) 정보를 확인하는 SQL문이다.
user 대신 root를 넣으면 그런 데이터베이스 없다고 나오니 user를 쓰자. (실제로 show databases; 쳐서 생성된 DB들을 확인하면 root라는 DB는 없는 걸 볼 수 있으니 참고)
그림 맨 마지막에 host는 localhost, user는 root라고 표시된 게 보인다.
이것은 root 계정으로는 로컬(localhost)에서만 접근 가능하다는 뜻이다.
하이디 SQL을 쓰는 목적은 내부(리눅스)에서만이 아닌 외부(윈도우)에서도 웹 서버 DB에 접속해, 데이터베이스와 터미널을 추가하고 수정 및 삭제하기 위함이다. 그런데 localhost(내부)에서만 접속할 수 있다면 외부에선 아무것도 할 수가 없으며, 외부에서 접근하려 하면 위와 같은 에러 메시지만 보게 될 것이다.
다행히 이 블로그에서 어떻게 하면 좋을지 써놨다.
https://hhhhhhhong.tistory.com/17
MySQL 설치글을 따라 설치했고 select host, user, authentication_string from user; 를 입력해 저 위의 그림까지 봤다면 아래 3개의 SQL문들을 차례로 입력한다.
create user 'root'@'%' identified by '비밀번호입력';
grant all privileges on *.* to 'root'@'%';
flush privileges;
맨 위는 내가 입력한 비밀번호를 쳐야 어디서든 접속할 수 있는 root 계정을 만드는 SQL문 같다.
가운데의 grant 어쩌고 해서 길게 써 있는 SQL 문은 root 계정에 모든 권한을 주고 어디서든 접속할 수 있게 하겠다는 뜻 같다.
flush는 설정한 권한을 적용시키는 SQL문이다. 권한을 변경했으니 적용해야 하기 때문에 이 명령어를 치는 것 같다.
다른 블로그에는 # vi /etc/my.cnf를 쳐서 bind-address를 주석치고 0.0.0.0으로 변경하라는 말이 있었지만 이 블로그에 따르면 MySQL 8.0은 5.7과 다르게 주석칠 필요가 없다고 한다.
이것까지 설정했다면 DB와 테이블을 새로 생성하고 이 안에 변수와 타입을 설정하여 나만의 테이블과 DB를 저장할 수 있다.
'PHP' 카테고리의 다른 글
[PHP] 포트 열기 (0) | 2019.12.28 |
---|---|
[PHP] MySQL과 하이디 SQL을 연동하면서 생긴 에러들 해결법 정리 (0) | 2019.12.28 |
[PHP] CSS 공부 기록 (0) | 2019.12.24 |
[PHP] HTML 공부 기록 (0) | 2019.12.24 |
[PHP] CentOS 7 Apache와 아톰 연동하기 (0) | 2019.12.24 |