【小白福利—初級DBA入門必看】MySQL常用工具介紹——服務器啓停工具

1 mysqld
mysqld服務器程序默認讀取以下表格中選項文件的[server]、[mysqld]、[mysqld-5.7](帶版本的爲版本專享)三種選項組。此外還可以通過環境變量、命令行指定選項。至於選用何種啓動選項啓動mysqld,這裏不多加描述。
在這裏插入圖片描述
2 mysqld_safe
mysqld_safe是在Unix上啓動 mysqld服務器的推薦方法。mysqld_safe添加了一些安全功能,例如在發生錯誤時重新啓動服務器並將運行時信息記錄到錯誤日誌中。
注意:對一些linux平臺,從rpm或debian包安裝的MySQL包含服務器啓停的systemd支持。此時,安裝不包含mysqld_safe腳本,因爲不必要。參考官網Section 2.5.10, “Managing MySQL Server with systemd”使用systemd管理mysql。
mysqld_safe調用方式爲mysqld_safe [OPTIONS]
選項讀取[mysqld], [server], [mysqld_safe], 爲兼容性還讀取[safe_mysqld]。
mysqld_safe和mysqld有很多共同參數。命令行中mysql_safe不識別的參數將傳遞到mysqld,[mysqld_safe]組中的不識別參數將被忽略。

mysqld_safe嘗試啓動mysqld,要覆蓋該行爲,可以用–mysqld或–mysqld-version選項指定要運行的服務器。也可指定–ledir指定查找服務器的目錄。
mysqld_safe主要用於二進制和源安裝:
服務器和數據庫可以在mysqld_safe的工作目錄中查找,對於二進制,查找工作目錄下的bin和data目錄。對於源安裝,libexec和var。若在mysql安裝目錄執行safe,則該條件滿足。
若在工作目錄中未找到,在絕對路徑中查找。典型的位置是/usr/local/libexec和 /usr/local/var,實際位置取決於編譯設定。若mysql安裝在設定位置,則該條件是滿足的。

若系統有sleep和date程序,且每秒的嘗試啓動超過5,則mysqd_safe將等待1s後纔再次啓動。這是爲了防止cpu使用率過高。

若使用safe啓動mysqld,兩者的錯誤和通知信息都寫到相同的地方:(從mysqld_safe控制mysqld的日誌從5.7.5不推薦):
–log-error=file_name控制錯誤信息到文件;
–syslog寫錯誤信息到syslog(需要logger程序系統支持);
–skip-syslog:不寫錯誤信息到syslog。而是寫到服務器數據目錄的host_name.err或–log-error中。若沒有給出任何一個參數,則默認–skip-syslog
此外,當mysqld_safe寫信息時,通知寫入到指定位置和stdout,錯誤寫入到指定位置和stderr。
下面給出mysqld_safe可以使用的選項:共用即不止safe本身使用該參數,mysqld也使用;mysqld參數將直接以命令行傳遞給mysqld。在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
使用mysqld_safe而不是直接使用mysqld的優勢:
優勢一:
a)啓動時會判斷一個進程號是否存在,如果存在那麼就在錯誤日誌中記錄"A mysqld process already exists"並且退出。
b)如不存在就刪除進程文件,如果刪除不了,那麼就在錯誤日誌中記錄"Fatal error: Can’t remove the pid file"並退出。
優勢二:
mysqld_safe監控mysqld,在mysqld被kill -9或其他原因(如段錯誤(Segmentation fault))結束時,重啓mysqld
優勢三:
可以設定一些系統相關的參數

3 mysql.server

在包含mysql_safe的發行版中一般也有mysql.server腳本,該腳本調用mysql_safe啓動mysqld服務器。其可在支持system V式樣運行目錄的系統上啓停mysqld。macOS Startup Item for MySQL也使用該腳本。
調用:
shell> mysql.server start
shell> mysql.server stop #發送一個信號給服務器
mysql.server將位置切換到mysql安裝位置,然後啓動mysqld_safe。若二進制安裝在非標準位置,必須修改server腳本以使其切換到合適的目錄後調用safe。升級時該文件可能被覆蓋,故此最好先備份。
要自動開機啓停mysqld,必須將啓停命令添加到/etc/rc*中合適的位置:
若使用rpm在linux上安裝,server腳本可能以mysqld或mysql命名安裝在/etc/init.d目錄。
若使用源、二進制,不會自動安裝server腳本,需要在安裝目錄的support-files目錄中找到並複製到/etc/init.d,並賦予執行權限、可選改名。
shell> cp mysql.server /etc/init.d/mysql
shell> chmod +x /etc/init.d/mysql
安裝腳本後,需要開機自啓,在linux上運行
shell> chkconfig --add mysql
在一些linux上,下面命令也是需要的
shell> chkconfig --level 345 mysql on
mysql.server命令行參數只支持start、stop命令,選項文件中讀取[mysqld]和 [mysqld.server],兼容[mysql_server],只支持以下選項。
在這裏插入圖片描述
4 mysqld_multi

mysqld_multi程序旨在管理幾個偵聽不同Unix套接字文件和TCP / IP端口上的 mysqld進程。它可以啓動或停止一個或多個服務器,或報告其當前狀態。注意這些服務器不能共用tcp端口、unix套接字、其他數據要寫入的文件等。
調用方式:shell> mysqld_multi [options] {start|stop|reload|report} [GNR[,GNR] …]
gnr可以是一個整數,也可以是一個整數範圍如10-13,多個gnr之間只能有一個逗號而不能有任何空格。該命令以[mysqldN]選項啓動對應個數的mysqld。N在列出的gnr中。如:
以[mysqld17]啓動一個mysqld:shell> mysqld_multi start 17
分別以[mysql8]、、、[mysql13]共啓動5個–mysqld:shell> mysqld_multi stop 8,10-13
gnr省略時讀取所有[mysqldN]並啓動對應個–mysql服務器。

在這裏插入圖片描述
配置文件設定舉例

[mysqld_multi]
mysqld     = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user       =multi_admin
password   =my_password

[mysqld2]
socket     = /tmp/mysql.sock2
port       = 3307
pid-file   = /usr/local/mysql/data2/hostname.pid2
datadir    = /usr/local/mysql/data2
language   = /usr/local/mysql/share/mysql/english
user       = unix_user1

[mysqld3]
mysqld     = /path/to/mysqld_safe
ledir      = /path/to/mysqld-binary/
mysqladmin = /path/to/mysqladmin
socket     = /tmp/mysql.sock3
port       = 3308
pid-file   = /usr/local/mysql/data3/hostname.pid3
datadir    = /usr/local/mysql/data3
language   = /usr/local/mysql/share/mysql/swedish
user       = unix_user2

[mysqld4]
socket     = /tmp/mysql.sock4
port       = 3309
pid-file   = /usr/local/mysql/data4/hostname.pid4
datadir    = /usr/local/mysql/data4
language   = /usr/local/mysql/share/mysql/estonia
user       = unix_user3

[mysqld6]
socket     = /tmp/mysql.sock6
port       = 3311
pid-file   = /usr/local/mysql/data6/hostname.pid6
datadir    = /usr/local/mysql/data6
language   = /usr/local/mysql/share/mysql/japanese
user       = unix_user4
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章