2016-04-07 1 views
1

だから私はその後、私は走ったERROR 2013(HY000): '初期通信パケットを読ん' でのMySQLサーバへの失われた接続、システムエラー:54

sudo apt-get install mysql-server 

経由で$ 5滴のUbuntuをベースとインストールMySQLを作成しましたsudo mysql_secure_installationはパスワードを変更せず、他のすべての質問にenterを押しました。

「リモートアクセスを許可するようにMySQLを構成する」セクションの手順に従います。

マイ/etc/mysql/my.cnfは次のようになります。私は、リモート・データベースに自分のコンピュータから接続することはできませんしかし、私はタイトルにエラーが発生しますので、私はそれの地獄をGoogleで検索しました:(

# 
# The MySQL database server configuration file. 
# 
# You can copy this to one of: 
# - "/etc/mysql/my.cnf" to set global options, 
# - "~/.my.cnf" to set user-specific options. 
# 
# One can use all long options that the program supports. 
# Run program with --help to get a list of available options and with 
# --print-defaults to see which it would actually understand and use. 
# 
# For explanations see 
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html 

# This will be passed to all mysql clients 
# It has been reported that passwords should be enclosed with ticks/quotes 
# escpecially if they contain "#" chars... 
# Remember to edit /etc/mysql/debian.cnf when changing the socket location. 
[client] 
port   = 3306 
socket   = /var/run/mysqld/mysqld.sock 

# Here is entries for some specific programs 
# The following values assume you have at least 32M ram 

# This was formally known as [safe_mysqld]. Both versions are currently parsed. 
[mysqld_safe] 
socket   = /var/run/mysqld/mysqld.sock 
nice   = 0 
[mysqld] 
# 
# * Basic Settings 
# 
user   = mysql 
pid-file  = /var/run/mysqld/mysqld.pid 
socket   = /var/run/mysqld/mysqld.sock 
port   = 3306 
basedir   = /usr 
datadir   = /var/lib/mysql 
tmpdir   = /tmp 
lc-messages-dir = /usr/share/mysql 
#skip-external-locking 
skip-name-resolve 
#skip-networking 
# 
# Instead of skip-networking the default is now to listen only on 
# localhost which is more compatible and is not less secure. 
bind-address   = <MY_DROPPLET_IP> 
connect_timeout = 100 
# * Fine Tuning 
# 
key_buffer    = 16M 
max_allowed_packet  = 16M 
thread_stack   = 192K 
thread_cache_size  = 8 
# This replaces the startup script and checks MyISAM tables if needed 
# the first time they are touched 
myisam-recover   = BACKUP 
#max_connections  = 100 
#table_cache   = 64 
#thread_concurrency  = 10 
# 
# * Query Cache Configuration 
# 
query_cache_limit  = 1M 
query_cache_size  = 16M 
#  
# * Logging and Replication 
# 
# Both location gets rotated by the cronjob. 
# Be aware that this log type is a performance killer. 
# As of 5.1 you can enable the log at runtime! 
#general_log_file  = /var/log/mysql/mysql.log 
#general_log    = 1 
# 
# Error log - should be very few entries. 
# 
log_error = /var/log/mysql/error.log 
# 
# Here you can see queries with especially long duration 
#log_slow_queries  = /var/log/mysql/mysql-slow.log 
#long_query_time = 2 
#log-queries-not-using-indexes 
# 
# The following can be used as easy to replay backup logs or for replication. 
# note: if you are setting up a replication slave, see README.Debian about 
#  other settings you may need to change. 
#server-id    = 1 
#log_bin      = /var/log/mysql/mysql-bin.log 
expire_logs_days  = 10 
max_binlog_size   = 100M 
#binlog_do_db   = include_database_name 
#binlog_ignore_db  = include_database_name 
# 
# * InnoDB 
# 
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. 
# Read the manual for more InnoDB related options. There are many! 
# 
# * Security Features 
# 
# Read the manual, too, if you want chroot! 
# chroot = /var/lib/mysql/ 
# 
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". 
# 
# ssl-ca=/etc/mysql/cacert.pem 
# ssl-cert=/etc/mysql/server-cert.pem 
# ssl-key=/etc/mysql/server-key.pem 
Then I might have configured something for port 3306 and ip-tables but can't remember what i tis (found on this community as well) 

とイムのように思えるのシステムエラーを取得し、世界で唯一の人:54の事

これは、MySQLのバージョンです:。 mysqlの按分5.5.47 14.14版は、debian-のlinux-gnuの(x86_64版)のためのreadline 6.3

を使用して

私はまた

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'r00t' WITH GRANT OPTION; 

と素朴な試みで、私は「開いているポート3306」に、以下のコマンドを実行しました::

これをやって

をrootユーザーに完全な権限を付与された、いくつかの他のユーザー(テストへ)

iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d <serverip> --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -p tcp -s <serverip> --sport 3306 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT 

しかし、私はまだ....地獄からこのエラーを取得:C

また、サーバーをtelnetで接続しようとしましたが、これは何が起こったかだった:

私は、MySQLのワークベンチを介してサーバに接続し、テストのために厳密にリモートサーバーでデータベースを展開するC

Telnet escape character is 'X'. 
Trying <ip>... 
Connected to <ip> 
Escape character is 'X'. 

そして今、私は泣きたい:その結果

$ echo X | telnet -e X 45.58.41.103 3306 

一時的な目的(セキュリティはここでは問題ではありません)。

答えて

2

私のファイアウォールは私の気持ちに合わせて遊んでいました。

ホストとポートに例外を追加して修正しました。まず、私はそれを無効にしようとし、それが働いた、その後、私は詳細を詳述し、例外を追加しました。

これはいつか誰かを助けてくれることを願っています。

関連する問題