1. 程式人生 > >阿里雲MySQL遠端連線失敗

阿里雲MySQL遠端連線失敗

在阿里雲伺服器上自己裝了一個MySQL,但是剛剛開始並不能正常連線,其實無非就兩種情況

a.伺服器埠攔截

b.MySQL服務拒絕了請求

解決辦法:

針對伺服器,將埠開放連結,針對MySQL,取消MySQL的連線限制即可

1.MySQL取消限制

進入mysql,以root使用者執行以下語句,表示MySQL允許在任何IP連線當前例項

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

2.檢視MySQL的服務:ps -ef | grep mysql

root@iZm5e296kyz53dvpd98xj7Z:/home# ps -ef | grep mysql
mysql    20250     1  0 12:03 ?        00:00:02 /usr/sbin/mysqld

可以看到是通過/usr/sbin/mysqld啟動的MySQL,查詢相應的配置檔案,在/etc/mysql目錄下查詢mysqld.cnf,這裡mysqld.cnf在/etc/mysql/mysql.conf.d/目錄下(如果是通過service mysql.server start啟動方式),編輯,將bind-address = 127.0.0.1註釋掉即可,表示任何一個IP都可以連線MySQL服務。

[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
#
# 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  #將該行註釋
#
# * Fine Tuning
#
key_buffer_size		= 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-options  = BACKUP
#max_connections        = 100
#table_cache            = 64
...

註釋掉之後,重啟MySQL生效。

3.取消伺服器攔截

通過阿里雲控制檯(可以直接通過Aliyun的App直接操作,這裡就不演示APP操作流程了),在安全組規則中新新增一個規則即可。

第一步,進入伺服器控制檯,更多->網路和安全組->安全組配置

第二步,進入安全組頁面,點選配置規則。

第三步,選擇入方向的規則,建立一條3306埠的規則,授權物件是0.0.0.0/0,表示所有網段

OK,完成,這樣就可以從本機直接連線阿里雲上的MySQL拉。