연결 문제 해결

두 호스트 중 하나에 연결하는 데 문제가 있는 경우 먼저 다른 호스트에 ping을 수행하여 연결할 수 있는지 확인하십시오. 방화벽 및 SELinux 규칙을 수정하여 한 호스트에서 다른 호스트로의 연결을 허용해야 할 수 있습니다(SELinux를 사용하는 경우).

원격 연결 만들기

원격 연결을 만들려면:

  1. 데이터베이스 서버에서 root 권한을 가진 사용자로 MySQL 구성 파일을 엽니다.

    찾으려면 다음 명령을 입력합니다.

    mysql --help
    

    위치는 다음과 유사하게 표시됩니다.

    Default options are read from the following files in the given order:
    /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
    
    노트
    Ubuntu 16에서 경로는 일반적으로 /etc/mysql/mysql.conf.d/mysqld.cnf입니다.
  2. 구성 파일에서 bind-address을(를) 검색합니다.

    있는 경우 값을 다음과 같이 변경합니다.

    존재하지 않는 경우 [mysqld] 섹션에 추가하십시오.

    bind-address = <ip address of your web node>
    

    특히 클러스터된 웹 서버가 있는 경우 MySQL 설명서를 참조하십시오.

  3. 구성 파일에 변경 사항을 저장하고 텍스트 편집기를 종료합니다.

  4. MySQL 서비스를 다시 시작합니다.

    • CentOS: service mysqld restart

    • 우분투: service mysql restart

    노트
    MySQL을 시작하지 못하면 syslog에서 문제의 원인을 찾습니다. MySQL 설명서 또는 다른 신뢰할 수 있는 원본을 사용하여 문제를 해결하십시오.

데이터베이스 사용자에게 액세스 권한 부여

웹 노드가 데이터베이스 서버에 접속할 수 있도록 하려면 웹 노드 데이터베이스 사용자에게 원격 서버의 데이터베이스에 대한 액세스 권한을 부여해야 합니다.

이 예제에서는 root 데이터베이스 사용자에게 원격 호스트의 데이터베이스에 대한 전체 액세스 권한을 부여합니다.

데이터베이스 사용자에게 액세스 권한을 부여하려면 다음을 수행합니다.

  1. 데이터베이스 서버에 로그인합니다.

  2. root 사용자로 MySQL 데이터베이스에 연결합니다.

  3. 다음 명령을 입력합니다.

    GRANT ALL ON <local database name>.* TO <remote web node username>@<remote web node server ip address> IDENTIFIED BY '<database user password>';
    

    For example,

    GRANT ALL ON magento_remote.* TO dbuser@192.0.2.50 IDENTIFIED BY 'dbuserpassword';
    
    노트
    웹 서버가 클러스터된 경우 모든 웹 서버에서 동일한 명령을 입력합니다. 모든 웹 서버에 동일한 사용자 이름을 사용해야 합니다.