프로젝트하려고 환경 설정 중이었는데 워크벤치가 먹통이 되어버렸습니다. Window 환경에서도 맘에 들지 않았던 워크벤치였는데 Mac에서는 더 심하네요. 맘에 들지 않습니다. 예전에 DBeaver라는 툴을 썼었는데 편리했던 기억이 있어서 요번엔 요걸로 써보려고 합니다.
MySQL
터미널로 설치하기
brew install mysql
서비스 시작/종료
(base) ☁ ~ mysql.server start
Starting MySQL
. SUCCESS!
(base) ☁ ~ mysql.server stop
root 비밀번호 초기화
(base) ☁ ~ mysql_secure_installation
mySQL 접속
(base) ☁ ~ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.3.0 Homebrew
DB 확인
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| enjoytrip |
| information_schema |
| mysql |
| new_schema |
| performance_schema |
| ssafydb |
| ssafysample |
| sys |
| test3 |
+--------------------+
9 rows in set (0.01 sec)
mysql>
DB 선택 및 table 확인
mysql> use enjoytrip
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+------------------------+
| Tables_in_enjoytrip |
+------------------------+
| attraction_description |
| attraction_detail |
| attraction_info |
| board |
| board_comment |
| favorites |
| file_info |
| friend |
| gugun |
| join_friend |
| join_place |
| member |
| sido |
| travel_plan |
+------------------------+
14 rows in set (0.00 sec)
table 조회
mysql> select * from sido;
+-----------+-----------------------+
| sido_code | sido_name |
+-----------+-----------------------+
| 1 | 서울 |
| 2 | 인천 |
| 3 | 대전 |
| 4 | 대구 |
| 5 | 광주 |
| 6 | 부산 |
| 7 | 울산 |
| 8 | 세종특별자치시 |
| 31 | 경기도 |
| 32 | 강원도 |
| 33 | 충청북도 |
| 34 | 충청남도 |
| 35 | 경상북도 |
| 36 | 경상남도 |
| 37 | 전라북도 |
| 38 | 전라남도 |
| 39 | 제주도 |
+-----------+-----------------------+
17 rows in set (0.00 sec)
유저 생성
mysql> create user 'madirony'@'localhost' identified by '{비밀번호}';
일단은 내부 접속용으로 만들어놓고 필요하면 나중에 바꿀 예정입니다.
mysql> select user, host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| ssafy | % |
| madirony | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)
조회하면 계정이 생성된 것을 확인할 수 있습니다.
모든 DB와 table에 대해 권한 부여
mysql> grant all privileges on *.* to 'madirony'@'localhost';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
root 계정 대용으로 만들었기도 하고 권한은 나중에 다시 바꿔도 되니까 모두 접근이 가능하도록 설정해 두었습니다. 변경된 권한을 바로 적용하려면 flush privileges 명령어를 사용하면 됩니다.
재접속 후 계정 확인
(base) ☁ ~ mysql -u madirony -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 8.3.0 Homebrew
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select user();
+--------------------+
| user() |
+--------------------+
| madirony@localhost |
+--------------------+
1 row in set (0.00 sec)
성공적으로 방금 만든 계정에 접속하였습니다.
DBeaver
DBeaver 설치
(base) ☁ ~ brew install DBeaver-community
MySQL 설정
DBeaver를 실행하고 MySQL을 연결합니다.
연결 테스트까지 마쳤으면 끝났습니다.
테스트용 SQL을 실행하니 테이블 조회가 잘 되는 것을 확인할 수 있었습니다.
DBeaver의 한가지 아쉬운 점은 Community 버전은 NoSQL 연결이 안 된다는 점... 그래도 하나의 DB 관리 툴로 대부분의 DB를 편리하게 다룬다는 것 하나는 좋습니다. 나중에 여유 있으면 결제해서 쓸 듯하네요.
프로젝트는 그래도 어느 정도는 했었지만.. 겉핥기로만 쌓아온 거 같아 차근차근 하나씩 다시 해보고 있는 중입니다. 개념적으로 부족한 부분을 좀 더 채우고 100% 이해한 것을 적용하는 식으로 ..? 그래서 속도는 조금 느릴 수도 있긴 한데 면접에서 말할 지식 챙기는 거라 생각하면 괜찮은 것 같습니다.. 아직 모르는 게 너무 많거든요.
그래서 JPA 설정 쪽도 다시 봤었는데 예전에 경험했던 문제를 사전 차단하는 정도 ...? 같은 실수를 번복하지 않는 게 가장 중요하죠. 이번에는 DB를 자동으로 만들 때 컬럼 명이나 테이블 명을 신경 써보려고 합니다. 자바에서는 카멜 케이스를 쓰지만 DB에서는 스네이크 케이스를 주로 쓰니까.. 이게 예전 프로젝트에서는 통일이 안된 상태로 각자 개발하다 보니까 번거로웠거든요.
진도를 많이 나간 건 아니지만 오랜만에 개발하니까 재밌네요. 취업할 때까지 미친 듯이 달려보겠습니다. 허송세월하기도 싫고 더 이상 놓치기도 싫고.. 남은 20대를 갈아 넣어야겠습니다.
'Computer Science > Database' 카테고리의 다른 글
[MySQL] mysql workbench cannot open document error unserializing grt data 해결법 (0) | 2021.04.11 |
---|---|
mysql 테이블 생성과 조작 그리고 레코드 삽입 (0) | 2019.08.02 |
mysql ERROR 1698 (28000) : Access denied for user 'root'@'localhost' 해결 (0) | 2019.08.02 |