文章目錄
- 一、客戶端與服務端程序
- 二、用戶賬號管理
- 三、MySQL 客戶端命令
- 3.1 命令類型
- ?3.2 使用模式
- ?3.3 常用選項
- ?3.4 提示符定制
- ?四、mysqladmin管理命令?
- ?五、服務端配置?
- 5.1 配置文件??
- ?5.2 Socket 通信配置?
- ?六、最佳實踐總結
免費個人運維知識庫,歡迎您的訂閱:literator_ray.flowus.cn
一、客戶端與服務端程序
類型? | ?工具? | ?功能說明? |
---|---|---|
?客戶端程序? | mysql | 交互式 CLI 工具,支持 SQL 執行與數據庫管理 |
mysqldump | 備份工具,將數據轉換為 INSERT 語句保存到文件 | |
mysqladmin | 基于 MySQL 協議管理 mysqld 服務(啟停/狀態檢查等) | |
mysqlimport | 數據導入工具 | |
myisamchk | MyISAM 表檢查工具 | |
myisampack | MyISAM 表打包工具(生成只讀文件) | |
?服務端程序? | mysqld_safe | 安全啟動腳本(推薦生產使用) |
mysqld | 核心數據庫服務進程 | |
mysqld_multi | 多實例管理工具(例:mysqld_multi --example ) |
二、用戶賬號管理
賬號格式?:'USERNAME'@'HOST'
- HOST 通配規則?:
% 匹配任意長度字符(如 `172.16.%.%`)
_ 匹配單個字符
172.16.0.0/255.255.0.0 指定 IP 段
三、MySQL 客戶端命令
3.1 命令類型
?類別? | ?示例? | ?說明? |
---|---|---|
?客戶端命令? | \h (help) | 本地執行,無需分號結尾 |
\u (use) | 切換數據庫 | |
\s (status) | 查看服務狀態 | |
\! (system) | 執行系統命令 | |
?服務端命令? | SELECT VERSION(); | 通過協議發送到服務端,需分號結尾 |
?3.2 使用模式
-
?交互模式?:命令行直接操作
-
?腳本模式?:
mysql -uUSER -pPASS < /path/script.sql # 文件輸入
echo "SQL" | mysql -uUSER -pPASS # 管道輸入
mysql> SOURCE /path/script.sql; # 會話內執行
?3.3 常用選項
mysql [OPTIONS] [database] -A, --no-auto-rehash # 禁用自動補全 -u, --user=用戶名 # 默認為 root -h, --host=主機名 # 默認為 localhost -p, --password # 密碼提示(推薦) -P, --port=端口 # 默認 3306 -S, --socket=sock文件 # 指定連接文件路徑 -D, --database=庫名 # 指定默認數據庫 -e, "SQL" # 執行單條 SQL 命令 -V, --version # 顯示版本信息
?3.4 提示符定制
- ?臨時修改?:
mysql --prompt="\r:\\m\\s\\u@\h) [\\d]>\_"
- ?永久生效?:
# /etc/my.cnf.d/mysql-clients.cnf
[mysql]
prompt="\r:\\m:\\s\\u@\h) [\\d]>\_"
?四、mysqladmin管理命令?
mysqladmin [OPTIONS] command ping # 檢查服務狀態(返回 "mysql is alive") shutdown # 停止服務(注意:無法啟動服務) create <dbname> # 創建數據庫 drop <dbname> # 刪除數據庫(需確認) password '新密碼' # 修改用戶密碼 flush-logs # 滾動二進制日志(生成新 binlog 文件)
?示例?:
mysqladmin -uroot -p123456 create testdb
mysqladmin -uroot -p123456 password '111111'
?五、服務端配置?
5.1 配置文件??
核心路徑?:
/etc/my.cnf # 全局配置
/etc/my.cnf.d/my.cnf # 擴展配置
~/.my.cnf # 用戶級配置
配置塊語法?:
[mysqld] # 服務端參數
[client] # 客戶端參數
parameter = value # 示例:skip-networking=1
?注意?:
ON/OFF
、1/0
等價,不區分大小寫。
?5.2 Socket 通信配置?
?類型? | ?路徑? | ?通信范圍? | ?默認行為? |
---|---|---|---|
?IP Socket? | 0.0.0.0:3306 | 支持遠程通信 | 綁定全部接口 IP |
?Unix Socket | /var/lib/mysql/mysql.sock | 僅本機通信 | host=localhost 時自動啟用 |
- ?禁用網絡監聽?(僅限本地):
[mysqld]
skip-networking=1
bind_address=127.0.0.1
?六、最佳實踐總結
-
?安全連接?:
-
生產環境建議禁用遠程 IP 監聽(配置
skip-networking
)。 -
使用 Unix Socket 提升本地通信效率。
-
-
?權限管理?:
- 用戶賬號嚴格限制
HOST
范圍(如'user'@'172.16.%.%'
)。
- 用戶賬號嚴格限制
-
?運維操作?:
-
備份用
mysqldump
,服務管理用mysqladmin
。 -
日志維護定期執行
flush-logs
。
-
-
?配置維護?:
-
全局配置集中存放于
/etc/my.cnf.d/
。 -
敏感參數(如密碼)避免明文存儲。
-
請不要以此視為定論,這只是我的個人經驗