랙 공간이있는 서버가 있습니다. 로컬 컴퓨터 명령 줄에서 데이터베이스에 액세스하고 싶습니다.
나는 다음과 같이 시도했다 :
mysql -u username -h my.application.com -ppassword
그러나 오류가 발생합니다.
오류 2003 (HY000) :
'my.application.com'에서 MySQL 서버에 연결할 수 없음 (10061)
이 오류의 원인은 무엇이며 원격 데이터베이스에 어떻게 연결할 수 있습니까?
랙 공간이있는 서버가 있습니다. 로컬 컴퓨터 명령 줄에서 데이터베이스에 액세스하고 싶습니다.
나는 다음과 같이 시도했다 :
mysql -u username -h my.application.com -ppassword
그러나 오류가 발생합니다.
오류 2003 (HY000) :
'my.application.com'에서 MySQL 서버에 연결할 수 없음 (10061)
이 오류의 원인은 무엇이며 원격 데이터베이스에 어떻게 연결할 수 있습니까?
답변:
원격 mysql 콘솔에 직접 로그인하려면 아래 명령을 사용하십시오.
mysql -u {username} -p'{password}' \
-h {remote server ip or name} -P {port} \
-D {DB name}
예를 들어
mysql -u root -p'root' \
-h 127.0.0.1 -P 3306 \
-D local
설명서에 지정된 -p 뒤에 공백이 없습니다.
언급 된 데이터베이스로 전환하여 mysql 콘솔로 직접 이동합니다.
31-07-2019-편집 된 구문
mysql -u USERNAME -p'PASSWORD' -h REMOTE_SERVER_IP DB_NAME
my.cnf 파일을 편집하십시오.
vi /etc/my.cnf:
다음을 확인하십시오.
bind-address=YOUR-SERVER-IP
그리고 줄이 있다면 :
skip-networking
댓글을 달아야합니다.
#skip-networking
다시 시작하는 것을 잊지 마십시오 :
/etc/init.d/mysqld restart
grant all privileges on *.* to 'root'@'%' identified by 'your-password'
이 명령을 사용해보십시오 mysql -uuser -hhostname -PPORT -ppassword.
나는 비슷한 상황에 직면했고 나중에 호스트 용 mysql 포트가 명령으로 입력되었을 때 해결되었습니다.
mysql -u testuser -h 192.168.**.* -P 3306 -p password나를 위해 일했다
ssh 터널을 사용하지 않으려면 my.cnf 또는 mysqld.cnf 에서 Lan을 통해 액세스하려면 로컬 IP 주소 ( 192.168.1.100 )로 127.0.0.1 을 변경해야합니다 . 벨로우즈 예제 :
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
my.cnf 또는 mysqld.cnf 에서 바인드 주소 검색
bind-address = 127.0.0.1
변경 127.0.0.1 에 192.168.1.100 (로컬 IP 주소)
bind-address = 192.168.1.100
변경 사항을 적용하려면 다음 명령을 사용하여 mysql 서버를 다시 시작해야합니다.
sudo /etc/init.d/mysql restart
LAN 액세스에 대한 사용자 루트 수정 (액세스하려는 원격 서버에서 쿼리의 벨로우즈 실행)
root@192.168.1.100:~$ mysql -u root -p
..
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
특정 IP 주소에서만 액세스하려면 'root'@ '%' 를 'root'@ '(ip 주소 또는 호스트 이름)'으로 변경하십시오.
CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' WITH GRANT OPTION;
FLUSH PRIVILEGES;
그런 다음 연결할 수 있습니다.
nobus@xray:~$ mysql -h 192.168.1.100 -u root -p
우분투 18.04 서버에서 테스트
시도하십시오 telnet 3306. 연결이 열리지 않으면 방화벽 설정이 있거나 서버가 수신 대기하지 않거나 작동하지 않는 것입니다.
netstat -an서버가 실행 중인지 확인하기 위해 서버에서 실행 하십시오.
원격 연결을 허용하지 않을 수 있습니다.
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html을 참조 하십시오
간단한 명령이 있습니다.
mysql -h {hostip} -P {port} -u {username} -p {database}
예
mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb
이 솔루션은 저에게 효과적이었습니다.
원격 컴퓨터 (예 : 295.13.12.53)에서 대상 원격 컴퓨터 (mysql 서버를 실행)에 액세스 할 수 있습니다
ssh -f -L 295.13.12.53:3306:10.18.81.36:3306 user@295.13.12.53
설명 :
ssh -f -L your_ssh_mashine_ipaddress:your_ssh_mashine_local_port:target_ipaddress:target_port user@your_ip_address -N
your_ssh_mashine_ipaddress-로컬 IP 주소가 아니며,이 예에서 295.13.12.53으로 ssh하는 IP 주소입니다.
your_ssh_mashine_local_port-이 포트는 22가 아닌 사용자 지정 포트이며이 예에서는 3306입니다.
target_ipaddress-DB를 덤프하려는 시스템의 IP
target_port-3306 이것은 MySQL 서버의 실제 포트입니다.
user @ your_ip_address-이것은 연결하는 ssh mashine의 ssh 자격 증명입니다.
이 모든 작업이 완료되면 컴퓨터로 돌아가서 다음을 수행하십시오.
mysqldump -h 295.13.12.53 -P 3306 -u username -p db_name > dumped_db.sql
비밀번호를 묻고 비밀번호를 입력하면 연결됩니다. 도움이 되었기를 바랍니다.
나도 같은 오류가 발생했습니다. 그러나 원격 mysql 서버 ans에 새로운 mysql 사용자를 만든 다음 연결하여 유용하다는 것을 알았습니다. 원격 서버에서 다음 명령을 실행하십시오.
CREATE USER 'openvani'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'localhost WITH GRANT
OPTION;
CREATE USER 'openvani'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
이제 다음 명령으로 원격 mysql에 연결할 수 있습니다.
mysql -u openvani -h 'any ip address'-p
전체 게시물은 다음과 같습니다.
mysql 서버는 일반적으로 웹 응용 프로그램에서 사용되는 로컬 호스트 (127.0.0.1) 만 수신하도록 구성됩니다.
이것이 사실이지만 서버에 대한 SSH 액세스 권한이있는 경우 ssh 터널을 만들고이를 통해 연결할 수 있습니다.
로컬 머신에서 터널을 작성하십시오.
ssh -L 3307:127.0.0.1:3306 -N $user@$remote_host
(이 예제는 로컬 컴퓨터에서 mysql을 실행하고 표준 포트 3306을 사용하는 경우 로컬 포트 3307을 사용합니다)
이제 당신은 에일이되어야합니다
mysql -u $user -p -h 127.0.0.1 -P 3307
10061= 연결 거부