CentOS7에 MariaDB를 설치하고 외부 호스트에서 연결하는 방법

하고 싶은 일


  • MariaDB 설치
  • 외부 호스트에서 MariaDB에 연결

  • 전제 조건


  • CentOS7 설치됨
  • 외부 호스트에 mysql 명령의 실행 환경을 작성했습니다

  • 절차


  • CentOS7에 MariaDB 설치
  • MariaDB 시작
  • 로컬에서 MariaDB에 로그인
  • 외부 호스트 용 MariaDB 사용자 생성
  • 포트 3306 개방
  • 외부 호스트에서 MariaDB에 로그인

  • 1. CentOS7에 MariaDB 설치



    MariaDB 설치

    리포지토리 설정용 스크립트 다운로드 및 실행
    버전을 지정하는 경우는 -s -- --mariadb-server-version=[バージョン] 를 말미에 추가
    $ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
    

    MariaDB 서버 · MariaDB 클라이언트 설치
    $ yum install MariaDB-server MariaDB-client
    
    mariadb.service가 서비스에 추가되었는지 확인
    $ systemctl list-unit-files | grep maria
    mariadb.service                             enabled 
    

    2. MariaDB 시작



    MariaDB 서비스 mariadb.service를 시작합니다.
    $ systemctl start mariadb
    

    서비스 상태 Active: active (running) 확인
    $ systemctl status mariadb
    ● mariadb.service - MariaDB 10.3.10 database server
       Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
      Drop-In: /etc/systemd/system/mariadb.service.d
               └─migrated-from-my.cnf-settings.conf
       Active: active (running) 
    ...
    ...
    

    3. 로컬에서 MariaDB에 로그인



    기본적으로 제공되는 루트 사용자로 로컬에서 MariaDB에 로그인합니다.
    $ mysql -u root -h localhost
    

    기본적으로 로그인 비밀번호는 설정되지 않습니다.
    보안 향상을 위해 mysql_secure_installation을 실행하는 것이 좋습니다.

    4. 외부 호스트용 MariaDB 사용자 생성



    외부 호스트의 IP를 연결 소스 호스트로 지정하여 사용자를 만듭니다.
    CREATE USER [ユーザ名]@[接続元ホスト] IDENTIFIED BY [パスワード];
    

    샘플
    
    -- ユーザ名  : user1
    -- 接続元IP  : 172.112.0.0 〜 172.112.0.255
    -- パスワード : password
    
    CREATE USER 'user1'@'172.112.0.%' IDENTIFIED BY 'password';
    

    사용자에게 권한 부여
    (건너뛰기 가능. 연결 확인은 기본 권한으로 가능합니다)
    GRANT [権限種別] ON [データベース名].[テーブル名] TO [ユーザ名]@[接続元ホスト] [WITH オプション];
    

    샘플
    
    -- 権限種別  : ALL
    -- 権限範囲  : 全てのデータベースの、全てのテーブル
    
    GRANT ALL ON *.* TO 'user1'@'172.112.0.%';
    

    ALL로 부여되는 권한에는 다음이 포함되지 않습니다. 필요에 따라 별도 부여
    · 데이터베이스 레벨 · 글로벌 레벨 권한 (파일 조작 권한 등)
    · GRANT OPTION 권한

    사용자가 추가되었는지 확인
    -- ユーザ名・接続元ホストを確認
    SELECT User,Host FROM mysql.user;
    
    -- 権限も含め全てのユーザ情報を確認
    SELECT * FROM mysql.user;
    

    5. 포트 3306 개방



    MariaDB의 기본 포트 3306을 엽니다.

    방화벽에 포트 3306 추가(영구 대응)
    $ firewall-cmd --zone=public --add-port=3306/tcp --permanent
    

    방화벽 서비스 재로드
    $ firewall-cmd --reload
    

    포트 3306이 방화벽에 추가되었는지 확인
    $ firewall-cmd --list-ports
    3306/tcp
    

    6. 외부 호스트에서 MariaDB에 로그인



    방금 만든 사용자로 외부 호스트에서 MariaDB에 로그인합니다.
    $ mysql -u [ユーザ名] -h [MariaDBサーバのIP] -p
    

    샘플
    $ mysql -u user1 -h 172.112.0.201 -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 20
    Server version: 5.5.5-10.3.10-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    

    Welcome to the MySQL monitor. 라고 표시되면 연결 성공

    참고문헌



    MariaDB Package Repository Setup and Usage - MariaDB Knowledge Base
    CREATE USER - MariaDB Knowledge Base
    GRANT - MariaDB Knowledge Base
    mysql_secure_installation - MariaDB Knowledge Base(en)
    mysql_secure_installation - MariaDB Knowledge Base(ko)
    curl option 기억
    CentOS 7 firewalld 자주 사용하는 명령

    좋은 웹페이지 즐겨찾기