centos7.5 設定Mysql開機自啟動
兩種方法:
方法1:針對contos7之前,在 /etc/rc.d/rc.local檔案中設定非系統服務開機自啟動!注意contos7之後也是可以使用的,但是建議使用方法2,並且/etc/rc.d/rc.local檔案中會有提示建議你新增systemd服務!
檔案會在linux系統各項服務都啟動完畢後再被執行,可以將指令碼路徑加到該檔案裡
/etc/rc.d/rc.local
注意:
/etc/rc.d/rc.local 用於新增開機啟動命令
/etc/rc.local是/etc/rc.d/rc.local的軟連線
1.確保許可權
chmod +x /etc/rc.d/rc.local
2.建立mysql啟動指令碼
[root@B-JS25-BASE79-00 ~]# cat start_mysql.sh
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
給該指令碼許可權
chmod +x start_mysql.sh
3.編輯/etc/rc.d/rc.local檔案,在末尾新增前面定義的啟動指令碼
vi /etc/rc.d/rc.local
/root/start_mysql.sh
4.最後重啟,試試效果
reboot
5.待伺服器啟動後,檢視mysql程式,如下所示,發現資料庫自啟動了!
[root@B-JS25-BASE79-00 ~]# ps -ef | grep mysql
root 1073 1 0 15:49 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf
mysql 2375 1073 7 15:50 ? 00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/home/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=B-JS25-BASE79-00.err --open-files-limit=65535 --pid-file=/home/data/mysql/mysql.pid --socket=/tmp/mysql.sock --port=3306
注意:如果是centos7之後,/etc/rc.d/rc.local檔案中有提示,建議你新增systemd伺服器,
[root@bogon rc.d]# cat /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
方法2:如果是系統服務,那麼可以使用systemctl enable mysqld.service來設定開機自啟動!
1)如果是使用yum安裝,那麼就會自動新增mysql成系統服務,那麼可以直接systemctl enable mysqld.service設定開機自啟動:
啟動mysql服務
systemctl start mysqld.service
停止mysql服務
systemctl stop mysqld.service
重啟mysql服務
systemctl restart mysqld.service
檢視mysql服務當前狀態
systemctl status mysqld.service
設定mysql服務開機自啟動!!!
systemctl enable mysqld.service
停止mysql服務開機自啟動
systemctl disable mysqld.service
2)如果不是yum安裝,就需要先把非系統服務新增systemctl服務中,這樣就成為了linux系統服務了,然後就可以使用systemctl enable mysqld.service設定開機自啟動:
1、首先新增到linux的
systemd
服務:如下三個目錄均可以
/lib/system/system/
使用CentOS官方提供的軟體安裝後,預設的啟動指令碼配置檔案都放在這裡,這裡的資料儘量不要修改。要修改時,請到 /etc/system/system低下修改較佳。
/etc/system/system/ -----tidb的服務都是新增到這個目錄下,
管理員依據主機系統的需求所建立的執行指令碼,其實這個目錄有點像之前的/etc/rc.d/rc5.d/Sxx 之類的功能。執行優先順序要比/run/system/system/ 高。
/run/system/system/
系統執行過程中所產生的服務指令碼。
定義一個測試服務名字為:mysql3307.service的服務,新增到/etc/system/system/目錄中,這樣就新增到linux systemd服務了!
[root@java system]# pwd
/etc/systemd/system
[root@java system]#cat mysql3307.service
[Unit]
Description=MySQL Server
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
ExecStart=/data/mysql57/bin/mysqld --defaults-file=/etc/my3307.cnf --daemonize
#修改成你自己的啟動命令!
LimitNOFILE = 65535
Restart=always
RestartSec=3
RestartPreventExitStatus=1
PrivateTmp=false
此服務的其它的一些操作命令;
systemctl enable mysql3307.service ---設定開啟自啟動
systemctl start mysql3307.service ----開啟此服務
systemctl stop mysql3307.service -----關閉此服務
systemctl status mysql3307.service -----檢視服務狀態
注意 ; (1)/data/mysql57/bin/mysqld 路徑為 可執行文件所在路徑;/etc/my3307.cnf 配置未見;
(2)Restart=on-failure 是決定 服務Failure 時,是否自動拉起;RestartSec=3 嘗試拉起間隔;
Restart=always決定服務都自動拉起,tidb就是使用的always