커맨드 라인에서 mysql 원격 데이터베이스에 액세스


190

랙 공간이있는 서버가 있습니다. 로컬 컴퓨터 명령 줄에서 데이터베이스에 액세스하고 싶습니다.

나는 다음과 같이 시도했다 :

mysql -u username -h my.application.com -ppassword

그러나 오류가 발생합니다.

오류 2003 (HY000) :

'my.application.com'에서 MySQL 서버에 연결할 수 없음 (10061)

이 오류의 원인은 무엇이며 원격 데이터베이스에 어떻게 연결할 수 있습니까?


5
10061= 연결 거부
Danny Beckett

답변:


292

원격 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-편집 된 구문


23
암호를 작은 따옴표로 묶어야했습니다. 즉mysql -u USERNAME -p'PASSWORD' -h REMOTE_SERVER_IP DB_NAME
닉 브래디

2
데이터베이스 이름을 지정하려면 -D를 추가해야합니다. mysql -u {username} -p {password} -h {원격 서버 ip} -D {DB 이름}
randeepsp

1
특정 포트를 지정해야하는 경우 어떻게해야합니까?
서지

2
맥 OS 높은 시에라 버전 10.13.3에 터미널에서 작동하지 않았다
realPK


33

my.cnf 파일을 편집하십시오.

vi /etc/my.cnf:

다음을 확인하십시오.

bind-address=YOUR-SERVER-IP

그리고 줄이 있다면 :

skip-networking

댓글을 달아야합니다.

#skip-networking

다시 시작하는 것을 잊지 마십시오 :

/etc/init.d/mysqld restart


bind-address = YOUR-SERVER-IP입니다. 여기서 언급해야 할 IP는 원격 서버 IP입니까?
user1986299

@ user1986299 아니오, 귀하의 서버 IP가 필요합니다 (원격 아님)
alfasin

1
mysql을 입력하여 로컬 서버에서 DB에 로그인 한 후 다음을 수행하십시오.grant all privileges on *.* to 'root'@'%' identified by 'your-password'
alfasin

5
절대 'root'@ '%'를 부여하지 마십시오. 이것은 엄청난 보안입니다.
josh123a123

1
@alfasin 이것은 깊은 영향을 미치는 작은 조정입니다, 감사합니다!
Christopher Schönfeldt

30

간단히 우분투 터미널에 이것을 넣으십시오.

mysql -u username -h host -p

이제 Enter 키를 누르십시오

터미널은 암호를 묻고 암호를 입력하면 데이터베이스 서버에 있습니다.


14

이 명령을 사용해보십시오 mysql -uuser -hhostname -PPORT -ppassword.

나는 비슷한 상황에 직면했고 나중에 호스트 용 mysql 포트가 명령으로 입력되었을 때 해결되었습니다.


5
mysql -u testuser -h 192.168.**.* -P 3306 -p password나를 위해 일했다
Mahebub A Sayyed

14

Mac의 경우 다음 명령을 사용하십시오.

mysql -u app -h hostaddress -P port -D dbname -p

메시지가 표시되면 암호를 입력하십시오.


12

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.1192.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 서버에서 테스트


가장 좋은 답변! 감사합니다
Nastro


6

컴퓨터에 MySQL이 설치되어 있다고 가정합니다. 누락 된 세부 사항을 작성한 후 아래 명령을 실행하십시오.

mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306 


2

간단한 명령이 있습니다.

mysql -h {hostip} -P {port} -u {username} -p {database}

mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb

{hostip은} 192.10.10.26::45124 같은 포트 세부의 어떤 종류를 추가하지 않습니다
마니 Goswami에게

1

이 솔루션은 저에게 효과적이었습니다.

원격 컴퓨터 (예 : 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

비밀번호를 묻고 비밀번호를 입력하면 연결됩니다. 도움이 되었기를 바랍니다.


1

시도해보십시오. 작동 중입니다.

mysql -h {hostname} -u {username} -p {password} -N -e "{실행 쿼리}"



0

나도 같은 오류가 발생했습니다. 그러나 원격 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

전체 게시물은 다음과 같습니다.

http://openvani.com/blog/connect-remotely-mysql-server/


0

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

0

이것은 mysql 8에서 나를 위해 일했고, hostname호스트 이름과 port_numberport_number로 바꾸고, 루트가 아닌 경우 mysql_user를 변경할 수도 있습니다

      mysql --host=host_name --port=port_number -u root -p

추가 정보는 여기


0

Windows를 사용하는 경우 Windows 시스템에서 MySQL 데이터에 액세스하는 쉽고 통합 된 방법 인 MySQL 플러그인을 사용하여 Visual Studio Code를 사용해보십시오. 그리고 데이터베이스 테이블이 나열되어 있으며 모든 사용자 정의 쿼리를 실행할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.