log-error set to ‘/data/mysql/mysql3308.log‘和Unable to setup unix socket lock file

准备在原有环境上创建一个3308端口的mysql库

初始化成功:

[root@lzl etc]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my3308.cnf  --initialize 
2020-08-03T08:47:40.725150Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-08-03T08:47:41.305460Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-08-03T08:47:41.418164Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-08-03T08:47:41.505518Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: fdd256b7-d565-11ea-b1f7-08002792ac2c.
2020-08-03T08:47:41.507816Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-08-03T08:47:41.508576Z 1 [Note] A temporary password is generated for root@localhost: GglGCtXth5<a

启动mysql时报错:

[root@lzl mysql]# mysqld_safe --defaults-file=/etc/my3308.cnf &
[1] 20242
[root@lzl mysql]# 2020-08-03T09:04:34.772597Z mysqld_safe error: log-error set to '/data/mysql/mysql3308.log', however file don't exists. Create writable for user 'mysql'.

[1]+  Exit 1                  mysqld_safe --defaults-file=/etc/my3308.cnf

报错说mysql3308.log不存在,我看了一下确实不存在。

但是我本以为mysql会自动创建这个errorlog文件

我检查了权限是ok的(因为我3306端口的库也在这下面,所以目录权限不会有问题)
[root@lzl mysql]# ls -lrt
total 124120
-rw-r----- 1 mysql mysql 50331648 Jul 14 15:07 ib_logfile1
-rw-r----- 1 mysql mysql       56 Jul 14 15:07 auto.cnf
drwxr-x--- 2 mysql mysql     4096 Jul 14 15:07 performance_schema
drwxr-x--- 2 mysql mysql     4096 Jul 14 15:07 mysql
drwxr-x--- 2 mysql mysql    12288 Jul 14 15:07 sys
drwxr-x--- 2 mysql mysql     4096 Jul 17 15:45 lzldb
-rw-r----- 1 mysql mysql  1055745 Jul 17 18:52 lzl.log
-rw-r----- 1 mysql mysql      301 Jul 28 15:21 ib_buffer_pool
-rw-r----- 1 mysql mysql        5 Jul 28 16:49 mysqld.pid
-rw-r----- 1 mysql mysql 12582912 Jul 28 16:50 ibtmp1
-rw-r----- 1 mysql mysql 12582912 Jul 28 16:50 ibdata1
-rw-r----- 1 mysql mysql 50331648 Jul 28 16:50 ib_logfile0
-rw-r----- 1 mysql mysql   166215 Aug  3 16:16 mysql.log

没辙,手动touch一个,成功

[mysql@lzl mysql]$ touch mysql3308.log
[mysql@lzl mysql]$ ls -lrt mysql3308.log 
-rw-rw-r-- 1 mysql mysql 0 Aug  3 17:05 mysql3308.log

再次启动mysql服务,没有创建不了log文件的报错了
[root@lzl mysql]# mysqld_safe --defaults-file=/etc/my3308.cnf &
[1] 20433
[root@lzl mysql]# 2020-08-03T09:05:51.227529Z mysqld_safe Logging to '/data/mysql/mysql3308.log'.
2020-08-03T09:05:51.326450Z mysqld_safe Starting mysqld daemon with databases from /data/mysql3308
2020-08-03T09:05:54.179519Z mysqld_safe mysqld from pid file /data/mysql/mysqld3308.pid ended

(看到ended就表示mysqld_safe没起起来,但是mysqld还是要看下进程在不在才知道起来没有)

[1]+  Done                    mysqld_safe --defaults-file=/etc/my3308.cnf
[root@lzl mysql]# 
[root@lzl mysql]# ps -ef|grep 3308
root     20667 19523  0 17:06 pts/2    00:00:00 grep 3308
[root@lzl mysql]# ps -ef|grep 3308
root     20669 19523  0 17:06 pts/2    00:00:00 grep 3308

启动失败

查看errorlog

error-log:
2020-08-03T09:05:52.280069Z 0 [Note] Server socket created on IP: '::'.
2020-08-03T09:05:52.281521Z 0 [ERROR] Another process with pid 8626 is using unix socket file.
2020-08-03T09:05:52.281532Z 0 [ERROR] Unable to setup unix socket lock file.

2020-08-03T09:05:52.281536Z 0 [ERROR] Aborting

报错说明socket file 被其他进程使用

查看我3308的cnf配置
[mysqld]
basedir=/usr/local/mysql
datadir = /data/mysql3308
socket = /tmp/mysql.sock  --这个是我3306使用的

将socket改下

socket = /tmp/mysql3308.sock

再次启动,成功

[root@lzl mysql]# mysqld_safe --defaults-file=/etc/my3308.cnf &
[1] 20709
[root@lzl mysql]# 2020-08-03T09:11:09.769880Z mysqld_safe Logging to '/data/mysql/mysql3308.log'.
2020-08-03T09:11:09.876317Z mysqld_safe Starting mysqld daemon with databases from /data/mysql3308

[root@lzl mysql]# ps -ef|grep 3308
root     20709 19523  0 17:11 pts/2    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3308.cnf
mysql    20907 20709  0 17:11 pts/2    00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my3308.cnf --basedir=/usr/local/mysql --datadir=/data/mysql3308 --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql3308.log --pid-file=/data/mysql/mysqld3308.pid --socket=/tmp/mysql3308.sock --port=3308
root     20959 20936  0 17:11 pts/3    00:00:00 tail -200f mysql3308.log
root     20963 19523  0 17:12 pts/2    00:00:00 grep 3308

总结:

1.error-log文件如果没有创建的话,可以手动touch创建一个,不然启动会失败(前提是路径要正确)

2.不通的mysql服务,各个cnf配置文件中,只有basedir是相同的,datadir,socket,log-error,pid-file的路径文件名都唯一

猜你喜欢

转载自blog.csdn.net/qq_40687433/article/details/107769039
今日推荐