programing

명령줄에서 mysql 원격 데이터베이스 액세스

randomtip 2022. 10. 3. 17:41
반응형

명령줄에서 mysql 원격 데이터베이스 액세스

Rackspace에 서버가 있어요.로컬 머신의 명령줄에서 데이터베이스에 액세스하고 싶다.

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

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 콘솔로 직접 이동할 수 있습니다.

이것을 ubuntu의 터미널에 놓기만 하면 됩니다.

mysql -u username -h host -p

Enter 키를 누릅니다.

단말기가 패스워드를 묻고 패스워드를 입력하면 데이터베이스 서버에 접속합니다.

my.cnf 파일 편집:

vi /etc/my.cnf:

다음 사항을 확인합니다.

bind-address=YOUR-SERVER-IP

라인이 있는 경우:

skip-networking

반드시 코멘트해 주세요.

#skip-networking

재기동하는 것을 잊지 말아 주세요.

/etc/init.d/mysqld restart

Mac의 경우 다음 명령을 사용합니다.

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

프롬프트가 뜨면 비밀번호를 입력합니다.

이 명령어 실행mysql -uuser -hhostname -PPORT -ppassword.

저도 비슷한 상황에 처했고 나중에 명령어로 호스트용 mysql 포트를 입력했을 때 해결되었습니다.

ssh 터널을 사용하지 않을 경우 my.cnf 또는 mysqld.cnf에서 Lan 경유로 액세스하려면 127.0.0.1을 로컬 IP 주소(192.168.1.100)변경해야 합니다.아래 예:

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

my.cnf 또는 mysqld.cnf에서 bind-address를 검색합니다.

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 acces 사용자 root를 변경합니다(액세스할 수 있는 리모트서버에서 쿼리 벨로우 실행).

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

ubuntu 18.04 서버에서 테스트 완료

  1. 해라telnet 3306접속이 열리지 않는 경우는, 파이어 월(fire wall)이 설정되어 있거나, 서버가 수신하고 있지 않거나, 동작하고 있지 않습니다.

  2. 달려.netstat -an를 클릭하여 서버가 가동하고 있는지 확인합니다.

  3. 원격 연결을 허용하지 않을 수 있습니다.

    http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html 를 참조해 주세요.

MySQL은 컴퓨터에 설치되어 있을 것입니다.누락된 세부 정보를 입력한 후 다음 명령을 실행합니다.

mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306 

mysql 서버는 보통 웹 응용 프로그램에서 사용되는 localhost(802.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

간단한 명령어가 있습니다.

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

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

다음 코드를 사용하여 원격 MY SQL 데이터베이스에 연결할 수 있습니다.

mysql -u {database_user} -p{db_password} -h {host_name} -P {port_number}
mysql -u admin -p'your_password' -h your-company.aws.com -P 3306

포트 3306에 대한 착신 액세스가 방화벽에 의해 차단되는지 확인해야 합니다.

이 솔루션은 나에게 효과가 있었다.

리모트 머신(예: 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_sshine_ipaddress: 이 예에서는 로컬 IP 주소가 아니라 ssh를 사용하는 IP 주소입니다.

your_syslog_syslogine_local_port: 이것은 22가 아닌 커스텀포트입니다.이 예에서는 3306 입니다.

target_ipaddress - DB를 덤프하려는 머신의 IP.

target_port - 3306 이것은 MySQL 서버의 실제 포트입니다.

user@your_ip_address: 연결하는 ssh 매쉬인의 ssh 자격 정보입니다.

이 모든 작업이 완료되면 기계로 돌아가서 다음을 수행합니다.

mysqldump -h 295.13.12.53 -P 3306 -u username -p db_name > dumped_db.sql

암호를 입력하고 암호를 입력하면 연결됩니다.이게 도움이 됐으면 좋겠다.

시험해 보세요.작동:

mysql -h {hostname} -u{username} -p{password} -N -e "{query to execute}"

.「 mysql 8 」를 치환해 주세요.hostname 및 「」를 해 주세요.port_number가 root mysql_user가 경우 port_number를 할 수도 .

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

자세한 내용은 이쪽

비밀번호는 'p'로 입력해야 합니다.

mysql -u root -u 1.1.1.1 -p'MyPass'

나도 같은 오류가 발생하고 있었다.그러나 리모트 mysql 서버에 새로운 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;

이제 다음 명령을 사용하여 remote mysql에 연결할 수 있습니다.

mysql -u openvani -h 'any ip address'-p

다음은 투고 전문입니다.

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

Windows 를 사용하고 있는 경우는, MySQL 플러그 인을 사용한 Visual Studio Code 를 사용해 주세요.이것은 Windows 머신상의 MySQL 데이터에 쉽고 통합된 방법입니다.또한 데이터베이스 테이블은 나열되며 모든 사용자 지정 쿼리를 실행할 수 있습니다.

언급URL : https://stackoverflow.com/questions/15872543/access-mysql-remote-database-from-command-line

반응형