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コンソールに移動します。
my.cnfファイルを編集します。
vi /etc/my.cnf
:
次のことを確認してください。
bind-address=YOUR-SERVER-IP
そしてあなたがラインを持っているならば:
skip-networking
必ずコメントしてください。
#skip-networking
再起動を忘れないでください。
/etc/init.d/mysqld restart
単にこれをubuntuの端末に置いてください。
mysql -u username -h Host -p
今すぐエンターを押す
端末はあなたにパスワードを尋ねるでしょう、パスワードを入力すればあなたはデータベースサーバに入ります
このコマンドmysql -uuser -hhostname -PPORT -ppassword
を試してください。
私は同様の状況に直面し、その後ホスト用のMySQLポートがコマンドで入力されたとき、それは解決されました。
Macの場合は、次のコマンドを使用します。
mysql -u app -h hostaddress -P port -D dbname -p
プロンプトが表示されたらパスワードを入力します。
Sshトンネルを使用したくない場合は、 my.cnf または mysqld.cnf にローカルIPアドレス( 192.168.1.100 )を付けて 127.0.0.1 を変更する必要があります。 LAN経由でアクセスするために。ベローズの例:
Sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address in my.cnf または mysqld.cnf を検索してください。
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 を変更します(アクセスを許可したいリモートサーバーで以下のクエリを実行します)。
[email protected]:~$ 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
を試してください。接続が開かない場合は、ファイアウォールが設定されているか、サーバーが待機していない(または機能していない)のいずれかです。netstat -an
を実行して、サーバーが起動しているかどうかを確認してください。リモート接続を許可しない可能性があります。
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.htmlを参照してください
あなたのマシンにMySQLがインストールされていると思います。不足している詳細情報を入力した後、以下のコマンドを実行してください。
mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306
ポート3306への着信アクセスがファイアウォールによってブロックされているかどうかを確認する必要があります。
簡単なコマンドがあります。
mysql -h {hostip} -P {port} -u {username} -p {database}
例
mysql -h 192.16.16.2 -P 45012 -u rockbook -p rockbookdb
パスワードは 'p'で入力してください
mysql -u root -u 1.1.1.1 -p'MyPass'
mysqlサーバーは通常、localhost(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
私も同じエラーを受けていました。しかし、リモートの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
これが全文です。
この解決策は私のために働いた:
あなたのリモートマシン(例:295.13.12.53)はあなたのターゲットリモートマシン(これはmysqlサーバを実行します)にアクセスできます。
ssh -f -L 295.13.12.53:3306:10.18.81.36:3306 [email protected]
説明:
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 -h {ホスト名} -u {ユーザー名} -p {パスワード} -N -e "{実行するクエリ}"