手工编译安装mysql5.7.10折腾大半天,报
Starting MySQL...The server quit without updating PID file (/opt/mysql1/data/dev-132.pid)
解决办法,是修改my.cnf, 把以下参数配上就ok了:
basedir =/opt/mysql1
datadir =/opt/mysql1/data
log-error=/opt/mysql1/mysql1.err
pid-file=/opt/mysql1/data/dev-132.pid
port =3306
socket=/opt/mysql1/mysql1.sock
未指定 pid 文件时,pid 文件默认名为
主机名.pid,存放的路径在默认 MySQL 的数据目录。通过 mysqld_safe 启动 MySQL 时,mysqld_safe 会检查 pid 文件,如果 pid 文件不存在,不做处理;如果文件存在,且 pid 已占用则报错 "A mysqld process already exists",如果文件存在,但 pid 未占用,则删除 pid 文件。
查看 MySQL 的源码可以知道,mysqld 启动后会通过 create_pid_file 函数新建 pid 文件,通过 getpid() 获取当前进程 pid 并将 pid 写入 pid 文件。
因此,通过 mysqld_safe 启动时, MySQL pid 文件的作用是:在数据文件是同一份,但端口不同的情况下,防止同一个数据库被启动多次。
查看 MySQL 的源码可以知道,mysqld 启动后会通过 create_pid_file 函数新建 pid 文件,通过 getpid() 获取当前进程 pid 并将 pid 写入 pid 文件。
因此,通过 mysqld_safe 启动时, MySQL pid 文件的作用是:在数据文件是同一份,但端口不同的情况下,防止同一个数据库被启动多次。