연결 문제 해결
두 호스트 중 하나에 연결하는 데 문제가 있는 경우 먼저 다른 호스트에 ping을 수행하여 연결할 수 있는지 확인하십시오. 방화벽 및 SELinux 규칙을 수정하여 한 호스트에서 다른 호스트로의 연결을 허용해야 할 수 있습니다(SELinux를 사용하는 경우).
원격 연결 만들기
원격 연결을 만들려면:
-
데이터베이스 서버에서
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
입니다. -
구성 파일에서
bind-address
을(를) 검색합니다.있는 경우 값을 다음과 같이 변경합니다.
존재하지 않는 경우
[mysqld]
섹션에 추가하십시오.bind-address = <ip address of your web node>
특히 클러스터된 웹 서버가 있는 경우 MySQL 설명서를 참조하십시오.
-
구성 파일에 변경 사항을 저장하고 텍스트 편집기를 종료합니다.
-
MySQL 서비스를 다시 시작합니다.
-
CentOS:
service mysqld restart
-
우분투:
service mysql restart
노트
MySQL을 시작하지 못하면 syslog에서 문제의 원인을 찾습니다. MySQL 설명서 또는 다른 신뢰할 수 있는 원본을 사용하여 문제를 해결하십시오. -
데이터베이스 사용자에게 액세스 권한 부여
웹 노드가 데이터베이스 서버에 접속할 수 있도록 하려면 웹 노드 데이터베이스 사용자에게 원격 서버의 데이터베이스에 대한 액세스 권한을 부여해야 합니다.
이 예제에서는 root
데이터베이스 사용자에게 원격 호스트의 데이터베이스에 대한 전체 액세스 권한을 부여합니다.
데이터베이스 사용자에게 액세스 권한을 부여하려면 다음을 수행합니다.
-
데이터베이스 서버에 로그인합니다.
-
root
사용자로 MySQL 데이터베이스에 연결합니다. -
다음 명령을 입력합니다.
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';
노트
웹 서버가 클러스터된 경우 모든 웹 서버에서 동일한 명령을 입력합니다. 모든 웹 서버에 동일한 사용자 이름을 사용해야 합니다.