systemdmysql,编译MySQL5.7加⼊systemd⽀持
native⽀持systemd是MySQL 5.7的新特性之⼀,我们之前在《MySQL 5.7.17 Group Replication部署实践》中编译安装MySQL时并没有开启这个特性。
本篇记录⼀下编译安装MySQL5.7并开启systemd的⼀些注意事项。
123456
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/var/lib/mysql \
-DSYSCONFDIR=/etc \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST= \
-DWITH_SYSTEMD=1通过编译选项-DWITH_SYSTEMD=1开启了systemd
MySQL Source-Configuration Options中描述了SYSTEMD_PID_DIR选项的默认值为/var/run/mysqld。
⽽/var/run(即/run)是⼀个临时⽂件系统,存储系统启动以来的信息。当系统重启时,这个⽬录下的内容会被清楚。
因此我们编译安装的开启了systemd的MySQL,除了提供systemd的Unit⽂件外,还需要提供/usr/lib/tmpfiles.d中的f的配置⽂件。
/usr/lib/tmpfiles.f:
1
d /var/run/mysqld 0755 mysql mysql -
/etc/systemd/system/mysqld.service:
1234567891011121314151617181920212223242526272829303132333435363738394041
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/var/run/mysqld/mysqld.pid
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Needed to create system tables
ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS # Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1mysql需要安装documentation
PrivateTmp=false
参考

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。