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
“啟動(開始)”並且不返回提示。我可以登錄到數據庫。
從您的輸出:
ExecStart=…mysqld … –pid-file=/mysql/mysql_data/mysqld.pid …
…與您要求 systemd 觀看的內容不匹配:
PIDFile= /usr/local/mysql/data/mysqld.pid
糾正這兩個中的一個,你會變得更好。