首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 客戶端與伺服器端程式全景:分類、調用與選項管理

     編輯:MySQL 資料庫相關知識

程式分類總覽

MySQL 發布版包含三大類程式,依功能與通信方式區分:

1. 伺服器端與啟動腳本

程式功能
mysqld核心伺服器守護進程
mysqld_safe監護啟動腳本(自動重啟、日誌導向、core dump 處理)
mysql.serverSysV 風格服務腳本(start|stop|restart|status)
mysqld_multi多實例管理腳本
mysql_install_db初始化資料目錄與系統表(5.7+ 改為 mysqld --initialize)

2. 客戶端程式(與伺服器通信)

程式用途典型場景
mysql互動式/批次 SQL 客戶端日常管理、腳本執行、管道導入
mysqladmin管理操作建庫、關機、刷新權限、狀態檢視、修改密碼
mysqlcheck表維護檢查、修復、分析、優化表
mysqldump邏輯備份結構+資料導出、遷移、跨版本升級
mysqlhotcopy熱備份(MyISAM/ISAM)檔案層級快速複製(已棄用,改用 xtrabackup)
mysqlimport資料導入LOAD DATA INFILE 封裝,支援管道
mysqlshow結構瀏覽快速列出庫、表、欄位、索引
mysqlbinlogBinlog 解析時間點恢復、SQL 審計、異構同步
perror錯誤碼查詢perror 1062 → Duplicate entry

3. 獨立工具(不連接伺服器)

程式功能
myisamchk離線 MyISAM 表檢查/修復/分析/封裝
myisampack生成壓縮唯讀 MyISAM 表
mysqlbinlog亦可離線解析 binlog 檔案
perror系統/ MySQL 錯誤碼說明
replace字串替換工具(檔案或 stdin)

GUI 管理工具(官方歷史套件)

  • MySQL Administrator:伺服器管理、使用者、備份、健康監控
  • MySQL Query Browser:視覺化查詢編輯、EXPLAIN 圖形化、書籤管理
  • MySQL Migration Toolkit:異構資料庫遷移(Oracle、SQL Server、Sybase → MySQL)

※ 以上 GUI 工具已整合至 MySQL Workbench(現代統一 IDE),建議直接使用 Workbench 6.3+ 或 8.0 版本。

程式調用與選項機制

命令列語法


program_name [options] [non-option arguments]
# 選項形式:--long-name 或 -s (短選項)
# 非選項參數:不以 - 開頭,如 mysql 視第一個非選項參數為資料庫名

三種選項來源與優先序(低→高)

  1. 環境變數:如 MYSQL_PWD、MYSQL_TCP_PORT、MYSQL_UNIX_PORT
  2. 選項檔:/etc/my.cnf、/etc/mysql/my.cnf、~/.my.cnf、./.my.cnf(依序讀取,後者覆蓋前者)
  3. 命令列:最高優先級,覆蓋前兩者

選項檔結構範例


[client]
port=3306
socket=/tmp/mysql.sock
default-character-set=utf8mb4

[mysql]
prompt="(\u@\h) [\d]> "
auto-rehash

[mysqld]
user=mysql
datadir=/data/mysql
innodb_buffer_pool_size=2G
max_connections=1000

[mysqldump]
quick
max_allowed_packet=64M

常用通用選項

選項短選項說明
--help-?顯示幫助並退出
--host=name-h伺服器主機名/IP
--user=name-u登入用戶
--password[=pass]-p密碼(不建議明文寫在命令列)
--port=num-PTCP 端口
--socket=path-SUnix socket 路徑
--protocol=nametcp/socket/pipe/memory
--compress-C啟用壓縮協議

設定程式變數

部分選項可透過 --var_name=value 設定內部變數(如 --max_allowed_packet=32M),等同於在選項檔中設定 max_allowed_packet=32M。

實用技巧

  1. 密碼安全:避免 -ppassword 明文,改用 -p 互動輸入、--defaults-extra-file 指定含密碼的獨立 cnf(chmod 600)、或 mysql_config_editor 加密儲存(login-path)
  2. 批次模式:mysql -u root -p db_name < script.sql、mysql --batch --silent -e "SELECT 1"(適合腳本捕獲輸出)
  3. 除錯:mysql --debug=d:t:O,/tmp/mysql.trace 產生追蹤日誌
  4. 版本檢查:mysqladmin version、mysql -V
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved