systemctl status mysqld.service가 활성화되고 있음을 보여줍니다.

systemctl status mysqld.service가 활성화되고 있음을 보여줍니다.

기본 위치 대신 테스트 서버(RHEL 7.4)의 별도 마운트 지점에 Linux 범용 바이너리를 사용하여 MySQL 5.7.25 인스턴스를 구성했습니다.

이 경우 systemd 지원은 수동으로 구성해야 하며, 저는 그렇게 했습니다.

내 질문은 systemctl명령에 관한 것입니다. 을 실행하면 systemctl status mysqld.service출력에 "활성화(시작)"이라고 표시되지만 서비스는 "성공적으로 시작되었습니다"(적어도 경고 로그를 기반으로 생각한 것입니다).메시지를 받지 못했습니다.. 프롬프트를 다시 표시하려면 Ctrl+C를 눌러야 합니다. 다른 서비스의 경우 systemctl 상태가 활성(시작됨)으로 표시됩니다. 또한 systemctl status mysqld.service에는 "시작 후 PID 파일 /usr/local/mysql/data/mysqld.pid를 읽을 수 없습니다(아직?)"가 표시됩니다.

PID는 아래 출력과 같이 정의된 위치에 생성됩니다 ls -l.

이 문제를 어떻게 처리해야 합니까?

출력은 다음과 같습니다 systemctl status mysqld.service.

> [root@localhost system]# systemctl status mysqld.service ●
> mysqld.service - MySQL Server    Loaded: loaded
> (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset:
> disabled)    Active: **activating (start)** since Wed 2019-03-27
> 16:58:13 IST; 5min ago
>      Docs: man:mysqld(7)
>            http://dev.mysql.com/doc/refman/en/using-systemd.html   Process: 9307
> ExecStart=/mysql/mysql_install/mysql-5.7.25-linux-glibc2.12-x86_64/bin/mysqld
> --lc-messages-dir=/mysql/mysql_install/mysql-5.7.25-linux-glibc2.12-x86_64/share
> --daemonize --pid-file=/mysql/mysql_data/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)    CGroup:
> /system.slice/mysqld.service
>            └─9309 /mysql/mysql_install/mysql-5.7.25-linux-glibc2.12-x86_64/bin/mysqld
> --lc-messages-dir=/mysql/mysql_install/mysql-5.7.25-linux-glibc2.12-x86_64/share
> --daemonize --pid-file=/mysql/mysql_data/...
> 
> Mar 27 16:58:13 localhost.localdomain systemd[1]: **Starting MySQL
> Server...** Mar 27 16:58:13 localhost.localdomain systemd[1]: **PID
> file /usr/local/mysql/data/mysqld.pid not readable (yet?) after
> start.** [root@localhost system]#

ls -l다음은 데이터 디렉터리의 출력입니다.

[root@localhost mysql_data]# ls -l
total 122964
-rw-r-----. 1 mysql mysql       56 Mar 27 16:14 auto.cnf
-rw-r-----. 1 mysql mysql      283 Mar 27 16:58 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 Mar 27 16:58 ibdata1
-rw-r-----. 1 mysql mysql 50331648 Mar 27 16:58 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 Mar 27 16:13 ib_logfile1
-rw-r-----. 1 mysql mysql 12582912 Mar 27 16:58 ibtmp1
drwxr-x---. 2 mysql mysql     4096 Mar 27 16:14 mysql
-rw-r-----. 1 mysql mysql    41256 Mar 27 16:58 mysqld.log
-rw-r-----. 1 mysql mysql        5 Mar 27 16:58 mysqld.pid
srwxrwxrwx. 1 mysql mysql        0 Mar 27 16:58 mysql.sock
-rw-------. 1 mysql mysql        5 Mar 27 16:58 mysql.sock.lock
drwxr-x---. 2 mysql mysql     4096 Mar 27 16:14 performance_schema
drwxr-x---. 2 mysql mysql    12288 Mar 27 16:14 sys
[root@localhost mysql_data]# 

/usr/lib/systemd/system/mysqld.service파일은 다음과 같습니다 .

[root@localhost system]# cat mysqld.service
[Unit]
Description=MySQL
Server Documentation=man:mysqld(7)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service] 
User=mysql
Group=mysql

Type=forking

PIDFile=/usr/local/mysql/data/mysqld.pid

# Disable service start and stop timeout logic of systemd for mysqld service. 
TimeoutSec=0

# Start main service
ExecStart=/mysql/mysql_install/mysql-5.7.25-linux-glibc2.12-x86_64/bin/mysqld --lc-messages-dir=/mysql/mysql_install/mysql-5.7.25-linux-glibc2.12-x86_64/share --daemonize --pid-file=/mysql/mysql_data/mysqld.pid $MYSQLD_OPTS 

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

# Sets open_files_limit
LimitNOFILE = infinity

Restart=on-failure

RestartPreventExitStatus=1

PrivateTmp=false
[root@localhost system]#

       경고: 위 파일 내용은 손상 후 수동으로 재구성되었습니다.

다음은 mysqld가 연결할 준비가 되었음을 보여주는 경고 로그 파일입니다.

2019-03-27T11:28:13.334048Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-03-27T11:28:13.335294Z 0 [Note] /mysql/mysql_install/mysql-5.7.25-linux-glibc2.12-x86_64/bin/mysqld (mysqld 5.7.25) starting as process 9309 ...
2019-03-27T11:28:13.337926Z 0 [Note] InnoDB: PUNCH HOLE support available
2019-03-27T11:28:13.337953Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-03-27T11:28:13.337959Z 0 [Note] InnoDB: Uses event mutexes
2019-03-27T11:28:13.337964Z 0 [Note] InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
2019-03-27T11:28:13.337969Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-03-27T11:28:13.337974Z 0 [Note] InnoDB: Using Linux native AIO
2019-03-27T11:28:13.338216Z 0 [Note] InnoDB: Number of pools: 1
2019-03-27T11:28:13.338317Z 0 [Note] InnoDB: Using CPU crc32 instructions
2019-03-27T11:28:13.339746Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2019-03-27T11:28:13.351813Z 0 [Note] InnoDB: Completed initialization of buffer pool
2019-03-27T11:28:13.353463Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2019-03-27T11:28:13.365875Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
2019-03-27T11:28:13.380701Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2019-03-27T11:28:13.380772Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2019-03-27T11:28:13.417750Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2019-03-27T11:28:13.418493Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
2019-03-27T11:28:13.418503Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
2019-03-27T11:28:13.418713Z 0 [Note] InnoDB: Waiting for purge to start
2019-03-27T11:28:13.472045Z 0 [Note] InnoDB: 5.7.25 started; log sequence number 2524297
2019-03-27T11:28:13.472824Z 0 [Note] InnoDB: Loading buffer pool(s) from /mysql/mysql_data/ib_buffer_pool
2019-03-27T11:28:13.473297Z 0 [Note] Plugin 'FEDERATED' is disabled.
2019-03-27T11:28:13.474439Z 0 [Note] InnoDB: Buffer pool(s) load completed at 190327 16:58:13
2019-03-27T11:28:13.478030Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
2019-03-27T11:28:13.478659Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
2019-03-27T11:28:13.478711Z 0 [Note] IPv6 is available.
2019-03-27T11:28:13.478724Z 0 [Note]   - '::' resolves to '::';
2019-03-27T11:28:13.478745Z 0 [Note] Server socket created on IP: '::'.
2019-03-27T11:28:13.489601Z 0 [Note] Event Scheduler: Loaded 0 events
2019-03-27T11:28:13.489791Z 0 [Note] **/mysql/mysql_install/mysql-5.7.25-linux-glibc2.12-x86_64/bin/mysqld: ready for connections.**
Version: '5.7.25'  socket: '/mysql/mysql_data/mysql.sock'  port: 3306  MySQL Community Server (GPL)

동일한 문제로 동일한 절차를 두 번 시도했습니다. "활성화 중(시작)"을 표시 systemctl status mysqld.service하고 프롬프트를 반환하지 않습니다. 데이터베이스에 로그인할 수 있습니다.

답변1

출력에서:

ExecStart=...mysqld...--pid-파일=/mysql/mysql_data/mysqld.pid...

...systemd에 모니터링하도록 요청한 내용과 일치하지 않습니다.

PID 파일=/usr/local/mysql/data/mysqld.pid

이 두 가지 중 하나를 수정하면 훨씬 더 나은 모습을 얻을 수 있습니다.

관련 정보