{"id":17362851,"url":"https://github.com/mjbae/mysql_sequelize","last_synced_at":"2025-03-27T17:30:18.538Z","repository":{"id":114792387,"uuid":"316689980","full_name":"MJbae/MySQL_Sequelize","owner":"MJbae","description":null,"archived":false,"fork":false,"pushed_at":"2021-01-30T08:05:03.000Z","size":107,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T20:45:22.397Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MJbae.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-28T08:31:43.000Z","updated_at":"2021-01-30T08:05:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"bf3a2ee0-2713-4a39-8a54-67e6bdded47b","html_url":"https://github.com/MJbae/MySQL_Sequelize","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MJbae%2FMySQL_Sequelize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MJbae%2FMySQL_Sequelize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MJbae%2FMySQL_Sequelize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MJbae%2FMySQL_Sequelize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MJbae","download_url":"https://codeload.github.com/MJbae/MySQL_Sequelize/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245892380,"owners_count":20689488,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T19:43:33.574Z","updated_at":"2025-03-27T17:30:18.515Z","avatar_url":"https://github.com/MJbae.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MySQL_Sequelize\n## 1. Docker로 MySQL을 설치하는 이유\n\n### 가. 로컬환경을 깨끗하게 유지하기 위해\n\n- 로컬 환경에 DBMS를 직접 설치시 로컬환경에서 DB 사용에 따라 잔류한 데이터를 완전히 삭제하기 힘들다\n- 가상환경 위에 DBMS를 설치한다면 해당 가상환경을 삭제하면서 관련 데이터도 함께 간편하게 삭제할 수 있음\n\n### 나. 가상환경으로 Docker를 선택한 이유\n\n- VM 기반의 리눅스 등에 DBMS를 설치할 수 있지만 Docker가 더 가볍고 사용하기 편리함\n\n## 2. 설치 요구사항\n\n- 요구사항\n\n## 3. 설치 과정\n\n### 가. 도커설치\n\n- 정상 설치 확인 명령어: docker --version\n\n### 나. mysql server 5.7 버전 이미지 다운로드\n\n- 설치 명령어: docker pull mysql:5.7\n- 버전을 명시하지 않으면 자동으로 최신버전을 설치함\n- 이미지 정상 다운로드 확인 명령어: docker images\n\n### 다. mysql 컨테이너 실행\n\n- 컨테이너 실행 및 mysql 환경변수 변경 명령어 포함\n\n    ```docker\n    docker run -d -p 3309:3306 -e MYSQL_ROOT_PASSWORD=password --name mysql_docker_test1 mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci\n    ```\n\n    → 컨테이너 실행 명령어: docker run -d -p 3309:3306 -e MYSQL_ROOT_PASSWORD=password --name mysql_docker_test1 mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci\n\n    → 환경변수 변경 명령어: -character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci\n\n    → mysql config 설정 변경 latin1 → utf8\n\n    → mysql에서 한글작업할 수 있도록 인코딩 설정 변경\n\n- 컨테이너 정상 동작 확인 명령어: docker ps -a\n\n    → status에 up이라고 표시되야 정상 동작\n\n    → run 명령어는 컨테이너 create 과 run을 동시 수행\n\n### 라. mysql 컨테이너에 bash로 접속\n\n- bash 접속 명령어: docker exec -i -t mysql_docker_test1 bash\n- mysql 접속 명령어: mysql -u root -p\n\n### 마. mysql sever ↔ mysql client 정상 통신 확인\n\n- mysql workbench에서 mysql server로 test connection 시도\n\n    → 포트 맵핑 상태 점검\n\n### 바. mysql User 생성 및 권한 부여\n\n```sql\nmysql\u003e CREATE USER 'MJ'@'%' IDENTIFIED BY 'password';\n\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql\u003e GRANT ALL PRIVILEGES ON *.* TO 'MJ'@'%';\n\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql\u003e flush privileges;\n\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql\u003e quit\n\n출처: https://jang8584.tistory.com/267 [개발자의 길]\n```\n\n- 생성한 User로 server 접속\n\n![https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8ca38639-6c87-433b-bf72-efe2b17debe3/User_.png](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8ca38639-6c87-433b-bf72-efe2b17debe3/User_.png)\n\n## 4. mysql client library 설치\n\n- JDBC 활용하여 java mysql-server 연동\n\n```sql\npackage MJ.JavaBasic.pc_manager;\n\nimport com.mysql.jdbc.Connection;\n\nimport java.sql.DriverManager;\nimport java.sql.SQLException;\n\npublic class DBConnector {\n    public static void main(String args[]) {\n        Connection con = null;\n\n        String server = \"127.0.0.1:3309\"; // MySQL 서버 주소\n        String database = \"\"; // MySQL DATABASE 이름\n        String user_name = \"MJ\"; //  MySQL 서버 아이디\n        String password = \"password\"; // MySQL 서버 비밀번호\n\n        // 1.드라이버 로딩\n        try {\n            Class.forName(\"com.mysql.jdbc.Driver\");\n        } catch (ClassNotFoundException e) {\n            System.err.println(\" !! \u003cJDBC 오류\u003e Driver load 오류: \" + e.getMessage());\n            e.printStackTrace();\n        }\n\n        // 2.연결\n        try {\n            con = (Connection) DriverManager.getConnection(\"jdbc:mysql://\" + server + \"/\" + database + \"?useSSL=false\", user_name, password);\n            System.out.println(\"정상적으로 연결되었습니다.\");\n        } catch (SQLException e) {\n            System.err.println(\"con 오류:\" + e.getMessage());\n            e.printStackTrace();\n        }\n\n        // 3.해제\n        try {\n            if (con != null)\n                con.close();\n        } catch (SQLException ignored) {\n        }\n    }\n}\n```\n\n## 에러 해결\n\n### 가. mysql sever ↔ mysql client test connection 실패\n\n- 현상\n\n    ![https://s3-us-west-2.amazonaws.com/secure.notion-static.com/67dac1a2-9d6e-436a-9078-a6de6c360e07/.png](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/67dac1a2-9d6e-436a-9078-a6de6c360e07/.png)\n\n- 원인\n\n    ![https://s3-us-west-2.amazonaws.com/secure.notion-static.com/96b46f6b-0862-43cf-b3fd-fb43fb2ebb58/_.png](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/96b46f6b-0862-43cf-b3fd-fb43fb2ebb58/_.png)\n\n- 문제원인 해결\n\n    ![https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6a3a58a5-5213-477b-be16-65bb31df8b5a/_.png](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6a3a58a5-5213-477b-be16-65bb31df8b5a/_.png)\n\n- 결과\n\n    ![https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1d5eef72-b1e0-4ab5-971f-399f20c5487d/.png](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1d5eef72-b1e0-4ab5-971f-399f20c5487d/.png)\n\n## Reference\n\n- 설치과정 전반, [https://www.hanumoka.net/2018/04/29/docker-20180429-docker-install-mysql/](https://www.hanumoka.net/2018/04/29/docker-20180429-docker-install-mysql/)\n- User 생성, [https://jang8584.tistory.com/267](https://jang8584.tistory.com/267)\n- MySQL Connector 세팅, [https://whitepaek.tistory.com/18](https://whitepaek.tistory.com/18)\n- JDBC 활용(MySQL), [https://victorydntmd.tistory.com/145](https://victorydntmd.tistory.com/145)\n- 에러 해결, [https://stackoverflow.com/questions/64307077/docker-compose-only-one-usage-of-each-socket-address-protocol-network-address/64310265](https://stackoverflow.com/questions/64307077/docker-compose-only-one-usage-of-each-socket-address-protocol-network-address/64310265)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjbae%2Fmysql_sequelize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmjbae%2Fmysql_sequelize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjbae%2Fmysql_sequelize/lists"}