![mysql은 원격 액세스를 설정할 수 없습니다](https://rvso.com/image/1520082/mysql%EC%9D%80%20%EC%9B%90%EA%B2%A9%20%EC%95%A1%EC%84%B8%EC%8A%A4%EB%A5%BC%20%EC%84%A4%EC%A0%95%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.png)
모든 호스트에서 액세스할 수 있도록 mysql을 설정하려고 합니다.
> 'root'@'%'에 대한 부여를 표시합니다.
부여 옵션을 사용하여 *.*에 대한 모든 권한을 'root'@'%'에 부여합니다.
내.cnf
[root@p419386 etc]# cat my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
/etc/my.cnf.d의 파일: client.cnf 활성화_encryption.preset mysql-clients.cnf server.cnf tokudb.cnf 없음 포함skip-networking
~ 안에서버.cnf
bind-address=0.0.0.0
저는 CentOS 7을 사용하고 있습니다 uname -a
.
Linux p419386 2.6.32-042stab120.16 #1 SMP Tue Dec 13 20:58:28 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux
MySQL 서버는10.1.21-MariaDB MariaDB Server
여전히 원격 호스트에서 연결할 수 없습니다. :(
네트워크나 방화벽에는 확실히 문제가 없습니다.
위 설정이 맞나요?뭐가 문제 야?
결국문제가 발견되었습니다iptables 규칙에서. 따라서 MySQL 구성은 괜찮습니다!
답변1
귀하가 가지고 있는 구성을 살펴보면(귀하가 명시적으로 게시하고 그 내용을 우리에게 알려주는 한) 작동할 것으로 보입니다. 적어도공식 MariaDB KB이것을 나타낼 것입니다.
따라서 해당 구성 파일에 뭔가가 누락되었거나 다른 문제에 직면했을 수 있습니다. 문제가 네트워크나 방화벽과 관련되어 있을 수 없다고 말씀하셨지만, 최근 오류에서는 ERROR 2003 (HY000): Can't connect to MySQL server on '<host>' (113)
여전히 문제가 될 수 있음을 나타냅니다.
mysql 명령을 사용하여 서버의 로컬 IP(127.0.0.1)에 연결을 시도할 수 있습니다. 내가 연결한 질문을 보면 다음을 사용할 것입니다.
mysql -h 127.0.0.1 -u root -p
해당 명령을 사용하여 연결을 설정할 수 있다면 MariaDB가 실행 중이고 IP 기반 연결을 수락하고 있음을 알 수 있습니다.
이제 일어날 수 있는 일은 외부 IP 주소에 바인딩되지 않거나(외부 IP만 설정하려고 시도할 수도 있음 bind-host
) 방화벽(클라이언트 또는 서버) 또는 다른 네트워크 구성 요소가 연결을 방해하고 차단할 수 있다는 것입니다.
서버가 바인딩하는 내용을 확인하려면 다음을 실행할 수 있습니다(루트 또는 sudo로):
netstat -l -n -p
그러면 다음과 같은 줄이 표시됩니다.
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
...
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1234/mysqld
...
보시다시피, 이 경우 MySQL 서버는 포트 3306의 localhost 주소를 가리키며 실행되고 있습니다.