场景
[root@localhost bin]# ./mysqld
2020-01-15 17:52:02 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-01-15 17:52:02 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
2020-01-15 17:52:02 0 [Note] ./mysqld (mysqld 5.6.44) starting as process 90367 ...
2020-01-15 17:52:02 90367 [Note] Plugin 'FEDERATED' is disabled.
2020-01-15 17:52:02 90367 [Note] InnoDB: Using atomics to ref count buffer pool pages
2020-01-15 17:52:02 90367 [Note] InnoDB: The InnoDB memory heap is disabled
2020-01-15 17:52:02 90367 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2020-01-15 17:52:02 90367 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2020-01-15 17:52:02 90367 [Note] InnoDB: Compressed tables use zlib 1.2.11
2020-01-15 17:52:02 90367 [Note] InnoDB: Using Linux native AIO
2020-01-15 17:52:02 90367 [Note] InnoDB: Not using CPU crc32 instructions
2020-01-15 17:52:02 90367 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2020-01-15 17:52:02 90367 [Note] InnoDB: Completed initialization of buffer pool
2020-01-15 17:52:02 90367 [Note] InnoDB: Highest supported file format is Barracuda.
2020-01-15 17:52:02 90367 [Note] InnoDB: 128 rollback segment(s) are active.
2020-01-15 17:52:02 90367 [Note] InnoDB: Waiting for purge to start
2020-01-15 17:52:02 90367 [Note] InnoDB: 5.6.44 started; log sequence number 18755961
2020-01-15 17:52:02 90367 [Note] Server hostname (bind-address): '*'; port: 3306
2020-01-15 17:52:02 90367 [Note] IPv6 is available.
2020-01-15 17:52:02 90367 [Note] - '::' resolves to '::';
2020-01-15 17:52:02 90367 [Note] Server socket created on IP: '::'.
2020-01-15 17:52:02 90367 [ERROR] Can't start server : Bind on unix socket: Address already in use
2020-01-15 17:52:02 90367 [ERROR] Do you already have another mysqld server running on socket: /tmp/mysql.sock ?
2020-01-15 17:52:02 90367 [ERROR] Aborting
排查过程
1)管道文件已经存在
2020-01-15 17:52:02 90367 [ERROR] Can't start server : Bind on unix socket: Address already in use
2020-01-15 17:52:02 90367 [ERROR] Do you already have another mysqld server running on socket: /tmp/mysql.sock ?
2)查看文件属性以及查看进程占用
[root@localhost tmp]# file mysqld.sock
mysqld.sock: socket
[root@localhost tmp]# fuser /tmp/mysql.sock
没有发现任何进程占用,说明该文件不是由mysqld进程创建的,并且没有任何的服务占用该管道文件,该管道文件一般用于本地的mysql服务器和客户端通信的通道。默认情况下,mysql主进程在启动的时候创建该文件,退出的时候,会删除该文件,通过删除该文件,解决上面的问题。
3)启动mysql服务,查看占用过程
[root@localhost tmp]# fuser /tmp/mysql.sock
/tmp/mysqld.sock: 76533
[root@localhost tmp]# lsof /tmp/mysql.sock
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 76533 mysql 22u unix 0x00000000f901123c 0t0 8234599 /tmp/mysql.sock