Programing

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

lottogame 2020. 6. 5. 07:59
반응형

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


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

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

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 콘솔로 직접 이동합니다.

31-07-2019-편집 된 구문


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

vi /etc/my.cnf:

다음을 확인하십시오.

bind-address=YOUR-SERVER-IP

그리고 줄이 있다면 :

skip-networking

댓글을 달아야합니다.

#skip-networking

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

/etc/init.d/mysqld restart


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

mysql -u username -h host -p

이제 Enter 키를 누르십시오

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


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

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


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

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

메시지가 나타나면 암호를 입력하십시오.


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


  1. 시도하십시오 telnet 3306. 연결이 열리지 않으면 방화벽 설정이 있거나 서버가 수신 대기하지 않거나 작동하지 않는 것입니다.
  2. netstat -an서버가 실행 중인지 확인하기 위해 서버에서 실행 하십시오.
  3. 원격 연결을 허용하지 않을 수 있습니다.

    http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html을 참조 하십시오


I assume you have MySQL installed on your machine. Execute the command below after filling missing details:

mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306 

Must check whether incoming access to port 3306 is block or not by the firewall.


There is simple command.

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

Example

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

You should put your password with 'p'

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

this solution worked for me:

On your remote machine (example: 295.13.12.53) has access to your target remote machine (which runs mysql server)

ssh -f -L 295.13.12.53:3306:10.18.81.36:3306 user@295.13.12.53

Explained:

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 - it is not local ip address, it is ip address that you ssh to, in this example 295.13.12.53

your_ssh_mashine_local_port -this is custom port not 22, in this example it is 3306.

target_ipaddress - ip of the machine that you trying to dump DB.

target_port - 3306 this is real port for MySQL server.

user@your_ip_address - this is ssh credentials for the ssh mashine that you connect

Once all this done then go back to your machine and do this:

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

Will ask for password, put your password and you are connected. Hope this helps.


I was too getting the same error. But found it useful by creating new mysql user on remote mysql server ans then connect. Run following command on remote server:

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;

Now you can connect with remote mysql with following command.

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

Here is the full post:

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


Try this, Its working:

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


mysql servers are usually configured to listen only to localhost (127.0.0.1), where they are used by web applications.

If that is your case but you have SSH access to your server, you can create an ssh tunnel and connect through that.

On your local machine, create the tunnel.

ssh -L 3307:127.0.0.1:3306 -N $user@$remote_host

(this example uses local port 3307, in case you also have mysql running on your local machine and using the standard port 3306)

Now you should be ale to connect with

mysql -u $user -p -h 127.0.0.1 -P 3307

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

반응형