web-dev-qa-db-ja.com

(IPまたはドメイン名)でMySQLサーバーに接続できません

Webサーバー(Debian 7)を構成しようとしています。私はこれに従いました tutorial 。 gandi.netサービスのおかげでサーバーをレンタルしています。そして今、Apache2、mysql、php5が稼働しています。ターミナルで次のコマンドを使用して接続します:ssh [email protected]

次のステップは、sequel proを使用してデータベースを作成することです。その方法はわかりませんが、ドキュメントはそれほど明確ではありません。 enter image description here

私は接続しようとしました:

  • ノム:名前、明確にわかりました。 (私はここに何かを入れることができると思いますか?)
  • ホスト:IPまたはドメイン名
  • ユーザー:ssh接続で使用しているユーザー名(上記参照)
  • パスワード:ssh接続(上記参照)とmysql接続の両方に使用するパスワード

残りについては、そのままにしておき、このエラーメッセージを受け取りました:

ホストdomainname.comに接続できないか、要求がタイムアウトしました。

アドレスが正しいこと、および必要な特権を持っていることを確認するか、接続タイムアウト(現在は10秒)を増やしてみてください。

MySQLによると: 'domainename.com'(61) '(2)のMySQLサーバーに接続できません

どのように私はそれを行うことができますか?

13
Ambroise Collon

MySQLをDebianに通常インストールすると、データベースへの外部接続をブロックするように構成されます。

これは、外部アクセスがOKであることをMySQLに伝える必要があることを意味します。これを行うには、MySQLのバインドアドレスを更新する必要があります。これはmy.cnfで設定され、Debianベースのシステムでは/etc/mysql/my.cnfにあります。

そこに、というセクションを見つけます

[mysqld]

そこに、あなたはそれを確認する必要があります

  • skip-networking行はコメント化されている(コメントは '#'で始まる)か、そうでない
  • バインドアドレスは、0.0.0.0(回線バインドアドレスがない場合)またはサーバーのIPアドレスに設定されます。

これを行った後、MySQLサービスを再起動する必要があります。次に、リモートアクセスが許可されているユーザーを作成する必要があります。これは、SQLクエリを使用して実行できます。

GRANT ALL ON yourdatabase.* TO youruser@'*' IDENTIFIED BY 'yourpassword';

毎回同じである場合、接続元のIPアドレスのアスタリスクを切り替えることができます。

最後に、ファイアウォールでポート3306(MySQLが使用するポート)を開く必要があります。ほとんどのシステムで既に開かれているため、これは通常必要ありませんが、次のiptablesコマンドを使用して実行できます。

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
service iptables save

ソース: 1

22
Bert Peters

これは私のために働いた解決策です:Debian 7で/etc/mysql/my.cnfの下のmy.cnfを見て、次の行を見つけてください:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        = 127.0.0.1

127.0.0.1をmysqlサーバーのIPアドレス、接続したい、または0.0.0.0制限なし。

8
Trendfischer

.cnfファイルを見つけようとしていたので、次のことを行いました。

Sudo find / -name "*.cnf"

/etc/mysql/mysql.conf.d/mysqld.cnf
/etc/mysql/my.cnf
/etc/mysql/mysql.cnf
/etc/mysql/conf.d/mysqldump.cnf
/etc/mysql/conf.d/mysql.cnf

私は/ etc/mysql/mysql.conf.d/mysqld.cnfに基づいて編集しました

strace mysql ";" 2>&1  | grep cnf

stat("/etc/my.cnf", 0x7ffda9472660)     = -1 ENOENT (No such file or directory)
stat("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=683, ...}) = 0
open("/etc/mysql/my.cnf", O_RDONLY)     = 3
stat("/etc/mysql/conf.d/mysql.cnf", {st_mode=S_IFREG|0644, st_size=8, ...}) = 0
open("/etc/mysql/conf.d/mysql.cnf", O_RDONLY) = 4
stat("/etc/mysql/conf.d/mysqldump.cnf", {st_mode=S_IFREG|0644, st_size=55, ...}) = 0
open("/etc/mysql/conf.d/mysqldump.cnf", O_RDONLY) = 4
stat("/etc/mysql/mysql.conf.d/mysqld.cnf", {st_mode=S_IFREG|0644, st_size=3034, ...}) = 0
open("/etc/mysql/mysql.conf.d/mysqld.cnf", O_RDONLY) = 4
stat("/etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf", {st_mode=S_IFREG|0644, st_size=21, ...}) = 0
open("/etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf", O_RDONLY) = 4
stat("/root/.my.cnf", 0x7ffda9472660)   = -1 ENOENT (No such file or directory)
stat("/root/.mylogin.cnf", 0x7ffda9472660) = -1 ENOENT (No such file or directory)

bind-addressをローカルIPアドレスに変更しました。

1
user260826
  1. locate my.cnf
  2. vi <パスをコピー>
    例えば==> vi /usr/local/etc/my.cnf
  3. 違いを見つけて更新する場合は、以下を参照して比較してください
# Default Homebrew MySQL server config  
[mysqld]
# Only allow connections from localhost  
bind-address = 0.0.0.0

次に、ボタン=> escおよび:wq(viコマンド)を押します

MySQLを再起動します=>

Sudo /usr/local/mysql/support-files/mysql.server stop
Sudo /usr/local/mysql/support-files/mysql.server start

いいよ...

0
Jitendra

ターミナルでこの行を実行するだけで問題を修正します

ALTER USER 'your_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';

your_user = root 私のために
your_password = something好きなものを選択してください

0
Henry Tirla

Sudo vim/etc/ssh/sshd_config

ファイルhttpd.confのlocalhostを次のように設定します

ServerName localhost

または、ポートがサーバーリクエストを受け入れず、サーバーip_addressに接続できないと表示されます

0
Manu R S