linux下啟動(dòng)或者關(guān)閉MySQL數(shù)據(jù)庫的多種方式
前言
今天我非常榮幸能夠站在這里,與大家分享一個(gè)非常重要的話題:如何啟動(dòng)和關(guān)閉MySQL數(shù)據(jù)庫的多種方式。MySQL作為一款廣泛使用的開源關(guān)系數(shù)據(jù)庫管理系統(tǒng),已經(jīng)成為了許多企業(yè)和個(gè)人在存儲(chǔ)和管理數(shù)據(jù)時(shí)的首選工具。然而,正確地啟動(dòng)和關(guān)閉MySQL對(duì)于確保系統(tǒng)的穩(wěn)定運(yùn)行、數(shù)據(jù)的完整性和安全性至關(guān)重要。
啟動(dòng)和關(guān)閉MySQL看似簡單,但實(shí)際上涉及到許多細(xì)節(jié)和注意事項(xiàng)。不同的操作系統(tǒng)、配置和環(huán)境可能需要采用不同的方法來啟動(dòng)和關(guān)閉MySQL服務(wù)。因此,了解并掌握多種方法對(duì)于數(shù)據(jù)庫管理員和開發(fā)者來說是至關(guān)重要的。
在這篇文章中,我們將深入探討多種啟動(dòng)和關(guān)閉MySQL的方法,并解釋每種方法的適用場景和注意事項(xiàng)。通過這些方法的學(xué)習(xí)和實(shí)踐,我們不僅能夠更好地管理和維護(hù)數(shù)據(jù)庫,還能夠提高工作效率和減少潛在的風(fēng)險(xiǎn)。
1、mysql啟動(dòng)的幾種方式
mysql不同與oracle變量定義在配置文件bash_profile中。mysql只能通過ps -ef | grep mysql確定參數(shù)文件的位置,沒有確定參數(shù)文件的參數(shù)。所以記錄ps -ef | grep mysql信息尤為重要。
數(shù)據(jù)庫啟動(dòng)時(shí)會(huì)先讀取參數(shù)文件my.cnf(因?yàn)閙ysql啟動(dòng)時(shí)默認(rèn)找參數(shù)文件的順序/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf(通過mysql --help | grep my.cnf命令查看),以此來確定一些初始化參數(shù)。如果有/etc/my.cnf但沒有內(nèi)容,數(shù)據(jù)庫可以起到并且參數(shù)值取決于mysql指定的默認(rèn)值。
mysql啟動(dòng)會(huì)用到兩個(gè)程序和一個(gè)函數(shù),函數(shù)my_print_defaults;程序mysqld_safe、parse_server_arguments。
my_print_defaults讀取my.cnf參數(shù)文件,輸出參數(shù)傳遞給parse_server_arguments。parse_server_arguments改函數(shù)處理my_print_defaults傳遞過來的參數(shù)賦值給--basedir、--datadir、--pid-file、--server-startup-timeout。
方式一:mysqld_safe命令(在多實(shí)例環(huán)境中,指定對(duì)應(yīng)實(shí)例參數(shù)文件就可以啟動(dòng)某個(gè)實(shí)例)
mysqld_safe是一個(gè)shell腳本,默認(rèn)去調(diào)用mysqld服務(wù)器程序,進(jìn)行服務(wù)器的監(jiān)聽。
如果mysqld進(jìn)程宕了,mysqld_safe會(huì)自動(dòng)啟動(dòng)mysqld,數(shù)據(jù)庫啟動(dòng);如果mysqld_safe宕了,mysqld還存活,數(shù)據(jù)庫就沒問題;如果mysqld_safe和mysqld都宕了,數(shù)據(jù)庫也就宕機(jī)。
mysqld_safe --help選項(xiàng):
參數(shù)選項(xiàng) 描述 --defaults-file=FILE 指定參數(shù)文件
[root@mysql2 bin]# nohup mysqld_safe --defaults-file=/mysql/data/3306/my.cnf & ---mysqld_safe帶動(dòng)mysqld數(shù)據(jù)庫后臺(tái)進(jìn)程
方式二:mysqld命令(在多實(shí)例環(huán)境中,指定對(duì)應(yīng)實(shí)例參數(shù)文件就可以啟動(dòng)某個(gè)實(shí)例)
mysqld --verbose --help選項(xiàng):
參數(shù)選項(xiàng) 描述 --defaults-file=# 指定參數(shù)文件 -u, --user=name 指定操作系統(tǒng)的用戶名,指定為mysql用戶。
[root@mysql2 bin]# nohup mysqld --defaults-file=/mysql/data/3306/my.cnf --user=mysql & ---mysqld數(shù)據(jù)庫后臺(tái)進(jìn)程,只是顯示了指定的參數(shù),為了方便管理使用mysqld_safe或者指定多個(gè)參數(shù)
方式三:寫入linux服務(wù)啟動(dòng)(service)
通過將mysql.server腳本添加到系統(tǒng)服務(wù)器中使用service mysqld start,mysqld為自定義命名的,所以以命名的為準(zhǔn)。
編輯mysql.server腳本,并將mysql.server腳本添加到linux服務(wù)
[root@mysql2 bin]# cd /mysql/app/mysql/support-files [root@mysql2 bin]# cp mysql.server mysql.server.bk [root@mysql2 bin]# vi mysql.server ---作用就是為了方便啟動(dòng)和關(guān)閉mysql服務(wù),這個(gè)腳本中調(diào)用mysqld_safe來啟動(dòng)mysqld。以下是mysql.server需要修改的內(nèi)容
修改一:目錄和數(shù)據(jù)存儲(chǔ)目錄
修改二:相關(guān)目錄和數(shù)據(jù)存儲(chǔ)目錄
修改三:mysqld_safe為啟動(dòng)mysql的命令,在后面加上--defaults-file指定指定的參數(shù)文件。因?yàn)閙ysql啟動(dòng)時(shí)默認(rèn)找參數(shù)文件的順序/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf(通過mysql --help | grep my.cnf命令查看)
[root@mysql2 bin]# cp /mysql/app/mysql/support-files/mysql.server /etc/init.d/mysqld ---將啟動(dòng)腳本放到系統(tǒng)服務(wù)管理中并命名為mysqld [root@mysql2 bin]# chmod 755 /etc/init.d/mysqld [root@mysql2 bin]# chkconfig --add mysqld ---將mysqld加入到服務(wù)中 [root@mysql2 bin]# service mysqld start [root@mysql2 bin]# chkconfig mysqld on ---開機(jī)啟動(dòng)mysqld服務(wù) [root@mysql2 bin]# service mysqld status
service mysqld status查詢服務(wù)的PID,并且通過ps -ef | grep mysql查看MySQL數(shù)據(jù)庫的PID是否一致
2、mysql關(guān)閉的幾種方式
mysql不同與oracle變量定義在配置文件bash_profile中。mysql只能通過ps -ef | grep mysql確定參數(shù)文件的位置,沒有確定參數(shù)文件的參數(shù)。所以記錄ps -ef | grep mysql信息尤為重要。
方式一:mysqladmin命令(在多實(shí)例環(huán)境中,指定對(duì)應(yīng)實(shí)例socket文件就可以關(guān)閉某個(gè)實(shí)例)
mysqladmin --help選項(xiàng):
參數(shù)選項(xiàng) 描述 -u, --user=name 用于登錄的用戶名(如果不是當(dāng)前用戶) -S, --socket=name 指定用于連接的套接字文件的名稱(socket套接字就是ip+端口,包括本地ip:port, 遠(yuǎn)程ip:port)。如果系統(tǒng)上有多個(gè)實(shí)例,通過連接socket可以連接相應(yīng)的實(shí)例,socket可以用戶連接到那個(gè)實(shí)例 -p, --password[=name] 連接到服務(wù)器時(shí)使用的密碼
[root@mysql2 bin]# mysqladmin -uroot -p shutdown -S /mysql/data/3306/mysql.sock
方式二:shutdown命令(8.0版本新增。8.0只新增關(guān)閉和重啟命令,沒有啟動(dòng)的命令)
此語句將停止MySQL服務(wù)器。它需要SHUTDOWN特權(quán)。
SHUTDOWN控件提供具有相同功能的sql級(jí)接口。mysqladmin停工命令或mysql_shutdown()C API函數(shù)成功SHUTDOWN序列包括檢查特權(quán)、驗(yàn)證參數(shù)和向客戶端發(fā)送OK數(shù)據(jù)包。然后服務(wù)器就關(guān)閉了。
[root@mysql2 bin]# mysql -uroot -p123456 mysql> shutdown; [root@mysql2 bin]# tail -100f itpuxdb-error.err ---查看錯(cuò)誤日志,觀察關(guān)閉信息
方式三:寫入linux服務(wù)關(guān)閉(service)
通過將mysql.server腳本添加到系統(tǒng)服務(wù)器中,添加過程參考查看上面的方式三:寫入linux服務(wù)啟動(dòng),使用service mysqld stop,mysqld為自定義命名的,所以以命名的為準(zhǔn)。
3、mysql重啟方式(8.0版本新增)
mysql8.0和5.7一樣只能通過ps -ef | grep mysql確定參數(shù)文件的位置,沒有確定參數(shù)文件的參數(shù)。所以記錄ps -ef | grep mysql信息尤為重要。
方式一:restart命令
Mysql在8.0版本中引入restart命令,實(shí)現(xiàn)遠(yuǎn)程重啟mysqld進(jìn)程的功能。能夠在不登錄操做系統(tǒng)的狀況下,執(zhí)行重啟操做,對(duì)于運(yùn)管上來講也是一個(gè)很棒的功能。mysql執(zhí)行restart命令須要數(shù)據(jù)庫帳號(hào)具有SHUTDOWN權(quán)限,而且mysqld必須通過mysqld_safe守護(hù)進(jìn)程下啟動(dòng)的才能執(zhí)行restart命令。
restart命令的原理是mysqld_safe檢測mysqld退出時(shí)的返回值,若是16,則進(jìn)行重啟。bash shell以下。
[root@mysql2 bin]# mysql -uroot -p123456 mysql> restart; [root@mysql2 bin]# tail -100f itpuxdb-error.err ---查看錯(cuò)誤日志,觀察重啟信息
注意:只有通過mysqld_safe啟動(dòng)mysqld這個(gè)進(jìn)程才能使用restart命令進(jìn)行重啟;如果只有mysqld進(jìn)程,沒有通過mysqld_safe帶動(dòng),則不能使用restart命令,報(bào)ERROR 3707 (HY000): Restart server failed (mysqld is not managed by supervisor process).
總結(jié)
到此這篇關(guān)于linux下啟動(dòng)或者關(guān)閉MySQL數(shù)據(jù)庫的多種方式的文章就介紹到這了,更多相關(guān)linux啟動(dòng)或關(guān)閉MySQL數(shù)據(jù)庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL動(dòng)態(tài)SQL拼接實(shí)例詳解
動(dòng)態(tài)SQL呢?首先是SQL語句,是根據(jù)條件來拼接SQL,下面這篇文章主要給大家介紹了關(guān)于MySQL動(dòng)態(tài)SQL拼接的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12MySQL數(shù)據(jù)庫表的合并與分區(qū)實(shí)現(xiàn)介紹
今天我們來聊聊處理大數(shù)據(jù)時(shí)Mysql的存儲(chǔ)優(yōu)化。當(dāng)數(shù)據(jù)達(dá)到一定量時(shí),一般的存儲(chǔ)方式就無法解決高并發(fā)問題了。最直接的MySQL優(yōu)化就是分區(qū)分表,以下是我個(gè)人對(duì)分區(qū)分表的筆記2022-09-09MySQL數(shù)據(jù)表基本操作實(shí)例詳解
這篇文章主要介紹了MySQL數(shù)據(jù)表基本操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了MySQL針對(duì)數(shù)據(jù)表的基本創(chuàng)建、表結(jié)構(gòu)查看、修改、刪除等相關(guān)操作技巧,需要的朋友可以參考下2018-06-06