使用しないでくださいmysqld_safe。

使用しないでくださいmysqld_safe。

/etc/systemd/system/mariadb.service で mariadb のサービスを定義しました。

[Unit]
Description=start and stop MySQL(MariaDB) Server
After=syslog.target
After=network.target


[Service]
Type=simple
User=Umariadb
Group=Gmariadb
# Restart=always

# PermissionsStartOnly=true
ExecStart=/usr/local/ServerWeb/mariadb/bin/mysqld_safe --user=mysql --ledir=/usr/local/ServerWeb/mariadb/bin --datadir=/usr/local/ServerWeb/mariadb/data 
# ExecStop=/usr/bin/vgaoff stop

TimeoutSec=300
PrivateTmp=true


[Install]
WantedBy=multi-user.target

後で有効にしました。

systemctl enable mariadb.service

今再起動した後、サービスは起動しない

その後、サービスを再度無効にする必要があります。

手動でやり直してみるとうまくいきました...

sudo /usr/local/ServerWeb/mariadb/bin/mysqld_safe --user=mysql --ledir=/usr/local/ServerWeb/mariadb/bin --datadir=/usr/local/ServerWeb/mariadb/data 

私のサービススクリプトはよく定義されていますか?

何が問題なのか知りたいです。どうやって解決しますか?

編集する:

$ sudo /usr/local/ServerWeb/mariadb/bin/mysqld_safe --user=mysql --ledir=/usr/local/ServerWeb/mariadb/bin --datadir=/usr/local/ServerWeb/mariadb/data
[sudo] password for joseluisbz: 
170308 19:54:07 mysqld_safe Logging to '/usr/local/ServerWeb/mariadb/data/server.err'.

ファイル内部

170308 19:54:07 mysqld_safe Starting mysqld daemon with databases from /usr/local/ServerWeb/mariadb/data
2017-03-08 19:54:07 140588539000704 [Note] /usr/local/ServerWeb/mariadb/bin/mysqld (mysqld 10.1.20-MariaDB) starting as process 4411 ...
2017-03-08 19:54:07 140588539000704 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2017-03-08 19:54:07 140588539000704 [Note] InnoDB: The InnoDB memory heap is disabled
2017-03-08 19:54:07 140588539000704 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-03-08 19:54:07 140588539000704 [Note] InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
2017-03-08 19:54:07 140588539000704 [Note] InnoDB: Compressed tables use zlib 1.2.3
2017-03-08 19:54:07 140588539000704 [Note] InnoDB: Using Linux native AIO
2017-03-08 19:54:07 140588539000704 [Note] InnoDB: Using SSE crc32 instructions
2017-03-08 19:54:07 140588539000704 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2017-03-08 19:54:07 140588539000704 [Note] InnoDB: Completed initialization of buffer pool
2017-03-08 19:54:07 140588539000704 [Note] InnoDB: Highest supported file format is Barracuda.
2017-03-08 19:54:07 140588539000704 [Note] InnoDB: 128 rollback segment(s) are active.
2017-03-08 19:54:07 140588539000704 [Note] InnoDB: Waiting for purge to start
2017-03-08 19:54:07 140588539000704 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.34-79.1 started; log sequence number 1622938
2017-03-08 19:54:07 140588539000704 [Note] Plugin 'FEEDBACK' is disabled.
2017-03-08 19:54:07 140587999135488 [Note] InnoDB: Dumping buffer pool(s) not yet started
2017-03-08 19:54:07 140588539000704 [Note] Server socket created on IP: '::'.
2017-03-08 19:54:08 140588539000704 [Note] /usr/local/ServerWeb/mariadb/bin/mysqld: ready for connections.
Version: '10.1.20-MariaDB'  socket: '/tmp/mysql.sock'  port: 3306  MariaDB Server

ユーザビリティテスト...

[joseluisbz@Vxbox-Lnx ~]$ mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.20-MariaDB MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

Linuxを終了してください...

2017-03-08 19:59:29 140588538443520 [Note] /usr/local/ServerWeb/mariadb/bin/mysqld: Normal shutdown

2017-03-08 19:59:29 140588538443520 [Note] Event Scheduler: Purging the queue. 0 events
2017-03-08 19:59:29 140587982350080 [Note] InnoDB: FTS optimize thread exiting.
2017-03-08 19:59:29 140588538443520 [Note] InnoDB: Starting shutdown...
2017-03-08 19:59:31 140588538443520 [Note] InnoDB: Waiting for page_cleaner to finish flushing of buffer pool
2017-03-08 19:59:32 140588538443520 [Note] InnoDB: Shutdown completed; log sequence number 1622948
2017-03-08 19:59:32 140588538443520 [Note] /usr/local/ServerWeb/mariadb/bin/mysqld: Shutdown complete

