vlambda博客
学习文章列表

MySQL启动异常案例1

今天部署了一个GreatSQL实例无法启动

[root@localhost ~]# systemctl start mysqld.service
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

看下告警

[root@localhost ~]# journalctl -xe
......
Jan 11 02:24:20 localhost.localdomain mysqld[4702]: 2022-01-11T02:24:20.631473-05:00 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.27) starting as process 4702
Jan 11 02:24:20 localhost.localdomain systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
Jan 11 02:24:20 localhost.localdomain mysqld[4702]: 2022-01-11T02:24:20.631524-05:00 0 [ERROR] [MY-010338] [Server] Can't find error-message file '/usr/local/GreatSQL-8.0.25-15-Linux-glibc2.17-x86_64/s
Jan 11 02:24:20 localhost.localdomain mysqld[4702]: 2022-01-11T02:24:20.632806-05:00 0 [Warning] [MY-010091] [Server] Can't create test file /data/GreatSQL/mysqld_tmp_file_case_insensitive_test.lower-t
Jan 11 02:24:20 localhost.localdomain mysqld[4702]: 2022-01-11T02:24:20.632817-05:00 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /data/GreatSQL/ is case in
Jan 11 02:24:20 localhost.localdomain mysqld[4702]: 2022-01-11T02:24:20.633977-05:00 0 [ERROR] [MY-010187] [Server] Could not open file '
/data/GreatSQL/error.log' for error logging: Permission denied
Jan 11 02:24:20 localhost.localdomain mysqld[4702]: 2022-01-11T02:24:20.634249-05:00 0 [ERROR] [MY-010119] [Server] Aborting
Jan 11 02:24:20 localhost.localdomain mysqld[4702]: 2022-01-11T02:24:20.634346-05:00 0 [Note] [MY-010120] [Server] Binlog end
Jan 11 02:24:20 localhost.localdomain mysqld[4702]: 2022-01-11T02:24:20.634581-05:00 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.27)  MySQL Community Server - GPL.
Jan 11 02:24:20 localhost.localdomain systemd[1]: Failed to start MySQL Server.
-- Subject: Unit mysqld.service has failed
......

发现启动服务配置有问题,可能是之前留下的

[root@localhost ~]# cat /usr/lib/systemd/system/mysqld.service
......
# Needed to create system tables
ExecStartPre=/usr/bin/mysqld_pre_systemd

# Start main service
ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
......

重新配置一下

[root@mgr1 yum.repos.d]# cat /usr/lib/systemd/system/mysqld.service
[Unit]
Description=GreatSQL
After=network.service
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
ExecStart=/usr/local/GreatSQL-8.0.25-15-Linux-glibc2.17-x86_64/bin/mysqld --defaults-file=/etc/my.cnf --daemonize
LimitNOFILE=5000
Restart=on-failure
RestartSec=10
RestartPreventExitStatus=1
PrivateTmp=false

启动

[root@localhost ~]# systemctl daemon-reload
[root@localhost GreatSQL]# netstat -nltp|grep mysqld
tcp6       0      0 :::33060                :::*                    LISTEN      6891/mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      6891/mysqld