コマンドラインからmysqlリモートデータベースにアクセスする


190

Rackspaceを備えたサーバーがあります。ローカルマシンのコマンドラインからデータベースにアクセスしたい。

私は次のように試しました:

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

しかし、それはエラーを出します:

エラー2003(HY000):

「my.application.com」のMySQLサーバーに接続できません(10061)

このエラーの原因とリモートデータベースへの接続方法を教えてください。


5
10061= 接続拒否
ダニーベケット

回答:


289

リモートの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
パスワードを一重引用符で囲む必要がありました。iemysql -u USERNAME -p'PASSWORD' -h REMOTE_SERVER_IP DB_NAME
Nick Brady

2
データベース名を指定するには、-Dを追加する必要があります。mysql -u {username} -p {password} -h {remote server ip} -D {DB name}
randeepsp

1
特定のポートを指定する必要がある場合はどうなりますか?
セルジュ、

2
MacOS High Sierraバージョン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 2013

@ user1986299いいえ、サーバーのIP(リモートではない)が必要です
alfasin

1
あなたはその後、タイピングのMySQLとすることで、ローカルサーバーからDBにログイン...自分にアクセス権を付与する必要がありますgrant all privileges on *.* to 'root'@'%' identified by 'your-password'
alfasin

5
'root' @ '%'を付与しないでください。これは大きなセキュリティです。
josh123a123 2015

1
@alfasinこれは深い影響を与える小さな調整です、ありがとう!
ChristopherSchönfeldt19年

30

これをubuntuのターミナルに置くだけです:

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で、127.0.0.1をローカルIPアドレス(192.168.1.100)に変更して、LAN経由でアクセスできるようにする必要があります。以下の例:

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

my.cnfまたはmysqld.cnfbind-addressを検索します

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 address or hostname)'に変更します

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サーバーでテスト済み


ベストアンサー!おかげで
Nastro

8
  1. 試してくださいtelnet 3306。接続が開かない場合は、ファイアウォール設定があるか、サーバーがリッスンしていない(または機能していない)かのいずれかです。

  2. netstat -anサーバー上で実行して、サーバーが稼働しているかどうかを確認します。

  3. リモート接続を許可しない可能性があります。

    http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.htmlを参照してください


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のようなポートの詳細を追加しません
Manish 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アドレスではなく、sshを実行する先のIPアドレスです。この例では295.13.12.53

your_ssh_mashine_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

パスワードを要求し、パスワードを入力すると、接続されます。お役に立てれば。


1

これを試してください、その働き:

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



0

私も同じエラーが出ていました。しかし、リモートの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;

これで、次のコマンドでリモートmysqlに接続できます。

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

ここに完全な投稿があります:

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


0

mysqlサーバーは通常、ローカルホスト(127.0.0.1)のみをリッスンするように構成されており、Webアプリケーションで使用されます。

その場合でも、サーバーへの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に置き換えてください。彼がrootでない場合は、mysql_userを変更することもできます。

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

詳細はこちら


0

Windowsを使用している場合は、MySQLプラグインを備えたVisual Studio Codeを試してください。これは、Windowsマシン上のMySQLデータにアクセスする簡単で統合された方法です。リストされたデータベーステーブルは、任意のカスタムクエリを実行できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.