170308 19:59:32 mysqld_safe mysqld from pid file /usr/local/ServerWeb/mariadb/data/Vxbox-Lnx.pid ended

今はサービスがあります。...

$ sudo systemctl enable mariadb.service
[sudo] password for joseluisbz: 
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /etc/systemd/system/mariadb.service.
[joseluisbz@Vxbox-Lnx ~]$ 

調査する...

[joseluisbz@Vxbox-Lnx ~]$ sudo service mariadb start
[sudo] password for joseluisbz: 
Redirecting to /bin/systemctl start  mariadb.service
[joseluisbz@Vxbox-Lnx ~]$ mysql -u root -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
[joseluisbz@Vxbox-Lnx ~]$ 

状態

$ sudo systemctl status mariadb.service
[sudo] password for joseluisbz: 
● mariadb.service - start and stop MySQL(MariaDB) Server
  Loaded: loaded (/etc/systemd/system/mariadb.service; enabled; vendor preset: disabled)
  Active: failed (Result: exit-code) since Wed 2017-03-08 20:09:47 COT; 5min ago
  Process: 4556 ExecStart=/usr/local/ServerWeb/mariadb/bin/mysqld_safe --user=mysql --ledir=/usr/local/ServerWeb/mariadb/bin --datadir=/usr/local/ServerWeb/mariadb/data (code=exited, status=1/FAILURE)
Main PID: 4556 (code=exited, status=1/FAILURE)

Mar 08 20:09:47 Vxbox-Lnx systemd[1]: Started start and stop MySQL(MariaDB) Server.
Mar 08 20:09:47 Vxbox-Lnx systemd[1]: Starting start and stop MySQL(MariaDB) Server...
Mar 08 20:09:47 Vxbox-Lnx mysqld_safe[4556]: 170308 20:09:47 mysqld_safe Logging to '/usr/local/ServerWeb/mariadb/data/server.err'.
Mar 08 20:09:47 Vxbox-Lnx systemd[1]: mariadb.service: main process exited, code=exited, status=1/FAILURE
Mar 08 20:09:47 Vxbox-Lnx systemd[1]: Unit mariadb.service entered failed state.
Mar 08 20:09:47 Vxbox-Lnx systemd[1]: mariadb.service failed.
[joseluisbz@Vxbox-Lnx ~]$

別のチェック

$ sudo systemctl --failed
[sudo] password for joseluisbz: 
  UNIT            LOAD   ACTIVE SUB    DESCRIPTION
● kdump.service   loaded failed failed Crash recovery kernel arming
● mariadb.service loaded failed failed start and stop MySQL(MariaDB) Server

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.                                                                                                        

2 loaded units listed. Pass --all to see loaded but inactive units, too.                                                                                                         
To show all installed unit files use 'systemctl list-unit-files'.                                                                                                                
[joseluisbz@Vxbox-Lnx ~]$ 

ベストアンサー1

使用しないでくださいmysqld_safe

あらゆる種類の問題に直面することになりますが、最終的に問題は競争相手を構築し、この分野での地位を占めることに関連しています。システム化された恐怖の家Service Managerの下で、Poor Man's Dæmon Supervisor(シェルスクリプトで正しく作成されていません)を実行します。より良い相互運用性のために厳しくチェックし、調整し、準備プロトコルの不一致を処理し、異なる2つの場所で異なる方法で設定する衝突で終わることができますが、実際には意味がありません。代わりにdaemontoolsの世界で学びなさい。mysqld_safe 消えた世紀の転換期から。

数年が過ぎると、システムの世界から抜け出すことができます。 OracleとMySQLの世界とは異なり、MariaDBの世界の1つの違いは、サービスをサービスmysqld_safeとして使用するのではなく、daemontools/runit/s6ユーザーが長年にわたって望んでいた方法でMariaDBを実行する方法に関する良いドキュメントが実際にあることです。管理のためのツールセット。

マリアデータベース付属mariadb.servicesystemd のサービス単位および設定を systemd サービス単位設定にmariadb-service-convert移行するツールです。ユーザーが複数のサーバーを異なるサービスとして実行できるサービス単位テンプレートmy.cnfも付属しています。[email protected]それらを使用してください。

追加読書

おすすめ記事