Thông báo lỗi đó được tạo ra bởi máy khách (không phải máy chủ) vì đã cố gắng kết nối với máy chủ nhưng không thể kết nối với máy chủ.
Có thể có nhiều nguyên nhân khác nhau dẫn đến điều đó:
1) kiểm tra xem mysqld có đang chạy trên máy chủ không:
ps -ef | grep mysqld
nên trả về một cái gì đó như:
root 2435 2342 0 15:49 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/var/ --user=mysql
mysql 2480 2435 0 15:49 pts/1 00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/var/ --user=mysql ...
Để chạy dịch vụ daemon, hãy chạy trên redhat / fedora / centos:
service mysqld start
hoặc trên bản phát hành Fedora> =16, dựa trên systemd:
systemctl start mysqld.service
và để bật tính năng tự động khởi động daemon khi khởi động hệ thống:
systemctl enable mysqld.service
2) kiểm tra cổng mà mysqld đang chạy trên máy chủ:
netstat -lnp | grep mysql
nên trả về:
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2480/mysqld
unix 2 [ ACC ] STREAM LISTENING 8101 2480/mysqld /tmp/mysql.sock
cái sau là ổ cắm cho các kết nối cục bộ, cái đầu tiên là cổng tcp cho mạng (mặc định 3306). Nếu cổng không phải là cổng mặc định, bạn phải đặt cổng kết nối trên máy khách. Nếu sử dụng máy khách mysql:
mysql dbname -uuser -ppasswd -P<port> ...
3) ở trên một địa chỉ mạng khác, hãy kiểm tra xem máy chủ có lắng nghe mạng cộng đồng mà bạn đang kết nối không:trong tệp /etc/my.cnf
tìm kiếm dòng:
bind_address=127.0.0.1
nếu địa chỉ là 127.0.0.1 thì chỉ các kết nối cục bộ mới được phép; nếu đó là 172.16.1.0, bạn không thể kết nối từ 172.16.2.xxx
4) kiểm tra xem trên máy chủ không có tường lửa nào đang chạy và chặn các kết nối đến cổng mysql (3306 là cổng mặc định); nếu đó là một redhat / fedora / centos chạy
service iptables status