}

블로그 소개


*여러분들의 따듯한 댓글은 5%, 팔로우는 10% 블로그 포스팅 속도와 퀄리티를 높여줍니다.*

프로필

팔로우 해주시면 포스트할 때 큰 힘이 됩니다!!! 사실 저도 이 팔로우가 무슨 기능이 있는지는 모르겠습니다만, 팔로우 수가 늘면 '날 응원해주는 사람들이 있구나' 생각이 들어서 큰 힘이 됩니다.

팔로어

다른 페이지로 이동


리눅스 독학 페이지 운영체제 독학 페이지 네트워크 독학 페이지 시스템 해킹 하드웨어 독학 페이지 프로그래밍 독학 페이지 보안 페이지

오스 페이지 다이어트 정보 페이지 게임 정보 페이지 인생 꿀팁


****사진을 클릭하시면 페이지로 이동할 수 있습니다!****

<===***===↓↓↓You can use translate using chrome ↓↓↓===***===>

2021년 10월 31일 일요일

리눅스 mysql 설치 자세히!

 안녕하세요 마무입니다. 오늘은 웹서버와 마찬가지로 서버에 꼭 필요한 프로그램인 "리눅스 데이터베이스 설치", 그 중 "리눅스 MySQL 설치"하는 방법과 이후 "리눅스 mysql 로그인"까지 자세히 다뤄보도록 하겠습니다!


앞서 '아파치 설치' 포스트에서 설치 디렉토리 설정 및 직접 컴파일 하는 이유와 서버 프로그램 설치에 필요한 의존성 있는 프로그램을 yum으로 다운, RPM을 사용하는 장면을 매우 상세히 설명을 했으니, 이번 포스트에서는 간략히 설치과정나타내도록 하겠습니다!

그러니 만약 중간 이해가 안되는 부분이 있으시다면, 아파치 설치 포스트를 보고 오시길 바랍니다!

아파치 설치 매우 자세히!


-----목차-----

1. cmake 설치

2. ncurses, nucrses-devel, bison 설치

3. mysql을 사용할 것이기에 기존 mariadb 제거

4. mysql 설치

5. mysql 에러 해결법

6. mysql 첫 로그인

--------------

여기서 못 찾은 정보는

리눅스 독학 페이지 : https://mamu2830.blogspot.com/p/blog-page_13.html

에서 찾아보시면 있을 수 있습니다!




1. cmake 설치


저희가 설치할 'MySQL' 프로그램은 특이하게도 컴파일 할 때 기존 컴파일 방식인 "./configure -> make -> make install"이 아닌 'cmake'라는 프로그램으로 "configure -> make" 과정을 대신해 컴파일합니다.

다시 말해서 "cmake -> make install" 이렇게 끝난다는 것이죠.

그래서 우리는 'gcc'와 'gcc-c++'외에도 'cmake'라는 프로그램이 필요합니다.

gcc와 gcc-c++은 아파치 설치 때 설치했으니 'cmake'만 

"yum install cmake"로 설치해줍니다.




2. ncurses, nucrses-devel, bison 설치


'ncurses'TUI환경에서 터미널 독립 방식으로 GUI처럼 보이게끔 프로그래밍하게 해주는 라이브러리입니다.

나중에 'mysql'을 설치하고 리눅스에서 터미널에서 실행해보시면

------------테이블-----------

|     학번    |      이름       |

------------------------------

| 202108443|      마무       |

------------------------------

이런 느낌으로 화면이 나오는 걸 볼 수 있는데요!

이처럼 터미널 독립적으로 TUI환경을 GUI처럼 표현하기 위해 'MySQL''ncurses'라이브러리가 필요했다는 것이죠!

'nucrses-devel'와 같이 '-devel'으로 끝나는 패키지는 아차피 설치 포스트에서 설명했었죠? nucrses에 쓰이는 라이브러리입니다.

그리고 'bison'이란 LALR(Look-Ahead Left-to-Right Scanning) 방식을 사용하는 '선행 예측 구문 분석기(parser)'입니다. 뭔가 아리송 하실텐데, 그냥 컴파일러에 사용되는 LR Parser(왼쪽에서 오른쪽으로 구문 분석)기술을 좀 더 업그레이드 해주는 프로그램 이라고 생각하시면 됩니다.

주로 이런 'bison'컴파일러를 위한 컴파일러라고 해서 컴파일러 컴파일러(Compiler-complier)라고도 합니다.

이것들도 똑같이 "yum install ncurses ncurses-devel bison"으로 설치해줍니다.




3. mysql을 사용할 것이기에 기존 mariadb 제거


우리는 데이터베이스 프로그램으로 'MySQL'을 설치하고 사용할 것이기에, 기존에 센토스에 기본적으로 깔려 있는 다른 데이터베이스 관리 프로그램인 'mariadb'를 제거해줍니다.

물론 당연히 설치가 안 돼 있으면 제거할 필요가 없습니다.

먼저 제거전, 실행되고 있는 데이터베이스 프로그램이 있을 수 있으니

"killall mysqld" 명령어를 쳐서 종료해줍니다.



