【Mysql學習】mysqld_safe:MySQL伺服器啟動指令碼
在Unix和NetWare中推薦使用mysqld_safe來啟動mysqld伺服器。mysqld_safe增加了一些安全特性,例如當出現錯誤時重啟伺服器並向錯誤日誌檔案寫入執行時間資訊。
註釋:為了保持同舊版本MySQL的向後相容性,MySQL二進位制分發版仍然包括safe_mysqld作為mysqld_safe的符號連結。但是,你不應再依賴它,因為再將來將刪掉它。
預設情況下,mysqld_safe嘗試啟動可執行mysqld-max(如果存在),否則啟動mysqld。
該行為的含義是:
·在Linux中,MySQL-Max RPM依賴該mysqld_safe的行為。RPM安裝可執行mysqld-max,使mysqld_safe從該點起自動使用可執行命令。
·如果你安裝包括mysqld-max伺服器的MySQL-Max分發版,後面升級到非-Max的MySQL版本,mysqld_safe仍然試圖執行舊的 mysqld-max伺服器。升級時,你應手動刪除舊的mysqld-max伺服器以確保mysqld_safe執行新的mysqld伺服器。
要想越過預設行為並顯式指定你想要執行哪個伺服器,為mysqld_safe指定–mysqld或–mysqld-version選項。
mysqld_safe的許多選項與mysqld的相同的。所有在命令列中為mysqld_safe指定的選項被傳遞給mysqld。如果你想要使用mysqld不支援的mysqld_safe的選項,不要在命令列中指定。相反,在選項檔案的[mysqld_safe]組內將它們列出來。
mysqld_safe從選項檔案的[mysqld]、[server]和[mysqld_safe]部分讀取所有選項。為了保證向後相容性,它還讀取 [safe_mysqld]部分,儘管在MySQL 5.1安裝中你應將這部分重新命名為[mysqld_safe]。
mysqld_safe支援下面的選項:
·–help
顯示幫助訊息並退出。
·–autoclose
(只在NetWare中)在NetWare中,mysqld_safe可以保持視窗。當你關掉mysqld_safe NLM時,視窗不按預設設定消失。相反,它提示使用者輸入:
**
如果你想讓NetWare自動關閉視窗,在mysqld_safe中使用–autoclose選項。
· –basedir=path
MySQL安裝目錄的路徑。
·–core-file-size=size
mysqld能夠建立的核心檔案的大小。選項值傳遞給ulimit -c。
·–datadir=path
資料目錄的路徑。
·–defaults-extra-file=path
除了通用選項檔案所讀取的選項檔名。如果給出,必須首選該選項。
·–defaults-file=path
讀取的代替通用選項檔案的選項檔名。如果給出,必須首選該選項。
·–ledir=path
包含mysqld程式的目錄的路徑。使用該選項來顯式表示伺服器位置。
·–log-error=path
將錯誤日誌寫入給定的檔案。參見5.11.1節,“錯誤日誌”。
·–mysqld=prog_name
想要啟動的伺服器程式名(在ledir目錄)。如果你使用MySQL二進位制分發版但有二進位制分發版之外的資料目錄需要該選項。
· –mysqld-version =suffix
該選項類似–mysqld選項,但你只指定伺服器程式名的字尾。基本名假定為mysqld。例如,如果你使用–mysqld-version =max,mysqld_safe啟動ledir目錄中的mysqld-max程式。如果–mysqld-version的引數為空,mysqld_safe使用目錄中的mysqld。
·–nice=priority
使用nice程式根據給定值來設定伺服器的排程優先順序。
·–no-defaults
不要讀任何選項檔案。如果給出,必須首選該選項。
·–open-files-limit=count
mysqld能夠開啟的檔案的數量。選項值傳遞給 ulimit -n。請注意你需要用root啟動mysqld_safe來保證正確工作!
·–pid-file=path
程式ID檔案的路徑。
·–port=port_num
用來幀聽TCP/IP連線的埠號。埠號必須為1024或更大值,除非MySQL以root系統使用者執行。
·–skip-character-set-client-handshake
忽略客戶端傳送的字符集資訊,使用伺服器的預設字符集。(選擇該選項,MySQL的動作與MySQL 4.0相同)。
·–socket=path
用於本地連線的Unix套接字檔案。
·–timezone=zone
為給定的選項值設定TZ時區環境變數。從作業系統文件查閱合法的時區規定格式。
·–user={user_name | user_id}
以使用者名稱user_name或數字使用者ID user_id執行mysqld伺服器。(本文中的“使用者”指系統登入賬戶,而不是 授權表中的MySQL使用者)。
執行mysqld_safe時,必須先給出–defaults-file或–defaults-extra-option,或不使用選項檔案。例如,該命令將不使用選項檔案:
mysqld_safe –port=port_num –defaults-file=file_name
相反,使用下面的命令:
mysqld_safe –defaults-file=file_name –port=port_num
一般情況mysqld_safe指令碼可以啟動從原始碼或二進位制MySQL分發版安裝的伺服器,即使這些分發版將伺服器安裝到稍微不同的位置。
mysqld_safe期望下面的其中一個條件是真的:
·可以根據呼叫mysqld_safe的目錄找到伺服器和資料庫。在二進位制分發版中,mysqld_safe看上去在bin和data目錄的工作目錄下。對於原始碼分發版,為libexec和var目錄。如果你從MySQL安裝目錄執行mysqld_safe應滿足該條件(例如,二進位制分發版為/usr/local/mysql)。
·如果不能根據工作目錄找到伺服器和資料庫,mysqld_safe試圖通過絕對路徑對它們定位。典型位置為/usr/local/libexec和/usr/local/var。實際位置由構建分發版時配置的值確定如果MySQL安裝到配置時指定的位置,它們應該是正確的。
因為mysqld_safe試圖通過工作目錄找到伺服器和資料庫,只要你從MySQL安裝目錄執行mysqld_safe,可以將MySQL二進位制分發版安裝到其它位置:
shell> cd mysql_installation_directory
shell> bin/mysqld_safe &
如果mysqld_safe失敗,即使從MySQL安裝目錄呼叫仍然失敗,你可以指定–ledir和–datadir選項來指示伺服器和資料庫在你的系統中的安裝目錄。
一般情況,你不應編輯mysqld_safe指令碼。相反,應使用命令列選項或my.cnf選項檔案的[mysqld_safe]部分的選項來配置mysqld_safe。一般不需要編輯mysqld_safe來正確啟動伺服器。但是,如果你編輯,將來升級MySQL後會覆蓋你修改的mysqld_safe版本,因此你應對你修改的版本進行備份以便將來重灌。
在NetWare中,mysqld_safe是一個NetWare Loadable Module (NLM),從原Unix shell指令碼移植。它執行:
1. 檢查系統和選項。
2. 檢查MyISAM表。
3. 保持MySQL伺服器視窗。
4. 啟動並監視mysqld,如果因錯誤終止則重啟。
5. 將mysqld的錯誤訊息傳送到資料目錄中的host_name.err 檔案。
6. 將mysqld_safe的螢幕輸出傳送到資料目錄中的host_name.safe檔案。
相關文章
- 【Mysql 學習】mysqld_safe:MySQL伺服器啟動指令碼MySql伺服器指令碼
- 【MySQL】mysql啟動報錯./mysqld_safe: my_print_defaults: not foundMySql
- MYSQL Slave開機啟動指令碼MySql指令碼
- MySQL 多例項啟動和關閉指令碼MySql指令碼
- mysql 伺服器巡檢指令碼MySql伺服器指令碼
- 指令碼監控MySQL伺服器指令碼MySql伺服器
- 【MySQL】mysql啟動常見報錯 mysqld_safe mysqld from pid file hostname.pid endedMySql
- MySQL自動備份指令碼MySql指令碼
- MySQL指令碼MySql指令碼
- 啟動mysql伺服器出錯MySql伺服器
- nacos啟動,MySQL無密碼啟動MySql密碼
- Centos學習筆記14 – java程式啟動指令碼CentOS筆記Java指令碼
- mysql 修改data目錄後 無法使用指令碼啟動薦MySql指令碼
- 【Mysql學習】SQL伺服器模式MySql伺服器模式
- 【Mysql 學習】SQL伺服器模式MySql伺服器模式
- MySQL 常用指令碼MySql指令碼
- 自動化指令碼安裝mysql shell指令碼範例指令碼MySql
- Mysql 學習篇之原始碼安裝mysqlMySql原始碼
- mysql學習3:第二章:mysql安裝啟動和關閉——mysql5.6安裝MySql
- mysql學習4:第二章:mysql安裝啟動和關閉——mysql5.7安裝MySql
- 自動配置php、mysql、nginx的指令碼PHPMySqlNginx指令碼
- 動態更新資料庫指令碼——Mysql資料庫指令碼MySql
- MySQL8.0的自動部署指令碼MySql指令碼
- Linux下啟動偽分散式HADOOP && MySQL命令及指令碼Linux分散式HadoopMySql指令碼
- mysql 啟動MySql
- Starting MySQL * Couldn't find MySQL server (/usr/bin/mysqld_safe)MySqlServer
- Mysql 5.7 Gtid內部學習(六) Mysql啟動初始化Gtid模組MySql
- mysql關於mysqld_safe的總結MySql
- mysql巡檢指令碼MySql指令碼
- Mysql replication check指令碼MySql指令碼
- mysql監控指令碼MySql指令碼
- mysql時間指令碼MySql指令碼
- mysql kill程式指令碼MySql指令碼
- mysql備份指令碼MySql指令碼
- MySQL service啟動指令碼淺析(r12筆記第59天)MySql指令碼筆記
- MySQL簡介與啟動MySqlMySql
- mysql學習5:第二章:mysql安裝啟動和關閉——密碼重置及許可權管理MySql密碼
- 學習-【前端】-伺服器指令碼書寫前端伺服器指令碼