programing

오류 61이 발생하여 원격 MySQL 서버에 연결할 수 없습니다.

jooyons 2023. 10. 17. 20:14
반응형

오류 61이 발생하여 원격 MySQL 서버에 연결할 수 없습니다.

명령줄을 사용하여 원격 MySQL 서버를 연결하려고 했을 때mysql -h <remote-ip> -u any_existing_users -p또는 phphmyadmin과 같은 다른 mysql 클라이언트는 작동하지 않았고 오류 힌트는

ERROR 2003 (HY000) Can't connect to MySQL server on '<remote-ip>' (61)

그런데 제가.ssh <remote-ip>MySQL을 로컬로 연결했습니다.mysql -u root -p,문제가 없다.

사용자 테이블의 일부입니다(SELECT User, Host FROM mysql.user;):

+------------------+----------------+
| User             | Host           |
+------------------+----------------+
| root             | %              |
| other_users      | <remote-ip>    |
| root             | localhost      |
+------------------+----------------+

ipt 테이블은 다음과 같습니다.

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain RH-Firewall-1-INPUT (2 references)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 255 
3    ACCEPT     esp  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     ah   --  0.0.0.0/0            0.0.0.0/0           
5    ACCEPT     udp  --  0.0.0.0/0            224.0.0.251         udp dpt:5353 
6    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:631 
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:631 
8    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
10   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
11   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:3306 

그래서, 뭐가 문제일까요?

mysql 서버가 netstat으로 소켓에서 수신 중인지 확인합니다.

netstat -tulpen

3306을 검색합니다.

그렇지 않거나 localhost에만 있는 경우 my.cnf를 확인하고 검색합니다.bind-address줄을 긋고 다음으로 변경합니다.

bind-address = 0.0.0.0

그런 다음 서버를 다시 시작하고 다시 시도합니다.

상태 확인:

netstat -tulpen

구성 수정:

nano /etc/mysql/my.cnf
# Edit:
bind-address = 0.0.0.0

mysql을 입력하고 권한을 부여합니다.

mysql -umyuser -pmypassword
# Run:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

mysql 다시 시작

/etc/init.d/mysql restart

와 함께MySql 5.7그들은 파일을 바꿨습니다.bind-address현재 에 있습니다.

/etc/mysql/mysql.conf.d/mysqld.cnf

대신:

/etc/mysql/my.cnf

MAMP를 실행하는 경우, 액세스를 허용하는 것을 잊지 마십시오(mySQL 패널, "mySQL에 대한 네트워크 액세스 허용" 선택).

서버에 센토스 7을 설치한 후 바로 이런 문제가 생겼습니다.원격 컴퓨터에서 Mysql Workbench로 접속할 수 없었습니다.

방화벽 구성에 문제가 있습니다.결국 다음을 수행할 때 해결책이 나왔습니다.

sudo firewall-cmd --zone=public --permanent --add-service=mysql

그런 다음 방화벽을 다시 시작합니다.

sudo systemctl restart firewalld

MySQL의 "Access-Denied Errors의 원인"을 살펴보십시오.

http://dev.mysql.com/doc/refman/5.1/en/access-denied.html

서버에서 구성에 오류가 발생했거나 다른 프로그램이 동일한 포트를 사용하고 있습니까?아니면 서버가 "127.0.0.1"에 바인딩되어 있습니까?my.cnf 파일을 변경해 봅니다.

방화벽과 관련된 문제일 수도 있고 다음을 시도해 볼 수 있습니다.

서버 관리 -> MySQL -> 설정 -> 확인:네트워크 연결 허용

그런 다음 MySQL을 다시 시작합니다.

MacOS의 경우:

mysql -uroot -p

mysql> use mysql;

# View user's host
mysql> select 'host' from user where user='root';
# Update host to '%'
mysql> update user set host='%' where user='root';

mysql> flush privileges;
mysql> quit
vim /usr/local/etc/my.cnf
# Default Homebrew MySQL server config
[mysqld]
bind-address = 0.0.0.0
# Restart and reconnect MySQL
mysql.server restart
mysql -uroot -h0.0.0.0 -p

언급URL : https://stackoverflow.com/questions/16161889/cant-connect-to-remote-mysql-server-with-error-61

반응형