mysql初始化错误【一】
MySQL 初始化DATA报错

[ERROR] InnoDB: io_setup() failed with EAGAIN after 5 attempts.
[ERROR] InnoDB: Cannot initialize AIO sub-system
[ERROR] InnoDB: Plugin initialization aborted with error Generic error
[ERROR] Plugin ‘InnoDB’ init function returned error.
[ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
[ERROR] Failed to initialize plugins.

解决方法:

$ cat /proc/sys/fs/aio-max-nr
65536                        #64k个

$ vi /etc/sysctl.conf
fs.aio-max-nr=262144         #调整为256k个

$ sysctl -p

mysql初始化错误【二】
Can’t find error-message file ‘/usr/local/mysql/errmsg.sys’

原因:一般是初始化的basedir 的路径指定错误了,basedir 一般指定数据库的bin,lib之类的文件

解决方法:初始化的去掉basedir

mysqld --initialize --user=mysql --datadir=/data

查看PID和端口的命令。

1.由端口号查询PID号

有时候会提示:“XXX端口被占用”,那么你不得不依据此端口去查看该端口下运行的哪些进程

使用命令来查看当前系统下所运行的所有端口情况:sudo netstat -antup   

注意:请在sudo的权限下查看,不然有部分的pid是查看不到的。

2.用PID查询端口号

若你在知道进程PID的情况下,如何查看该PID的进程情况呢?

使用命令:sudo netstat -antup|grep PID号 来查询该目标端口的开放情况!当然前提是你要知道该PID的号码:

下图是使用PID为1024来查看端口的情况,我们可以看到该端口是处于LISTEN监听的状态,且端口为80.

3.用进程名查询PID号

有时候一些常用的进程我们都很熟悉,那么此时我们就可以用ps命令来查询目标的PID号了:

使用命令:sudo ps -ef|grep 进程名 来查看该进程的PID是很方便的。可是前提是你要知道该进程的名,比如若是一些系统后台进程则不能查看到。

下图则是使用该命令来查看:mysql数据库的PID为2807,同时它已经告诉我们了端口号为:3306了。

 

查看被占用端口

1、lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000

# netstat -tunlp 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      4814/rpcbind        
tcp        0      0 0.0.0.0:5908                0.0.0.0:*                   LISTEN      25492/qemu-kvm      
tcp        0      0 0.0.0.0:6996                0.0.0.0:*                   LISTEN      22065/lwfs          
tcp        0      0 192.168.122.1:53            0.0.0.0:*                   LISTEN      38296/dnsmasq       
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      5278/sshd           
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      5013/cupsd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      5962/master         
tcp        0      0 0.0.0.0:8666                0.0.0.0:*                   LISTEN      44868/lwfs          
tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      22065/lwfs

可以看到8000端口已经被轻量级文件系统转发服务lwfs占用

2、netstat -tunlp |grep 端口号,用于查看指定的端口号的进程情况,如查看8000端口的情况,netstat -tunlp |grep 8000

# netstat -tunlp 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      4814/rpcbind        
tcp        0      0 0.0.0.0:5908                0.0.0.0:*                   LISTEN      25492/qemu-kvm      
tcp        0      0 0.0.0.0:6996                0.0.0.0:*                   LISTEN      22065/lwfs          
tcp        0      0 192.168.122.1:53            0.0.0.0:*                   LISTEN      38296/dnsmasq       
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      5278/sshd           
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      5013/cupsd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      5962/master         
tcp        0      0 0.0.0.0:8666                0.0.0.0:*                   LISTEN      44868/lwfs          
tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      22065/lwfs
# netstat -tunlp | grep 8000
tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      22065/lwfs

说明一下几个参数的含义:

-t (tcp) 仅显示tcp相关选项
                                 -u (udp)仅显示udp相关选项
                                 -n 拒绝显示别名,能显示数字的全部转化为数字
                                 -l 仅列出在Listen(监听)的服务状态
                                 -p 显示建立相关链接的程序名