명령줄에서 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 서버에서 테스트 완료
해라
telnet 3306
접속이 열리지 않는 경우는, 파이어 월(fire wall)이 설정되어 있거나, 서버가 수신하고 있지 않거나, 동작하고 있지 않습니다.달려.
netstat -an
를 클릭하여 서버가 가동하고 있는지 확인합니다.원격 연결을 허용하지 않을 수 있습니다.
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
'programing' 카테고리의 다른 글
MariaDB가 지원할 수 있는 최대 레코드 수 (0) | 2022.10.03 |
---|---|
오브젝트가 Promise인지 확인하는 방법 (0) | 2022.10.03 |
스토어 변경 시 구성 요소가 업데이트되지 않음 - Vuex (0) | 2022.10.03 |
여러 열의 테이블 열 데이터 유형을 변경하려면 어떻게 해야 합니까? (0) | 2022.10.03 |
vue.js / Vue getter not defined 오류 (0) | 2022.10.02 |