MySQL 的程式 和 配置檔案
1、MySQL 的 程式
MySQL 是一個軟體系統,包含很多程式部分,如 mysql,mysqld, mysqld_multi 等, 在MySQL 安裝路徑的 bin 資料夾下可檢視。
1.1 服務端程式
1)mysqld
守護程式(即 MySQL 伺服器)。要使用 Client 端程式,mysqld必須先執行
2)mysqld_safe
伺服器啟動指令碼。 mysqld_safe嘗試啟動mysqld
3)mysql.server
伺服器啟動指令碼。它呼叫mysqld_safe來啟動 MySQL 伺服器。該指令碼用於使用System v風格執行目錄的系統,這些目錄包含啟動特定執行級別的系統服務的指令碼。
4)mysqld_multi
伺服器啟動指令碼,可以啟動或停止系統上安裝的多個伺服器
- mysql_upgrade
該程式用於MySQL升級操作後使用。它更新授權表,更新MySQL的新版本,並檢查表的不相容性,並在必要時修復它們
。。。。。
還有其他一些服務端程式,但一般使用 mysqld 就滿足需求了
1.2 客戶端程式
1)mysql
一個命令列工具,可以互動式地輸入SQL語句或以批處理模式從檔案中執行SQL語句。一般就是用此程式連線MySQL 伺服器,進而互動。
2)mysqladmin
執行管理操作的客戶端,例如建立或刪除資料庫、重新載入授權表、將表重新整理到磁碟和重新開啟日誌檔案。Mysqladmin還可以用於從伺服器檢索版本、程序和狀態資訊
3)mysqlcheck
用於表維護的客戶端:檢查、修理、分析和優化表。
4)mysqldump
將MySQL資料庫轉儲為SQL、文字或XML檔案的客戶端
5)mysqlimport
使用LOAD DATA將文字檔案匯入到各自表中的客戶端
6)mysqlpump
將MySQL資料庫轉儲為SQL檔案的客戶端
。。。。。。
1.3 MySQL管理工具程式
。。。。
1.4 MySQL 程式開發工具
。。。。
詳情: https://dev.mysql.com/doc/refman/5.7/en/programs-overview.html
2、配置檔案
除了可以直接在命令列中指定選項,大多數 MySQL 程式可以從配置檔案中讀取啟動選項。
2.1 配置檔案位置 和 讀取順序
在 Windows 系統中,配置檔案讀取順序:
File Name | Purpose |
---|---|
%WINDIR%\my.ini, %WINDIR%\my.cnf | 全域性選項 |
C:\my.ini, C:\my.cnf | 全域性選項 |
BASEDIR\my.ini, BASEDIR\my.cnf | 全域性選項 |
defaults-extra-file | 用--defaults-extra-file指定的檔案(如果有) |
%APPDATA%\MySQL.mylogin.cnf | Login path options (clients only) |
%WINDIR%: Windows 目錄的位置,通常是C:\WINDOWS。
%APPDATA%:Windows 應用程式資料目錄。
BASEDIR :MySQL 基本安裝目錄。
MySQL 從 上述表的順序依次讀取配置檔案,在後面的配置項會覆蓋之前的配置。
在 Unix 和類似 Unix 的系統上讀取的選項檔案
File Name | Purpose |
---|---|
/etc/my.cnf | Global options |
/etc/mysql/my.cnf | Global options |
SYSCONFDIR/my.cnf | Global options |
$MYSQL_HOME/my.cnf | 伺服器特定的選項(僅伺服器) |
defaults-extra-file | 用--defaults-extra-file指定的檔案(如果有) |
~/.my.cnf | User-specific options |
~/.mylogin.cnf | 使用者特定的登入路徑選項(僅限 Client 端) |
~:當前使用者 home 目錄。
SYSCONFDIR :在構建 MySQL 時使用 CMake 的SYSCONFDIR選項指定的目錄,預設情況下,這是位於內建安裝目錄下的etc目錄。
MYSQL_HOME:是一個環境變數,通常設定為 BASEDIR。如果未設定MYSQL_HOME,且使用mysqld_safe程式啟動伺服器,則mysqld_safe將其設定為 MySQL 基本安裝目錄* BASEDIR *
DATADIR :通常是/usr/local/mysql/data,儘管這可能因平臺或安裝方法而異。該值是編譯 MySQL 時內建的資料目錄位置,而不是mysqld啟動時使用--datadir選項指定的位置。在執行時使用--datadir不會影響伺服器在處理任何選項之前在何處查詢其讀取的選項檔案。
.mylogin.cnf,是使用mysql_config_editor建立的,並且加密。
MySQL 從 上述表的順序依次讀取配置檔案,在後面的配置項會覆蓋之前的配置。
2.2 配置檔案語法
1) 配置檔案指定選項的語法和在命令列中指定選項類似,只是在配置檔案中,不需要選項前面的虛線橫槓(--),且一行一個配置項
如 在命令列中,--host=localhost , 則在配置檔案中 host=localhost
2) 註釋, 使用 # 或 ;
# 這是註釋
; 這也是註釋
3)[group]
group 是要為其設定選項的程式或組的名稱。在之後的行中,所有選項設定都將應用於該組,直到定義另一組設定或檔案的末尾。選項組名稱不區分大小寫。
[myslqd]
basedir = /usr/local/mysql
datadir = /var/mysql/data
port = 3306
[client]
port=3306
socket=/tmp/mysql.sock
[mysqldump]
quick
[mysql]
no-auto-rehash
connect_timeout=2
client 是指所有的客戶端程式
在配置檔案中選項 = 前後可以有空格,這是在命令列中不能的。
如果設定項的值有字元‘#’ ,需要使用引號包圍,單引號和雙引號 都可以
可以在選項值中使用轉義序列\b,\t,\n,\r,\和\s來 表示退格符,製表符,換行符,回車符,反斜槓和空格字元。
4)使用 !include / !includedir 匯入配置
在 配置檔案中可以 匯入其他配置檔案的配置
# 匯入配置檔案
!include /home/mydir/myopt.cnf
# 搜尋指定目錄下的 配置檔案,如果有多個配置檔案,讀取順序不能保證一致
!includedir /home/mydir
被匯入的配置檔案和正常的 配置檔案一樣,也需要 [group]
https://dev.mysql.com/doc/refman/5.7/en/option-files.html
客戶端 mysql 的 選項 https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html