systemd mysql,编译MySQL 5.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中的mysql.conf的配置文件。

/usr/lib/tmpfiles.d/mysql.conf:

1

d /var/run/mysqld 0755 mysql mysql -

/etc/systemd/system/mysqld.service:

1234567891011121314151617181920212223242526272829303132333435363738394041

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=https://dev.mysql.com/doc/refman/5.7/en/using-systemd.html

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=1

PrivateTmp=false

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值