2016-04-07 18 views
1

所以我經由ERROR 2013(HY000):在 '讀初始通信分組',系統錯誤而丟失連接到MySQL服務器:54

sudo apt-get install mysql-server 

創建了基於Ubuntu和安裝$ 5液滴的MySQL然後我跑的sudo mysql_secure_installation沒有更改密碼並點擊其他所有問題。

然後按照「配置MySQL以允許遠程訪問」部分的說明操作。

/etc/mysql/my.cnf現在看起來是這樣的:

# 
# 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) 

但是我無法從我的計算機連接到遠程數據庫:(因爲我得到的標題錯誤,我GOOGLE了地獄了出來,並好像林的唯一的人在世界上獲得的系統錯誤:54件事

這是MySQL的版本: 的MySQL版本14.14 DISTRIB 47年5月5日,爲Debian的Linux-GNU(x86_64的)使用readline的6.3

我也是授予完全權限root用戶和其他一些用戶(測試)

這樣做:

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

,並在天真的嘗試,我跑到下面的命令爲「開放端口3306」:

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

也嘗試遠程登錄服務器,這是發生了什麼:

$ echo X | telnet -e X 45.58.41.103 3306 

導致:

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

現在我想哭:C

我只是想連接到通過MySQL工作臺的服務器,並嚴格進行測試部署在遠程服務器上的數據庫臨時目的(安全性不在這裏)。

回答

2

原來我的防火牆在玩弄我的感覺。

向主機和端口添加例外修復了它。首先,我嘗試禁用它,它工作,然後我闡述了更多,並添加了例外。

希望這可以幫助有人在那裏。

相關問題