MySQL 이해 및 실습
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
2. MySQL 이해 및 실습¶
- MySQL(마이에스큐엘)은 세계에서 가장 많이 쓰이는 오픈 소스 관계형 데이터베이스 관리 시스템
- MySQL는 오라클사가 소유. 불확실한 라이선스 정책으로 인해, 동일 소스를 기반으로 MariaDB 가 파생됨 (거의 유사, MariaDB가 오픈소스 라이센스를 따르고 있다고 보면 됨)
2.1 MySQL 설치 - 실습1
1. sudo apt-get update
2. sudo apt-get install mysql-server
- 설치 중간에 비밀번호 설정 주의!!
- 참고: 만약 vi 명령이 없다면, 다음과 같이 vi 설치 및 사용법 숙지
- sudo apt-get install vim
3. sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
- 다음 설정을 [mysqld] 에 추가
1. mysql 원격 접속 허용
- bind-address 0.0.0.0 로 변경
2. mysql 한글 설정 추가
- collation-server = utf8_unicode_ci
- character-set-server = utf8
- skip-character-set-client-handshake
4. sudo service mysql start
- mysql 서비스 시작
참고:
1. sudo apt-get update
2. sudo apt-get install mysql-server
- 설치 중간에 비밀번호 설정 주의!!
- 참고: 만약 vi 명령이 없다면, 다음과 같이 vi 설치 및 사용법 숙지
- sudo apt-get install vim
3. sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
- 다음 설정을 [mysqld] 에 추가
1. mysql 원격 접속 허용
- bind-address 0.0.0.0 로 변경
2. mysql 한글 설정 추가
- collation-server = utf8_unicode_ci
- character-set-server = utf8
- skip-character-set-client-handshake
4. sudo service mysql start
- mysql 서비스 시작
참고:
Usage: /etc/init.d/mysql start|stop|restart|status
- 모든 호스트에서 mysql 접속 허용하기
# mysql -u root -p 후 비밀번호 입력 mysql> use mysql; mysql> GRANT ALL PRIVILEGES ON *.* to 'root'@'%' IDENTIFIED BY 'korea123'; mysql> flush privileges; mysql> exit # sudo service mysql restart
/etc/mysql/mysql.conf.d/mysqld.cnf 파일의 [mysqld] 설정 예 [mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking collation-server = utf8_unicode_ci character-set-server = utf8 skip-character-set-client-handshake # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 0.0.0.0
참고1: use mysql; use 데이터베이스명; 으로 mysql 데이터베이스는 mysql 설정을 저장하고 있는 데이터베이스임. 해당 데이터베이스에서 작업을 하겠다는 의미임. 참고2: mysql 접속 허용 관련 설정 (5장 참고) 1) 로컬에서만 접속 허용 mysql> GRANT ALL PRIVILEGES ON DATABASE.TABLE to 'root'@localhost identified by "korea123"; 2) 특정 호스트에만 접속 허용 mysql> GRANT ALL PRIVILEGES ON DATABASE.TABLE to 'root'@www.blim.co.kr identified by "korea123"; 3) 모든 호스트에서 접속 허용 mysql> GRANT ALL PRIVILEGES ON DATABASE.TABLE to 'root'@'%' identified by "korea123"; 옵션 상세 (1) ALL – 모든 권한 / SELECT, UPDATE – 조회, 수정 권한등으로 권한 제한 가능 예) GRANT INSERT,UPDATE,SELECT ON *.* TO 'username'@'localhost' IDENTIFIED BY '비밀번호'; (2) database.table – 특정 데이터베이스에 특정 테이블에만 권한을 줄 수 있음 / *.* – 모든 데이터베이스에 모든 테이블 권한을 가짐 (3) root – 계정명 (4) korea123 – 계정 비밀번호 참고3: flush privileges; (5장 참고) - user, db 같은 grant table을 INSERT, UPDATE 등을 써서 직접 데이터 입력/수정을 할 경우, grant tables를 다시 읽어야 권한 설정이 적용됨. - 서버를 재기동하지 않고, grant table을 새로 읽으라는 명령이 flush privileges 이지만, INSERT, UPDATE 가 아닌 GRANT 명령을 사용했을 경우에는 해당 명령 생략 가능 (하지만 확실하게 하기 위해 일반적으로 사용)
2.2 mysql workbench 설치 - 실습2
- mysql 서버에 접속해서 SQL 명령을 통해, mysql 데이터베이스 조회 및 조작을 할 수 있는 클라이언트 소프트웨어
- 프로그래머들은 mysql workbench를 사용하기보다는 직접 CLI(Command line interface)를 사용하는 경우가 많음
- workbench 사용법 및 CLI 사용법 둘다 익혀둘 것
- 다운로드 및 설치:
- https://dev.mysql.com/downloads/workbench/ 에서 workbench 다운로드
- 설치 및 mysql 서버 연결 참고, 상세 인터페이스 (https://help.iwinv.kr/manual/read.html?idx=349)
- docker에 mysql 서버를 설치한 경우는 3306 mysql 포트 추가 오픈이 필요함
- 추가 포트 오픈 방법
http://1004jonghee.tistory.com/entry/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%82%AD%EC%A0%9C%ED%95%98%EC%A7%80-%EC%95%8A%EA%B3%A0-%ED%8F%AC%ED%8A%B8-%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0![image.png](attachment:image.png)
- 예: commit 후 새로운 image로 기존 옵션에 -p 3306:3306 추가해서 docker 실행
docker run -Pit -i -t -p 8888:8888 -p 8787:8787 -p 8022:22 -p 3306:3306 --name dave_ubuntu ubuntu /bin/bash
- 윈도우10의 경우 workbench 연결 설정의 Hostname을 127.0.0.1 로 하면 접속 성공
- 맥의 경우 workbench 연결 설정의 Hostname을 0.0.0.0 으로 하면 접속 성공
- mysql 서버에 접속해서 SQL 명령을 통해, mysql 데이터베이스 조회 및 조작을 할 수 있는 클라이언트 소프트웨어
- 프로그래머들은 mysql workbench를 사용하기보다는 직접 CLI(Command line interface)를 사용하는 경우가 많음
- workbench 사용법 및 CLI 사용법 둘다 익혀둘 것
- 다운로드 및 설치:
- https://dev.mysql.com/downloads/workbench/ 에서 workbench 다운로드
- 설치 및 mysql 서버 연결 참고, 상세 인터페이스 (https://help.iwinv.kr/manual/read.html?idx=349)
- docker에 mysql 서버를 설치한 경우는 3306 mysql 포트 추가 오픈이 필요함
- 추가 포트 오픈 방법
http://1004jonghee.tistory.com/entry/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EC%82%AD%EC%A0%9C%ED%95%98%EC%A7%80-%EC%95%8A%EA%B3%A0-%ED%8F%AC%ED%8A%B8-%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0![image.png](attachment:image.png)
- 예: commit 후 새로운 image로 기존 옵션에 -p 3306:3306 추가해서 docker 실행
docker run -Pit -i -t -p 8888:8888 -p 8787:8787 -p 8022:22 -p 3306:3306 --name dave_ubuntu ubuntu /bin/bash
- 윈도우10의 경우 workbench 연결 설정의 Hostname을 127.0.0.1 로 하면 접속 성공
- 맥의 경우 workbench 연결 설정의 Hostname을 0.0.0.0 으로 하면 접속 성공
mysql 접속 명령¶
# mysql -h host -u user -p [password] dbname
host: mysql 서버 주소 (관련 옵션 사용 안하면, 현재 PC)
user: mysql ID
password: mysql ID의 암호
예)
# mysql -u root -p
현재 PC에 root ID로 별도 데이터베이스를 지정하지 않고, 접속
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
퀄러티가 다른 온라인 강의로 차근차근 익혀보세요
실습3 - 데이터베이스, 테이블 목록 보기
# mysql -u root -p # show databases; # use mysql; # show tables; # use information_schema; # show tables; # exit