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