Rackspaceを備えたサーバーがあります。ローカルマシンのコマンドラインからデータベースにアクセスしたい。
私は次のように試しました:
mysql -u username -h my.application.com -ppassword
しかし、それはエラーを出します:
エラー2003(HY000):
「my.application.com」のMySQLサーバーに接続できません(10061)
このエラーの原因とリモートデータベースへの接続方法を教えてください。
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コンソールに直接アクセスできます。
31-07-2019-編集された構文
mysql -u USERNAME -p'PASSWORD' -h REMOTE_SERVER_IP DB_NAME
my.cnfファイルを編集します。
vi /etc/my.cnf
:
次のことを確認してください。
bind-address=YOUR-SERVER-IP
次の行がある場合:
skip-networking
必ずコメントしてください:
#skip-networking
再起動することを忘れないでください:
/etc/init.d/mysqld restart
grant all privileges on *.* to 'root'@'%' identified by 'your-password'
これをubuntuのターミナルに置くだけです:
mysql -u username -h host -p
Enterキーを押します
ターミナルはあなたにパスワードを尋ね、パスワードを入力するとあなたはデータベースサーバーに入ります
このコマンドを試してくださいmysql -uuser -hhostname -PPORT -ppassword
。
私は同様の状況に直面し、後でホストのmysqlポートがコマンドで入力されたときに解決されました。
mysql -u testuser -h 192.168.**.* -P 3306 -p password
私のために働きました
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.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アクセスのユーザールートを変更します(アクセスを許可するリモートサーバーでクエリのベローズを実行します)
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サーバーでテスト済み
試してくださいtelnet 3306
。接続が開かない場合は、ファイアウォール設定があるか、サーバーがリッスンしていない(または機能していない)かのいずれかです。
netstat -an
サーバー上で実行して、サーバーが稼働しているかどうかを確認します。
リモート接続を許可しない可能性があります。
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.htmlを参照してください
簡単なコマンドがあります。
mysql -h {hostip} -P {port} -u {username} -p {database}
例
mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb
この解決策は私にとってうまくいきました:
リモートマシン(例: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
パスワードを要求し、パスワードを入力すると、接続されます。お役に立てれば。
私も同じエラーが出ていました。しかし、リモートの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
ここに完全な投稿があります:
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
10061
= 接続拒否