1. 程式人生 > >MySQL啟動報錯“Bind on TCP/IP port: Address already in use”

MySQL啟動報錯“Bind on TCP/IP port: Address already in use”

啟動報錯“Bind on TCP/IP port: Address already in use”

問題描述:
mysql啟動失敗,檢視err日誌
# tail -f /database/umc/data/umc.err
141106 10:37:14 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
141106 10:37:14 [ERROR] Do you already have another mysqld server running on port: 3306 ?

原因分析:

埠3306被佔用

使用命令:
ps -aux | grep mysql
發現並沒有3306埠的mysql程序。

使用命令:netstat –apn 
檢視所有的程序和埠使用情況。發現下面的程序列表,其中最後一欄是PID/Program name 
# netstat -apn  | grep 3306    
tcp        0      0 ::ffff:192.168.65.211:3306  ::ffff:192.168.65.211:3306  ESTABLISHED 18148/java 

發現3306埠被PID為18148的Java程序佔用。

進一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 檢視
就可以明確知道3306埠是被哪個程式佔用了!然後判斷是否使用KILL命令幹掉!
 
#啟動mysql

觀察

# netstat -anp  | grep 3306 
tcp        0      0 :::3306                     :::*                        LISTEN      16511/mysqld        
tcp        0      0 ::ffff:192.168.65.211:3306  ::ffff:192.168.65.211:4840  ESTABLISHED 16511/mysqld        
tcp        0      0 ::ffff:192.168.65.211:3306  ::ffff:192.168.65.211:4841  ESTABLISHED 16511/mysqld        
tcp        0      0 ::ffff:192.168.65.211:3306  ::ffff:192.168.65.211:4842  ESTABLISHED 16511/mysqld        
tcp        0      0 ::ffff:192.168.65.211:3306  ::ffff:192.168.65.211:4837  ESTABLISHED 16511/mysqld        
tcp        0      0 ::ffff:192.168.65.211:3306  ::ffff:192.168.65.211:4838  ESTABLISHED 16511/mysqld        
tcp        0      0 ::ffff:192.168.65.211:4837  ::ffff:192.168.65.211:3306  ESTABLISHED 17632/java          
tcp        0      0 ::ffff:192.168.65.211:4838  ::ffff:192.168.65.211:3306  ESTABLISHED 17632/java          
tcp        0      0 ::ffff:192.168.65.211:4840  ::ffff:192.168.65.211:3306  ESTABLISHED 17632/java          
tcp        0      0 ::ffff:192.168.65.211:4841  ::ffff:192.168.65.211:3306  ESTABLISHED 17632/java          
tcp        0      0 ::ffff:192.168.65.211:4842  ::ffff:192.168.65.211:3306  ESTABLISHED 17632/java