그리고




이렇게 RPM을 통해 mariadb를 검색 후 제거해줍니다만... 

저같은 경우 전에 mariadb 라이브러리만 남아있네요.

그래도 어짜피 mariadb는 사용을 안할 것이니, mariadb가 들어간건 모두 제거해줍니다.




4. mysql 설치


당연히 직접 설치하려면 소스코드가 필요하니

https://dev.mysql.com/downloads/mysql/5.7.html?tpl=version&os=src

위 URL을 들어가신 다음



맨 마지막에 'boost header'포함된 걸 다운받아줍니다.

참고로 'boost'mysql 5.7부터 지원하는 기하연산에 쓰이는 코드들이 들어있는 라이브러리라고 합니다. 


그런데 다운로드가 누르면 다운은 안되고 뭐 로그인 하라는 이상한 창이 뜨는데요



당황하지 마시고, 그냥 밑에 있는 "No Thanks, just start my download(됐으니까 다운로드나 시작해)"를 눌러주시면 다운이 됩니다.

이후 설치 장소인 /usr/local/src로 이동



잘 다운이 됐나 확인해보시고, 이번엔 'gz(gzip)'으로 압축 돼 있으니 

'tar -zxvf'로 아카이브와 압축해제해주시면 됩니다.

아 참고로 다운하기 클릭 후 바로 디렉토리를 확인하면 확장자가 ".part"로 끝나는 mysql이 있을 수 있는데, 이건 다운이 아직 다 안 됐을 때 파이어폭스에서 나오는 파일이니 걱정 하실 필요 없습니다.

 '.part' 파일은 다운이 끝나면 자동으로 사라집니다

이 데이터베이스 프로그램인 'MySQL'은 아파치와 비교해서 파일이 매우 매우 크므로, 소스코드 다운도 오래걸리고, 설치도 오래 걸립니다



압축 해제후, MySQL 디렉토리 내부로 이동하신 다음 내부 파일들을 보시면 확실히 기존 configure, make를 사용하는 디렉토리 내부랑 다른 걸 볼 수 있습니다. 왼쪽 상단 4번째를 보시면 'cmake'란게 보이죠! 또 왼쪽 첫 번째에 'boost'란 디렉토리도 보입니다.

여기서 우리는 'cmake'를 하면 됩니다만, 같이 다운 받아진 'boost'라는 라이브러리는 Mysql과 같이 컴파일되는 기본 옵션 값이 Off로 꺼져있습니다.

그러므로 우리는 추가로 "-DDOWNLOAD_BOOST=1"란 옵션을 적어서 켜줘야 합니다.

그리고 또한 boost 라이브러리를 mysql과 함께 빌드해야하기 때문에, 우리는 boost 라이브러리가 있는 디렉토리 위치를 옵션으로서 알려줘야합니다.

그러므로 "-DWITH_BOOST=/usr/local/src/mysql-5.7.35/boost"란 옵션을 추가적으로 줘야합니다.

그래서 우린 총

"cmake . -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/mysql-5.7.35/boost"를 치면 됩니다.

참고로 여기서 'cmake' 다음 '.'은 뭐냐면, 원래 cmake 명령어 형식이 cmake [경로] 이기 때문에 경로에 현재 디렉토리라는 의미의 '.'을 넣은겁니다.

위 cmake 명령어를 치고 나서



이런 결과가 나오면 에러 없이 잘 된겁니다.

이후 "make install" 을 해주면 끝입니다.(참고로 매~~우 오래걸립니다, 대략 30분 이상은 생각해두셔야 합니다.)





5. Mysql cmake 오류 해결법


cmake를 실행하거나, MySQL 설치중 오류가 생길 수 있는데요, 

설치외에도 MySQL도 서버프로그램이라 실행하는데 발생하는 오류들이 많기에 따로 포스트를 해뒀으니, 혹시 오류가 발생시 밑에 적어놓은 포스트에서 확인바랍니다.


MySQL 오류 해결법 포스트






6. mysql 첫 로그인


MySQL은 설치하고 나서 반드시 한번 실행을 해줘야하는데요, 그러기 위해 /usr/local/src/mysql/bin 디렉토리 내의 명령어들을 실행해주면 됩니다.

먼저 

"cd /usr/local/src/mysql/bin"에 이동해주시고



"./mysqld --initialize --user=root" 이렇게 쳐서 실행해줍니다.

여기서 'mysqld'mysql데몬을 뜻하며, --initialize처음 프로그램 실행을 위한 초기화를 뜻하고, '--user=root'데몬 시작을 root 권한으로 하라는 의미입니다.

위 명령어를 쳐주시면



이렇게 뭐 존재하는 UUID가 없으니 서버가 첨 시작하는 것 같고, UUID를 생성하고, TLS version 1.2나 그 이상을 써달라~ 등등 글이 올라오다가 마지막에 주황색 줄로 표시한 부분

임시패스워드가 생성됐다고 뜹니다.

임시패스워드를 복사하신다음 mysql을 실행할 때 패스워드로 입력해주면 됩니다

