1 问题现象
启动 MySQL时报错,如下:
[dave@www.cndba.cn:~]# /data/mysql/3309/app/bin/mysqld_safe --defaults-file=/data/mysql/3309/etc/my.cnf &
[1] 3660
[dave@www.cndba.cn:~]# 2023-12-20T13:51:47.510587Z mysqld_safe Logging to '/data/mysql/3309/logs/mysql.err'.
2023-12-20T13:51:47.548211Z mysqld_safe A mysqld process already exists
[1]+ 退出 1 /data/mysql/3309/app/bin/mysqld_safe --defaults-file=/data/mysql/3309/etc/my.cnf
2 分析过程
在机器没有复用的情况下,出现这个问题是因为之前的进程已经存在,我们这里复用的 2 个实例。
直接复制 /data/mysql/3308
到/data/mysql/3309
, 然后修改了 my.cnf 文件后,重新初始化的 mysql 实例。 正常不会出现这个问题。
初始化的时候已经删了 data 和 binlog 目录。 后来想起来还有 run目录下的 pid 和 sock 没有删除。 从而导致了这个错误。
3 解决方法
删除 pid 和 sock 文件后,重新启动正常。
[dave@www.cndba.cn:/data/mysql/3309/run]# pwd
/data/mysql/3309/run
[dave@www.cndba.cn:/data/mysql/3309/run]# ll
总用量 16
-rw-r----- 1 mysql mysql 6 12月 20 21:26 mysqld.pid
srwxr-xr-x 1 mysql mysql 0 12月 20 21:26 mysqld.sock
-rw------- 1 mysql mysql 6 12月 20 21:26 mysqld.sock.lock
-rwxr-xr-x 1 mysql mysql 4272 12月 20 21:26 switch.sh
[dave@www.cndba.cn:/data/mysql/3309/run]# cat mysqld.pid
21959
[dave@www.cndba.cn:/data/mysql/3309/run]# pwd
/data/mysql/3309/run
[dave@www.cndba.cn:/data/mysql/3309/run]# rm -rf mysqld.pid
[dave@www.cndba.cn:/data/mysql/3309/run]# rm -rf mysqld.sock
[dave@www.cndba.cn:/data/mysql/3309/run]# rm -rf mysqld.sock.lock
[dave@www.cndba.cn:/data/mysql/3309/run]# /data/mysql/3309/app/bin/mysqld_safe --defaults-file=/data/mysql/3309/etc/my.cnf &
[1] 7176
[dave@www.cndba.cn:/data/mysql/3309/run]# 2023-12-20T13:55:30.889897Z mysqld_safe Logging to '/data/mysql/3309/logs/mysql.err'.
2023-12-20T13:55:30.928609Z mysqld_safe Starting mysqld daemon with databases from /data/mysql/3309/data
[dave@www.cndba.cn:/data/mysql/3309/run]# ps -ef|grep 3309
root 7176 29946 0 21:55 pts/3 00:00:00 /bin/sh /data/mysql/3309/app/bin/mysqld_safe --defaults-file=/data/mysql/3309/etc/my.cnf
mysql 8069 7176 1 21:55 pts/3 00:00:00 /data/mysql/3309/app/bin/mysqld --defaults-file=/data/mysql/3309/etc/my.cnf --basedir=/data/mysql/3309/app --datadir=/data/mysql/3309/data --plugin-dir=/data/mysql/3309/app/lib/plugin --user=mysql --log-error=/data/mysql/3309/logs/mysql.err --open-files-limit=65535 --pid-file=/data/mysql/3309/run/mysqld.pid --socket=/data/mysql/3309/run/mysqld.sock --port=3309
root 8406 29946 0 21:55 pts/3 00:00:00 grep --color=auto 3309
[dave@www.cndba.cn:/data/mysql/3309/run]# /data/mysql/3309/app/bin/mysql -uroot -S /data/mysql/3309/run/mysqld.sock
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 2
Server version: 5.7.25-log MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.
mysql>
版权声明:本文为博主原创文章,未经博主允许不得转载。