ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linux] Database 설치 및 설정
    개발/개발환경구축 2021. 10. 25. 18:14

    windows 설치는 홈페이지에 들어가서 설치하고 설정도 쉽게 할 수 있으므로 

    Linux 서버에 설치한다는 전제로 진행하겠습니다.

     

    대표적인 Server DB 종류는 아래의 두가지가 있습니다.

    Oracle : 강력한 프로시저 제공 (유료)

    Mysql : 가장 널리 사용되는 DB

     

    하지만 이번에 설치할 DB 는 MariaDB입니다.

     

    Q : Oracle 은 유료니까 그렇다고 쳐도 그러면 무료인 MySQL 을 쓰면 돼는거 아닌가요?

    A : Mysql 은 오라클에 인수됬습니다. 그 후로는 JAVA 처럼 사용은 무료, 상업용으로 쓸 경우 유료 라이센스를 지니게 되었습니다.

     

    Q : 그래도 db는 성능하고 속도가 생명인데 역시 대중적으로 쓰이는 DB를 쓰는게 맞지 않나요?

    A : 성능과 속도로 대결해도 MariaDB 가 1위입니다.

     

    Q : DB 마다 사용되는 타입명과 지원돼는 API 가 다르잖아요. 저는 그런 것들을 전부 새로 외우고 싶지 않아요.

    A : Mysql 과 내부구조가 100% 동일하며 거기에 +α가 있습니다. 심지어 mysql의 파일을 가져다 써도 실행됩니다.

     

     

    ------------------------1. 설치------------------------

     

    시작하기 앞서서 앞에서 말한대로 MariaDB 는 mysql 과 동일한 구조를 지니고 있기 때문에

    Mysql 이 설치되어있으면 MariaDB 가 설치되지 않습니다.

    클라우드 서버를 사용할 경우 이미 설치되어있는 mysql 에 충돌을 일으켜서 설치가 안돼는 경우가 있기 때문에

    먼저 Mysql 제거를 시작하겠습니다.

     

    su 를 치고 관리자 모드로 들어갑니다.

    yum -y remove mysql*

     

    다음으로 설치 경로가 mysql 과 겹쳐서 mariadb가 mysql 로 잘못 설치 되는 경우가 존재하기 때문에

    yum의 Mysql 설치 경로를 제거해줍니다.

    cd /etc/yum.repos.d

    ls

    여기서 만약 mysql 관련 파일이 존재한다면

    rm mysql파일명 으로 제거해 줍니다,

    이 파일은 yum -y update 로 복구할 수 있습니다.

     

    다음으로, 설치할 os의 정보를 확인하는 작업을 진행합니다.

    arch -> 내 리눅스가 arm 64인지 aarch 64 인지 x86_64(amd) 인지 확인

    cat /etc/*release -> 리눅스 운영체제 이름과 버전을 확인

     

    http://yum.mariadb.org/

     

    Index of /

     

    yum.mariadb.org

     

    위의 서버에서 원하는 버전 (2021-10 기준 최신은 1.6.4)을 클릭하고

     

    나오는 목록들은 운영체제와 64비트 종류들입니다.

     

    만약에 당신의 리눅스 운영체제가 red hat 이고 버전이 7.9며 x86_64 라면

    여기에 7.9 전용 버전은 없으므로 그 아래인 7.4버전 즉,

    rhel74-amd64 가 당신의 파일이 돼는 것입니다.

     

    다시 리눅스로 돌아와서 새로운 경로 파일을 작성해줍니다.

    vi /etc/yum.repos.d/MariaDB.repo

     

    shift i 를 눌러서 작성을 시작합니다.

    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/원하는버전/당신의파일

    # ex) baseurl = http://yum.mariadb.org/1.6.4/rhel74-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1

    ESC 를 눌러서 작성을 종료하고 :wq 입력해서 저장한 뒤 나옵니다.

     

    이제 설치해줍니다.

    yum -y install MariaDB

     

     

    Q : 어? 설치가 안돼는데요?

    A : 만약에 위의 mysql 제거 과정을 거치신 뒤에도 이런 현상이 벌어진다면

    yum remove mysql-community-libs mysql-community-common 를 실행한 뒤 시도해 보세요.

     

     

    ------------------------2. 설정------------------------

     

    문자열을 UTF-8(한글을 입출력하기위한 유니코드) 로 설정하겠습니다.

     

    vi /etc/my.cnf

     

    shift i 를 눌러서 작성을 시작합니다.

     

    [mysqld]

    ...

    # instructions in http://fedoraproject.org/wiki/Systemd

     

    init-connect='SET NAMES utf8mb4'
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci


    [client]
    port=3306
    default-character-set = utf8mb4

    [mysqldump]
    default-character-set = utf8mb4

    [mysql]
    default-character-set = utf8mb4

     

    [mysqld_safe]

    ...

     

    ESC 를 눌러서 작성을 종료하고 :wq 입력해서 저장한 뒤 나옵니다.

     

    비밀번호 설정

    /usr/bin/mysqladmin -u root password 원하는비밀번호

     

    MariaDB접속

     

    mysql -uroot -p패스워드

     

    DB 생성/사용

     

    create datebase DB이름;

    use DB이름;

     

    DB접속 종료

    quit

     

    생성한 DB로 바로 접속

    mysql -uroot -p DB이름

     

    접속할 계정 생성

     

    create user '계정이름'@'접속할 컴퓨터 0.0.0.0' identified by '비밀번호';

    ->접속할 컴퓨터란 이 db에 접속할 외부 컴퓨터의 ip 를 의미합니다.

    ->만약 컴퓨터에 관계없이 public 계정을 만들고 싶다면 '%' 를 써줍니다.

     

    계정에 생성한 DB에 대한 모든 권한을 추가

     

    grant all privileges on DB이름.* to '계정이름'@'아이피';

    읽기(select) 만 가능하게 ->

    grant select on DB이름.* to '계정이름'@'아이피';

    flush privileges; ->적용

     

    로그를 활성화 합니다.

    SET GLOBAL general_log = ON;(재부팅시 초기화)

    마지막으로 mariaDB 의 3306 포트를 개방하겠습니다. 

     

    firewall-cmd --zone=public --add-port=3306/tcp --permanent

    firewall-cmd --reload

    댓글

개발에 관심을 가지는 블로그