자 여기서 끝이 아니죠.. 당연히 mysql에 로그인 하기전에 데몬을 실행시켜야 합니다.

그 전에 초기화 과정이 제대로 됐나 /usr/local/mysql로 돌아가서 디렉토리 내부를 보시면



이렇게 'data'란 디렉토리가 생성된 걸 볼 수 있는데요, 이 디렉토리가 있으면 아까 쳤던

"./mysqld --initialize --user=root" 가 성공적으로 잘 됐다고 보시면 됩니다.

다시 /usr/local/src/mysql/bin/ 위치로 가서

데몬을 실행시켜주기 위해

"./mysqld_safe --user=root &"라고 쳐줍니다.

여기서 '&'는 이제 다들 아시겠지만, 백그라운드로 실행하라는 의미죠. 위 명령어를 쳐주시면



이렇게 뜹니다.



이후 "ps -ef | grep mysql"로 확인해보니, 데몬이 잘 실행중인 것을 알 수 있습니다.

이제 데몬을 실행했으니 로그인만 하면 됩니다.

"/usr/local/mysql/bin"위치에서 아까 복사해둔 임시 패스워드를 이용해

"./mysql -p(password)'임시 패스워드'를 쳐서 로그인해줍니다.

예를 들어 저같은 경우 "./mysql -p'x&o&qKaEE9j*' 이렇게 쳐주는 거죠

패스워드를 입력하시고 나면



이렇게 '>'모양이 뜨면서 성공적으로 로그인 한 것을 볼 수 있습니다.

여기까지 하면 끝...이 아니죠! 우리는 임시패스워드를 이용해 로그인 했으니 제대로 패스워드까진 설정해야하지 않겠습니까?

여기서 이제 [alter(바꾸겠다) user(유저) 'root'@'localhost'(를) identified by '패스워드';(이 패스워드로 식별되게)] 

이렇게 쳐주면 됩니다. 

저같은 경우에는 패스워드를 1234로 한다치면

alter user 'root'@localhost identified by '1234'; 이렇게 치면 되겠네요.

위에서 'root'@'localhost'는 말 그대로 현재 컴퓨터 IP인 'localhost'에서의 'root'유저를 의미하며, 이 '(작은 따옴표)특수기호가 같이 사용될 수 있으니 확실한 구분을 위해 붙여주는 겁니다.

참고로 컴퓨터공학에서 이 '@'란 원래  'at'을 의미하며, 직역하면 root at [특정 도메인 or IP](특정 도메인에 있는 root란 유저) 이렇게 되는거죠

리눅스 터미널에서 의미있는 기호를 평범한 기호로 취급하기 위해 사용했던 '(작은 따옴표)라고 생각하시면 됩니다.(만약 이부분이 이해가 안되신다면 '리눅스 독학 페이지 -> find와 와일드카드'를 읽고오시길 바랍니다)

그리고 데이터베이스는 끝이라는 걸 나타내는 ';(세미콜론)'마지막에 붙여줘야 끝납니다.

이렇게 패스워드를 입력후

flush(기존 것을 흘려보내겠다) privileges(권한들);

을 입력해주면 됩니다.

'flush'변기에서 물을 내리는 것처럼, 기존의 설정들을 비워내고 새 설정을 적용한다 이렇게 보시면 됩니다.

이제 "quit" 명령어로 나간 뒤

이후 로그인 할 때는 설정했던 패스워드 대로

"./mysql -p(password)'패스워드'

이렇게 쳐서 로그인을 하면 됩니다.

여기까지 마치면 이제 데이터베이스 설치 까지는 끝났습니다. 이후의 데이터베이스 관리는

데이터베이스 관리자의 영역이죠 ㅎㅎ





오늘은 아파치에 이어서 서버의 가장 중요한 프로그램 데이터베이스 프로그램 설치를 해보았습니다.

다음에는 백엔드 언어(CGI)중 유명한 php 설치와 아파치 연동에 대해서 알아보도록 하겠습니다.

참고로 리눅스(Linux)+아파치(Apache)+MySQL+PHP 조합은 너무나 유명해서 LAMP라고도 묶어서 부르기도 합니다.

물론 MySQL은 MariaDB로 대체될 수 있고, PHP도 P로 시작하는 Perl이나 Python으로 대체될 수도 있지만요 ㅎㅎ

도움이 되셨다면 따뜻한 댓글 및 팔로우 클릭을 해주시면 저에게 매우 큰 힘이 돼, 포스트 퀄리티 향상에 도움이 됩니다!

그럼 다음에 더 좋은 포스트로 찾아뵙겠습니다!



댓글 없음:

댓글 쓰기

#1 여러분들이 소중한 시간을 투자해 달아주시는 따뜻한 댓글들은 저에게 정말 큰 힘이 됩니다!

#2 저의 각 포스트들은 엄청난 노력과 시간 투자를 통해 만들어진 포스트들로, 무단 복제나 모방하는 것을 금지합니다.

#3 저의 포스트에도 틀린 정보가 있을 수도 있습니다. 그럴 경우 친절한 말투로 근거와 함께 댓글로 달아주시면 정말 감사하겠습니다!