spring 환경을 gradle에 다 추가하고 build 후
application을 실행했더니 보기좋게 오류가 났다.
알고보니 mysql 설정을 아무것도 해주지 않고 돌려버려서 오류가 났던 것..
다급하게 설정을 시작했다.
일단, 맥으로 환경을 바꾼 후 처음 설정하는 거라 터미널에 mysql부터 설치 !
// 최신으로 업데이트
brew update
// mysql 설치하기
brew install mysql
// mysql 설치 버전 확인하기
mysql --version
// mysql 서버 시작하기
mysql.server start
// mysql 접속하기
mysql -u root -p
// 비밀번호 설정은 없음으로
enter 키
다음으로는 데이터베이스를 생성해주어야 한다.
// 데이터베이스 생성하기
create database [DB명]
// 계정 생성 전 설정하기
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
// 계정 생성하기
create user '[계정명]'@'localhost' identified by '[계정명]';
GRANT ALL PRIVILEGES ON *.* TO '[계정명]'@'localhost';
FLUSH PRIVILEGES ;
// 계정 생성 후 미리 설정한 root 권한 제거
drop user 'root'@'%';
사실 잘 모르겠어서 나오는 대로 쭉 따라해봤다.
그랬더니 'application.properties' 파일 설정 후 실행할 때 또 오류가 ..
생각해보니, 계정 설정을 할 때 계정 이름, 비밀번호도 안주고 그냥 .. 해버렸다..
아무래도 그것 때문에 오류가 발생했던 것 같아서, 사용자 정보를 다시 설정 해주기로 했다.
일단 mysql 서버를 중지해주자 !
// mysql 서버 중지하기
mysql.server stop
이렇게 하면, Shutting down mysql 후에, SUCCESS가 뜬다.
그 다음, 서버를 재시작 해준다.
// mysql 서버 재시작 하기
mysql.server start --skip-grant-tables
--skip-grant-tables를 통해서 MySQL 서버에 root 인증 없이 접근할 수 있게 해준다고 한다.
root 계정에 접근해서 비밀번호를 변경한다.
// root 계정에 접근하기
mysql -u root
// mysql root 계정 접근 권한 설정하기
update mysql.user set authentication_string=null where user='root';
// 변경된 권한 설정하기
flush privileges;
먼저 root 계정에 접근을 해서 mysql에 들어간다.
alter user를 이용해 비밀번호를 변경할 수 있는데,
skip-grant-tables 옵션으로는 alter user 문이 실행되지 않기 때문에 임시로 일단 비밀번호를 null로 바꾸어준다.
그 다음, flush privileges 를 통해 변경된 권한을 설정해준다.
그리고 서버를 빠져나간다. exit !
// mysql 서버 재시작하기
mysql.server restart;
// mysql root 계정 접속하기
mysql -u root
// root 계정 비밀번호 변경하기
alter user 'root'@'localhost' identified with caching_sha2_password by '변경할 비밀번호';
// mysql 접속하기
mysql -u root -p
MySQL 서버로 들어간다.
변경한 비밀번호를 입력하면 ? 성공이다 !!
MySQL을 로컬에 다운로드 받고, 접속해서 비밀번호를 입력한다.
MySQL 서버에 접속하고 나면, 데이터 베이스를 생성한다.
계정 생성 전에 설정을 하고, 계정을 생성한다.
설정한 내용을 application.properties 파일에 잘 적어주면 실행 완료 !
겨우겨우 MySQL 문제 해결을 해놓고 ..
이제 설정이 다 됐구나 싶어서 git에 commit 하려고 보니 ..
오류가 났다 ! ^^ 왜 또 .. 뭘 잘못했니 내가 ..
You are about to commit CRLF line separators to the Git repository ..
해당 오류는 git에서 CRLF 개행 문자 차이로 인한 문제라고 한다.
윈도우에서는 line ending으로 CR(Carriage-Return, \r)과 LF(Line Feed, \n)을 사용하고 Unix나 Mac OS는 LF만 사용한다고 한다.
이는 문제를 발생시킬 수 있다고 한다.
실제 코드는 변경된 게 없는데 CR/LF 때문에 변경으로 착각해 commit을 하게 될 수 있으며, 변경 로그를 보거나 merge 시 문제의 소지가 될 수 있다.
따라서 이 오류를 해결해 주어야 하는데 ..
먼저 git이 Line Ending을 어떻게 처리하는지 알아보자. 세 가지 설정이 가능하다고 한다.
core.eol = native
- 기본 설정, 시스템에서 line ending을 처리하는 방법에 따름
core.eol = crlf
- CRLF를 line ending으로 사용
core.eol = lf
- LF를 line ending으로 사용
다음으로, git object database에 checkin, checkout 할 때 어떻게 처리할 지 설정하는 변수도 설정해준다.
git은 .git 폴더에 모든 이력 데이터를 갖고 있는데, 이 이력 데이터는 key-value 형식의 데이터베이스이며, core.autocrlf는 텍스트 파일을 git object database에 checkin, checkout 시 어떻게 처리할 지를 설정하는 변수이다.
core.autocrlf = false
- 기본 설정. 파일에 CRLF를 썼든, LF를 썼든 git은 상관하지 않고 파일 그대로 checkin, checkout 함. 이 것은 Line ending이 다른 OS에서는 텍스트 파일이 변경되었다고 나와서 여러 문제가 발생할 수 있음.
core.autocrlf = true
- 텍스트 파일을 object database에 넣기 전에 CRLF를 LF로 변경
core.autocrlf = input
- LF를 line ending으로 사용
위에 찾아본 명령어들 중, 어떤 것을 선택하면 좋을 지 찾아보다가
설정 할 수 있는 명령어를 찾게 됐다.
git config --global core.eol lf
git config --global core.autocrlf input
해당 명령어를 터미널에 입력해 실행한 뒤, commit을 다시 시도해보았더니 해결할 수 있었다 !
git commit시, CRLF 개행 문자 차이로 인한 문제가 발생할 수 있으므로,
commit 할 때, 해당 오류가 발생해서 commit이 안된다면 core.eol
과 core.autocrlf
명령어로 설정해주도록 하자 !!
git config --global core.eol lf
git config --global core.autocrlf input
출처