드디어 올것이 왔습니다...
Mysql을 연동해야하네요... 수업자료는 모두 윈도우 컴퓨터를 기준으로 Mysql 연동하는 방법이 나와 있어서.. 저는 또 수업시간동안 멍때리다가 집와서 구글링하면서 연동 해야됐습니다...
이것도 정말 수많은 수행착오를 겪게 되었는데요... 하하... 잊지 않기 위해 블로그로 글 남겨봅니다...!
mysql 연동하기 전에 앞선 포스트에서 "jsp 프로젝트를 위한 Dynamic web project 생성 및 환경설정과 톰캣 연동 방법, 라이브러리 및 프레임워크 추가방법" 편을 보고 오셔야됩니다... 그 단계가 다 끝난 이후에 mysql을 연동하는겁니다 여러분~
아래 링크를 타고 들어가서 단계를 다 끝내고 와주세요!!!
https://ffe4el.tistory.com/106
자, 단계를 다 거치고 오셨나요? 정말 수고하셨습니다. 👏🏻👏🏻👏🏻 이제 더욱 수고해봅시다!
일단 맥북에서 mysql을 설치하는 방법은 두가지가 있습니다.
1. mysql 다운로드 사이트에서 다운로드 받기
https://dev.mysql.com/downloads/
위 링크에 들어가서 MySQL Community Server 을 클릭합니다..
이후 select version에서 innovation 바로 전 버전을 클릭해줍니다. 이후 다운로드 할 리스트들이 매우 많을텐데, 그중에서 가장 위에 있는 ARM, 64bit를 다운로드 받아줍니다. (맥 실리콘 M1 기준입니다.)
2. homebrew 이용해서 설치하기
- mysql 설치하기
$ brew install mysql
- mysql 시작하기
$ mysql.server start
- mysql 시작 후 기본 설정
$ mysql_secure_installation
순서대로 아래 질문들이 나오면 y 또는 n을 입력하여 설정해 줍니다.
비밀번호 복잡도 검사 과정 (n)
비밀번호 입력 & 확인
익명 사용자 삭제 (y)
원격 접속 허용하지 않을 것인가? (y)
test DB 삭제 (n)
previlege 테이블을 다시 로드할 것인지 (y)
설정을 마치면 All done! 메세지가 출력됩니다.
- mysql 사용
$ mysql -u root -p
- mysql 삭제
$ brew uninstall --force mysql
- mysql root 비밀번호 설정하기
$ mysql_secure_installation
💥오류1
가끔 재설치할때 다음과 같은 에러가 나곤 하는데, 아래 링크를 참고하자...!
error: no such file or directory - /usr/local/var/homebrew/linked/mysql
https://penguin-kim.tistory.com/41
💥 오류2
msql 서버 실행 시 The server quit without updating PID file 해당 에러가 발생할 경우
1번 방법
터미널을 열고 mysql이 사용하고 있는 PID를 확인한다.
lsof -i
mysql이 사용하는 PID 확인 후 터미널에 아래의 명령어를 입력한다
kill -9 PID번호
그 후 mysql의 소유자를 확인한다
ls -laF /usr/local/mysql
소유자가 root일 경우, 아래의 명령어를 입력하여 소유자를 변경한다
sudo chown -R mysql /usr/local/mysql
결론적으로 우리는 Connector/J 연동시켜야 하는데!! (여기서부터 진행)
<1 . Connector/J 연동시키기>
1. SQL Connector 다운받기
https://dev.mysql.com/downloads/connector/j/
위 링크로 들어가서, 아래 그림과 같이 Platform Independent로 선택하고 둘중 아무거나로 다운로드 받는다
2. 설치가 끝나면 ZIP 파일을 압축해제한다. 그러면 아래와 같은 폴더가 나타날텐데, mysql-connector-java-8.2.0.jar 파일을 복사한다.
3. 다음과 같은 경로에 복사한 jar 파일을 붙여넣는다.
4. 이클립스 상단에 파일->프로젝트구조->라이브버리로 들어가서 + 버튼을 눌러 Java 탭을 클릭한다. 그리고 위의 경로에 있는 jar 파일을 선택하여 추가한다.
그럼 다음과 같이 connector-j 가 잘 들어와있는것을 확인할 수 있다.
이제 mysql과 연동이 완료되었는데, 주의해야할점이 있다. 시작전에 반드시 mysql 서버를 실행해야하고, 접근할 DB의 테이블에 속성값을 저장해두어야한다는 점이다. 이게 뭔말이냐면, 일단 다음부분에 작성할 예정이니 계속 봐봐라....!!
<2 . MySql 연동하기(인텔리제이 상에서)>
1. 인텔리제이 맨 오른쪽 데이터베이스 메뉴를 클릭한다.
2. "+" 버튼을 누르고 "데이터 소스" 클릭 후 mysql을 찾아서 클릭한다.
3. 그러면 다음과 같은 화면이 나타나는데, 이름을 정해주고, 사용자 이름, 비밀번호, 데이터베이스를 입력하면 아래쪽에 다운로드 버튼이 나타날겁니다. 그럼 다운로드를 진행해주고 연결테스트를 해봅니다. 연결테스트가 정상 작동하면 성공한겁니다...!!!
4. 자 이제 서버에서 자동으로 데이터베이스를 연동해주는 코드를 짜봅시다. (인터넷으로 검색해보니, Java Spring의 경우 자바파일에 어노테이션을 붙여서 작성하던데, 저희 수업 프로젝트에서는 연동코드도 jsp로 작성했기 때문에,, 저도 jsp 코드로 작성해보았습니다.)
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import = "java.sql.*" %>
<%
Connection conn = null;
try {
String url = "jdbc:mysql://localhost:3306/JDBC";
String user = "root";
String passwd = "123456";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, passwd);
System.out.println("제대로 연결되었습니다.");
}catch (Exception e) {
e.printStackTrace();
}
%>
ㄴ 이 코드는 dbConn.jsp 이라고 db를 연동하는 코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ page import="java.sql.*" %>
<%@ include file="dbConn.jsp" %>
<%
String u_id = request.getParameter("userID");
String u_pw = request.getParameter("userPW");
String u_mail = request.getParameter("userMAIL");
String sql = "INSERT INTO members (id, passwd, email) VALUES";
sql += "('" + u_id +"','"+u_pw +"','"+u_mail + "')";
Statement sm = conn.createStatement();
int count = sm.executeUpdate(sql);
if (count == 1) {
response.sendRedirect("signupSuccess.jsp");
}else{
out.println("회원가입 실패!");
response.sendRedirect("signup.jsp");
}
sm.close();
conn.close();
%>
ㄴ 이 코드는 데이터베이스에 입력값을 저장하는 코드
<%@ include file="dbConn.jsp" %> 를 통해서 dbConn에 있는 내용을 그대로 사용할 수 있다.
5. 여기서 아마 members라는 테이블네임에 빨간색 에러표시가 날텐데, 이때 인텔리제이의 경우 members에 마우스 커서를 올려두고 option+enter을 누른다. 그리고 테이블속성에 추가하기 옵션을 선택한다.
그럼 위와 같은 창이 뜨게되고, 여기서 +와 -를 통해 memebers에 있는 속성들을 추가하거나 제거할 수 있다.
저곳에서 테이블의 속성을 수정하고 실행버튼을 누르면 이제 members에 있는 빨간글자가 제대로 돌아온것을 확인할 수 있을것이다.
그리고 인텔리제이 맨 오른쪽 데이터베이스 메뉴를 누르면 아래 그림처럼 제대로 테이블이 저장되어 있는것 또한 확인할 수 있다.
이렇게 하면 이제 톰캣서버를 실행하면 제대로 db가 연동되어 서비스가 진행되는 모습을 볼 수 있을 것이다!!!
지금 이렇게 쭉 써놓은 방법들이, 구글에 쳐봤을때는 여기저기 정보들이 흩뿌려져 있어서ㅠㅠ 다음번에 할때 기억이 안날까봐 참고삼아 쓴 블로그 글이다.
맥북은 정말 환경설정하기가 윈도우보다 몇배 더 어려운것 같다. 자료도 거의 없고ㅠㅠ
그럼 모두 수고하셨습니다~~! 👏🏻👏🏻
'Back End > JSP' 카테고리의 다른 글
[JSP] 액션태그(ActionTag)란? (0) | 2023.12.26 |
---|---|
[Mac/M1][intelliJ] Dynamic web project 생성 + 톰캣 연동(인텔리제이 사용자 필수로 보셔야합니다~) (1) | 2023.11.28 |
[JSP][MAC M1]이클립스 환경 설정 + 톰캣 연동 (0) | 2023.09.13 |