亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

ディレクトリ 検索
目錄 前言 1. 一般信息 1.1. 關于本手冊 1.2. 本手冊采用的慣例 1.3. MySQL AB概述 1.4. MySQL數(shù)據(jù)庫管理系統(tǒng)概述 1.4.1. MySQL的歷史 1.4.2. MySQL的的主要特性 1.4.3. MySQL穩(wěn)定性 1.4.4. MySQL表最大能達到多少 1.4.5. 2000年兼容性 1.5. MaxDB數(shù)據(jù)庫管理系統(tǒng)概述 1.5.1. 什么是MaxDB? 1.5.2. MaxDB的歷史 1.5.3. MaxDB的特性 1.5.4. 許可和支持 1.5.5. MaxDB和MySQL之間的特性差異 1.5.6. MaxDB和MySQL之間的協(xié)同性 1.5.7. 與MaxDB有關的鏈接 1.6. MySQL發(fā)展大事記 1.6.1. MySQL 5.1的新特性 1.7. MySQL信息源 1.7.1. MySQL郵件列表 1.7.2. IRC(在線聊天系統(tǒng))上的MySQL社區(qū)支持 1.7.3. MySQL論壇上的MySQL社區(qū)支持 1.8. MySQL標準的兼容性 1.8.1. MySQL遵從的標準是什么 1.8.2. 選擇SQL模式 1.8.3. 在ANSI模式下運行MySQL 1.8.4. MySQL對標準SQL的擴展 1.8.5. MySQL與標準SQL的差別 1.8.6. MySQL處理約束的方式 2. 安裝MySQL 2.1. 一般安裝問題 2.1.1. MySQL支持的操作系統(tǒng) 2.1.2. 選擇要安裝的MySQL分發(fā)版 2.1.3. 怎樣獲得MySQL 2.1.4. 通過MD5校驗和或GnuPG驗證軟件包的完整性 2.1.5. 安裝布局 2.2. 使用二進制分發(fā)版的標準MySQL安裝 2.3. 在Windows上安裝MySQL 2.3.1. Windows系統(tǒng)要求 2.3.2. 選擇安裝軟件包 2.3.3. 用自動安裝器安裝MySQL 2.3.4. 使用MySQL安裝向導 2.3.5. 使用配置向導 2.3.6. 通過非安裝Zip文件安裝MySQL 2.3.7. 提取安裝檔案文件 2.3.8. 創(chuàng)建選項文件 2.3.9. 選擇MySQL服務器類型 2.3.10. 首次啟動服務器 2.3.11. 從Windows命令行啟動MySQL 2.3.12. 以Windows服務方式啟動MySQL 2.3.13. 測試MySQL安裝 2.3.14. 在Windows環(huán)境下對MySQL安裝的故障診斷與排除 2.3.15. 在Windows下升級MySQL 2.3.16. Windows版MySQL同Unix版MySQL對比 2.4. 在Linux下安裝MySQL 2.5.在Mac OS X中安裝MySQL 2.6. 在NetWare中安裝MySQL 2.7. 在其它類Unix系統(tǒng)中安裝MySQL 2.8. 使用源碼分發(fā)版安裝MySQL 2.8.1. 源碼安裝概述 2.8.2. 典型配置選項 2.8.3. 從開發(fā)源碼樹安裝 2.8.4. 處理MySQL編譯問題 2.8.5. MIT-pthreads注意事項 2.8.6. 在Windows下從源碼安裝MySQL 2.8.7. 在Windows下編譯MySQL客戶端 2.9. 安裝后的設置和測試 2.9.1. Windows下安裝后的過程 2.9.2. Unix下安裝后的過程 2.9.3. 使初始MySQL賬戶安全 2.10. 升級MySQL 2.10.1. 從5.0版升級 2.10.2. 升級授權表 2.10.3. 將MySQL數(shù)據(jù)庫拷貝到另一臺機器 2.11. 降級MySQL 2.12. 具體操作系統(tǒng)相關的注意事項 2.12.1. Linux注意事項 2.12.2. Mac OS X注意事項 2.12.3. Solaris注意事項 2.12.4. BSD注意事項 2.12.5. 其它Unix注意事項 2.12.6. OS/2注意事項 2.13. Perl安裝注意事項 2.13.1. 在Unix中安裝Perl 2.13.2. 在Windows下安裝ActiveState Perl 2.13.3. 使用Perl DBI/DBD接口的問題 3. 教程 3.1. 連接與斷開服務器 3.2. 輸入查詢 3.3. 創(chuàng)建并使用數(shù)據(jù)庫 3.3.1. 創(chuàng)建并選擇數(shù)據(jù)庫 3.3.2. 創(chuàng)建表 3.3.3. 將數(shù)據(jù)裝入表中 3.3.4. 從表檢索信息 3.4. 獲得數(shù)據(jù)庫和表的信息 NoName 3.6. 常用查詢的例子 3.6.1. 列的最大值 3.6.2. 擁有某個列的最大值的行 3.6.3. 列的最大值:按組 3.6.4. 擁有某個字段的組間最大值的行 3.6.5. 使用用戶變量 3.6.6. 使用外鍵 3.6.7. 根據(jù)兩個鍵搜索 3.6.8. 根據(jù)天計算訪問量 3.6.9. 使用AUTO_INCREMENT 3.7. 孿生項目的查詢 3.7.1. 查找所有未分發(fā)的孿生項 3.7.2. 顯示孿生對狀態(tài)的表 3.8. 與Apache一起使用MySQL 4. MySQL程序概述 4.1. MySQL程序概述 4.2. 調用MySQL程序 4.3. 指定程序選項 4.3.1. 在命令行上使用選項 4.3.2. 使用選項文件 4.3.3. 用環(huán)境變量指定選項 4.3.4. 使用選項設置程序變量 5. 數(shù)據(jù)庫管理 5.1. MySQL服務器和服務器啟動腳本 5.1.1. 服務器端腳本和實用工具概述 5.1.2. mysqld-max擴展MySQL服務器 5.1.3. mysqld_safe:MySQL服務器啟動腳本 5.1.4. mysql.server:MySQL服務器啟動腳本 5.1.5. mysqld_multi:管理多個MySQL服務器的程序 5.2. mysqlmanager:MySQL實例管理器 5.2.1. 用MySQL實例管理器啟動MySQL服務器 5.2.2. 連接到MySQL實例管理器并創(chuàng)建用戶賬戶 5.2.3. MySQL實例管理器命令行選項 5.2.4. MySQL實例管理器配置文件 5.2.5. MySQL實例管理器識別的命令 5.3. mysqld:MySQL服務器 5.3.1. mysqld命令行選項 5.3.2. SQL服務器模式 5.3.3. 服務器系統(tǒng)變量 5.3.4. 服務器狀態(tài)變量 5.4. mysql_fix_privilege_tables:升級MySQL系統(tǒng)表 5.5. MySQL服務器關機進程 5.6. 一般安全問題 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻擊者面前保持安全 5.6.3. Mysqld安全相關啟動選項 5.6.4. LOAD DATA LOCAL安全問題 5.7. MySQL訪問權限系統(tǒng) 5.7.1. 權限系統(tǒng)的作用 5.7.2. 權限系統(tǒng)工作原理 5.7.3. MySQL提供的權限 5.7.4. 與MySQL服務器連接 5.7.5. 訪問控制 5.7.6. 訪問控制 5.7.7. 權限更改何時生效 5.7.8. 拒絕訪問錯誤的原因 5.7.9. MySQL 4.1中的密碼哈希處理 5.8. MySQL用戶賬戶管理 5.8.1. MySQL用戶名和密碼 5.8.2. 向MySQL增加新用戶賬戶 5.8.3. 從MySQL刪除用戶賬戶 5.8.4. 限制賬戶資源 5.8.5. 設置賬戶密碼 5.8.6. 使你的密碼安全 5.8.7. 使用安全連接 5.9. 備份與恢復 5.9.1. 數(shù)據(jù)庫備份 5.9.2. 示例用備份與恢復策略 5.9.3. 自動恢復 5.9.4. 表維護和崩潰恢復 5.9.5. myisamchk:MyISAM表維護實用工具 5.9.6. 建立表維護計劃 5.9.7. 獲取關于表的信息 5.10. MySQL本地化和國際應用 5.10.1. 數(shù)據(jù)和排序用字符集 5.10.2. 設置錯誤消息語言 5.10.3. 添加新的字符集 5.10.4. 字符定義數(shù)組 5.10.5. 字符串比較支持 5.10.6. 多字節(jié)字符支持 5.10.7. 字符集問題 5.10.8. MySQL服務器時區(qū)支持 5.11. MySQL日志文件 5.11.1. 錯誤日志 5.11.2. 通用查詢日志 5.11.3. 二進制日志 5.11.4. 慢速查詢日志 5.11.5. 日志文件維護 5.12. 在同一臺機器上運行多個MySQL服務器 5.12.1. 在Windows下運行多個服務器 5.12.2. 在Unix中運行多個服務器 5.12.3. 在多服務器環(huán)境中使用客戶端程序 5.13. MySQL查詢高速緩沖 5.13.1. 查詢高速緩沖如何工作 5.13.2. 查詢高速緩沖SELECT選項 5.13.3. 查詢高速緩沖配置 5.13.4. 查詢高速緩沖狀態(tài)和維護 6. MySQL中的復制 6.1. 復制介紹 6.2. 復制實施概述 6.3. 復制實施細節(jié) 6.3.1. 復制主線程狀態(tài) 6.3.2. 復制從I/O線程狀態(tài) 6.3.3. 復制從SQL線程狀態(tài) 6.3.4. 復制傳遞和狀態(tài)文件 6.4. 如何設置復制 6.5. 不同MySQL版本之間的復制兼容性 6.6. 升級復制設置 6.6.1. 將復制升級到5.0版 6.7. 復制特性和已知問題 6.8. 復制啟動選項 6.9. 復制FAQ 6.10. 復制故障診斷與排除 6.11. 通報復制缺陷 6.12. 多服務器復制中的Auto-Increment 7. 優(yōu)化 7.1. 優(yōu)化概述 7.1.1. MySQL設計局限與折衷 7.1.2. 為可移植性設計應用程序 7.1.3. 我們已將MySQL用在何處? 7.1.4. MySQL基準套件 7.1.5. 使用自己的基準 7.2. 優(yōu)化SELECT語句和其它查詢 7.2.1. EXPLAIN語法(獲取SELECT相關信息) 7.2.2. 估計查詢性能 7.2.3. SELECT查詢的速度 7.2.4. MySQL怎樣優(yōu)化WHERE子句 7.2.5. 范圍優(yōu)化 7.2.6. 索引合并優(yōu)化 7.2.7. MySQL如何優(yōu)化IS NULL 7.2.8. MySQL如何優(yōu)化DISTINCT 7.2.9. MySQL如何優(yōu)化LEFT JOIN和RIGHT JOIN 7.2.10. MySQL如何優(yōu)化嵌套Join 7.2.11. MySQL如何簡化外部聯(lián)合 7.2.12. MySQL如何優(yōu)化ORDER BY 7.2.13. MySQL如何優(yōu)化GROUP BY 7.2.14. MySQL如何優(yōu)化LIMIT 7.2.15. 如何避免表掃描 7.2.16. INSERT語句的速度 7.2.17. UPDATE語句的速度 7.2.18. DELETE語句的速度 7.2.19. 其它優(yōu)化技巧 7.3. 鎖定事宜 7.3.1. 鎖定方法 7.3.2. 表鎖定事宜 7.4. 優(yōu)化數(shù)據(jù)庫結構 7.4.1. 設計選擇 7.4.2. 使你的數(shù)據(jù)盡可能小 7.4.3. 列索引 7.4.4. 多列索引 7.4.5. MySQL如何使用索引 7.4.6. MyISAM鍵高速緩沖 7.4.7. MyISAM索引統(tǒng)計集合 7.4.8. MySQL如何計算打開的表 7.4.9. MySQL如何打開和關閉表 7.4.10. 在同一個數(shù)據(jù)庫中創(chuàng)建多個表的缺陷 7.5. 優(yōu)化MySQL服務器 7.5.1. 系統(tǒng)因素和啟動參數(shù)的調節(jié) 7.5.2. 調節(jié)服務器參數(shù) 7.5.3. 控制查詢優(yōu)化器的性能 7.5.4. 編譯和鏈接怎樣影響MySQL的速度 7.5.5. MySQL如何使用內存 7.5.6. MySQL如何使用DNS 7.6. 磁盤事宜 7.6.1. 使用符號鏈接 8. 客戶端和實用工具程序 8.1. 客戶端腳本和實用工具概述 8.2. myisampack:生成壓縮、只讀MyISAM表 8.3. mysql:MySQL命令行工具 8.3.1. 選項 8.3.2. mysql命令 8.3.3. 怎樣從文本文件執(zhí)行SQL語句 8.3.4. mysql技巧 8.4. mysqlaccess:用于檢查訪問權限的客戶端 8.5. mysqladmin:用于管理MySQL服務器的客戶端 8.6. mysqlbinlog:用于處理二進制日志文件的實用工具 8.7. mysqlcheck:表維護和維修程序 8.8. mysqldump:數(shù)據(jù)庫備份程序 8.9. mysqlhotcopy:數(shù)據(jù)庫備份程序 8.10. mysqlimport:數(shù)據(jù)導入程序 8.11. mysqlshow-顯示數(shù)據(jù)庫、表和列信息 8.12. myisamlog:顯示MyISAM日志文件內容 8.13. perror:解釋錯誤代碼 8.14. replace:字符串替換實用工具 8.15. mysql_zap:殺死符合某一模式的進程 9. 語言結構 9.1. 文字值 9.1.1. 字符串 9.1.2. 數(shù)值 9.1.3. 十六進制值 9.1.4. 布爾值 9.1.5. 位字段值 9.1.6. NULL值 9.2. 數(shù)據(jù)庫、表、索引、列和別名 9.2.1. 識別符限制條件 9.2.2. 識別符大小寫敏感性 9.3. 用戶變量 9.4. 系統(tǒng)變量 9.4.1. 結構式系統(tǒng)變量 9.5. 注釋語法 9.6. MySQL中保留字的處理 10. 字符集支持 10.1. 常規(guī)字符集和校對 10.2. MySQL中的字符集和校對 10.3. 確定默認字符集和校對 10.3.1. 服務器字符集和校對 10.3.2. 數(shù)據(jù)庫字符集和校對 10.3.3. 表字符集和校對 10.3.4. 列字符集和校對 10.3.5. 字符集和校對分配示例 10.3.6. 連接字符集和校對 10.3.7. 字符串文字字符集和校對 10.3.8. 在SQL語句中使用COLLATE 10.3.9. COLLATE子句優(yōu)先 10.3.10. BINARY操作符 10.3.11. 校對確定較為復雜的一些特殊情況 10.3.12. 校對必須適合字符集 10.3.13. 校對效果的示例 10.4. 字符集支持影響到的操作 10.4.1. 結果字符串 10.4.2. CONVERT() 10.4.3. CAST() 10.4.4. SHOW語句 10.5. Unicode支持 10.6. 用于元數(shù)據(jù)的UTF8 10.7. 與其它DBMS的兼容性 10.8. 新字符集配置文件格式 10.9. 國家特有字符集 10.10. MySQL支持的字符集和校對 10.10.1. Unicode字符集 10.10.2. 西歐字符集 10.10.3. 中歐字符集 10.10.4. 南歐與中東字符集 10.10.5. 波羅的海字符集 10.10.6. 西里爾字符集 10.10.7. 亞洲字符集 11. 列類型 11.1. 列類型概述 11.1.1. 數(shù)值類型概述 11.1.2. 日期和時間類型概述 11.1.3. 字符串類型概述 11.2. 數(shù)值類型 11.3. 日期和時間類型 11.3.1. DATETIME、DATE和TIMESTAMP類型 11.3.2. TIME類型 11.3.3. YEAR類型 11.3.4. Y2K事宜和日期類型 11.4. String類型 11.4.1. CHAR和VARCHAR類型 11.4.2. BINARY和VARBINARY類型 11.4.3. BLOB和TEXT類型 11.4.4. ENUM類型 11.4.5. SET類型 11.5. 列類型存儲需求 11.6. 選擇正確的列類型 11.7. 使用來自其他數(shù)據(jù)庫引擎的列類型 12. 函數(shù)和操作符 12.1. 操作符 12.1.1. 操作符優(yōu)先級 12.1.2. 圓括號 12.1.3. 比較函數(shù)和操作符 12.1.4. 邏輯操作符 12.2. 控制流程函數(shù) 12.3. 字符串函數(shù) 12.3.1. 字符串比較函數(shù) 12.4. 數(shù)值函數(shù) 12.4.1. 算術操作符 12.4.2. 數(shù)學函數(shù) 12.5. 日期和時間函數(shù) 12.6. MySQL使用什么日歷? 12.7. 全文搜索功能 12.7.1. 布爾全文搜索 12.7.2. 全文搜索帶查詢擴展 12.7.3. 全文停止字 12.7.4. 全文限定條件 12.7.5. 微調MySQL全文搜索 12.8. Cast函數(shù)和操作符 12.9. 其他函數(shù) 12.9.1. 位函數(shù) 12.9.2. 加密函數(shù) 12.9.3. 信息函數(shù) 12.9.4. 其他函數(shù) NoName 12.10.1. GROUP BY(聚合)函數(shù) 12.10.2. GROUP BY修改程序 12.10.3. 具有隱含字段的GROUP BY 13. SQL語句語法 13.1. 數(shù)據(jù)定義語句 13.1.1. ALTER DATABASE語法 13.1.2. ALTER TABLE語法 13.1.3. CREATE DATABASE語法 13.1.4. CREATE INDEX語法 13.1.5. CREATE TABLE語法 13.1.6. DROP DATABASE語法 13.1.7. DROP INDEX語法 13.1.8. DROP TABLE語法 13.1.9. RENAME TABLE語法 13.2. 數(shù)據(jù)操作語句 13.2.1. DELETE語法 13.2.2. DO語法 13.2.3. HANDLER語法 13.2.4. INSERT語法 13.2.5. LOAD DATA INFILE語法 13.2.6. REPLACE語法 13.2.7. SELECT語法 13.2.8. Subquery語法 13.2.9. TRUNCATE語法 13.2.10. UPDATE語法 13.3. MySQL實用工具語句 13.3.1. DESCRIBE語法(獲取有關列的信息) 13.3.2. USE語法 13.4. MySQL事務處理和鎖定語句 13.4.1. START TRANSACTION 13.4.2. 不能回滾的語句 13.4.3. 會造成隱式提交的語句 13.4.4. SAVEPOINT和ROLLBACK TO SAVEPOINT語法 13.4.5. LOCK TABLES和UNLOCK TABLES語法 13.4.6. SET TRANSACTION語法 13.4.7. XA事務 13.5. 數(shù)據(jù)庫管理語句 13.5.1. 賬戶管理語句 13.5.2. 表維護語句 13.5.3. SET語法 13.5.4. SHOW語法 13.5.5. 其它管理語句 13.6. 復制語句 13.6.1. 用于控制主服務器的SQL語句 13.6.2. 用于控制從服務器的SQL語句 13.7. 用于預處理語句的SQL語法 14. 插件式存儲引擎體系結構 14.1. 前言 14.2. 概述 14.3. 公共MySQL數(shù)據(jù)庫服務器層 14.4. 選擇存儲引擎 14.5. 將存儲引擎指定給表 14.6. 存儲引擎和事務 14.7. 插入存儲引擎 14.8. 拔出存儲引擎 14.9. 插件式存儲器的安全含義 15. 存儲引擎和表類型 15.1. MyISAM存儲引擎 15.1.1. MyISAM啟動選項 15.1.2. 鍵所需的空間 15.1.3. MyISAM表的存儲格式 15.1.4. MyISAM表方面的問題 15.2. InnoDB存儲引擎 15.2.1. InnoDB概述 15.2.2. InnoDB聯(lián)系信息 15.2.3. InnoDB配置 15.2.4. InnoDB啟動選項 15.2.5. 創(chuàng)建InnoDB表空間 15.2.6. 創(chuàng)建InnoDB表 15.2.7. 添加和刪除InnoDB數(shù)據(jù)和日志文件 15.2.8. InnoDB數(shù)據(jù)庫的備份和恢復 15.2.9. 將InnoDB數(shù)據(jù)庫移到另一臺機器上 15.2.10. InnoDB事務模型和鎖定 15.2.11. InnoDB性能調節(jié)提示 15.2.12. 多版本的實施 15.2.13. 表和索引結構 15.2.14. 文件空間管理和磁盤I/O 15.2.15. InnoDB錯誤處理 15.2.16. 對InnoDB表的限制 15.2.17. InnoDB故障診斷與排除 15.3. MERGE存儲引擎 15.3.1. MERGE表方面的問題 15.4. MEMORY (HEAP)存儲引擎 15.5. BDB (BerkeleyDB)存儲引擎 15.5.1. BDB支持的操作系統(tǒng) 15.5.2. 安裝BDB 15.5.3. BDB啟動選項 15.5.4. BDB表的特性 15.5.5. 修改BDB所需的事宜 15.5.6. 對BDB表的限制 15.5.7. 使用BDB表時可能出現(xiàn)的錯誤 15.6. EXAMPLE存儲引擎 15.7. FEDERATED存儲引擎 15.7.1. 安裝FEDERATED存儲引擎 15.7.2. FEDERATED存儲引擎介紹 15.7.3. 如何使用FEDERATED表 15.7.4. FEDERATED存儲引擎的局限性 15.8. ARCHIVE存儲引擎 15.9. CSV存儲引擎 15.10. BLACKHOLE存儲引擎 16. 編寫自定義存儲引擎 16.1. 前言 16.2. 概述 16.3. 創(chuàng)建存儲引擎源文件 NoName 16.5. 對處理程序進行實例化處理 16.6. 定義表擴展 16.7. 創(chuàng)建表 16.8. 打開表 16.9. 實施基本的表掃描功能 16.9.1. 實施store_lock()函數(shù) 16.9.2. 實施external_lock()函數(shù) 16.9.3. 實施rnd_init()函數(shù) 16.9.4. 實施info()函數(shù) 16.9.5. 實施extra()函數(shù) 16.9.6. 實施rnd_next()函數(shù) 16.10. 關閉表 NoName NoName NoName 16.14. API引用 16.14.1. bas_ext 16.14.2. close 16.14.3. create 16.14.4. delete_row 16.14.5. delete_table 16.14.6. external_lock 16.14.7. extra 16.14.8. info 16.14.9. open 16.14.10. rnd_init 16.14.11. rnd_next 16.14.12. store_lock 16.14.13. update_row 16.14.14. write_row 17. MySQL簇 17.1. MySQL簇概述 17.2. MySQL簇的基本概念 17.3. 多計算機的簡單基礎知識 17.3.1. 硬件、軟件和聯(lián)網 17.3.2. 安裝 17.3.3. 配置 17.3.4. 首次啟動 17.3.5. 加載示例數(shù)據(jù)并執(zhí)行查詢 17.3.6. 安全關閉和重啟 17.4. MySQL簇的配置 17.4.1. 從源碼創(chuàng)建MySQL簇 17.4.2. 安裝軟件 17.4.3. MySQL簇的快速測試設置 17.4.4. 配置文件 17.5. MySQL簇中的進程管理 17.5.1. 用于MySQL簇的MySQL服務器進程使用 17.5.2. ndbd,存儲引擎節(jié)點進程 17.5.3. ndb_mgmd,“管理服務器”進程 17.5.4. ndb_mgm,“管理客戶端”進程 17.5.5. 用于MySQL簇進程的命令選項 17.6. MySQL簇的管理 17.6.1. MySQL簇的啟動階段 17.6.2. “管理客戶端”中的命令 17.6.3. MySQL簇中生成的事件報告 17.6.4. 單用戶模式 17.6.5. MySQL簇的聯(lián)機備份 17.7. 使用與MySQL簇的高速互連 17.7.1. 配置MySQL簇以使用SCI套接字 17.7.2. 理解簇互連的影響 17.8. MySQL簇的已知限制 17.9. MySQL簇發(fā)展的重要歷程 17.9.1. MySQL 5.0中的MySQL簇變化 17.9.2. 關于MySQL簇的MySQL 5.1發(fā)展歷程 17.10. MySQL簇常見問題解答 17.11. MySQL簇術語表 18. 分區(qū) 18.1. MySQL中的分區(qū)概述 18.2. 分區(qū)類型 18.2.1. RANGE分區(qū) 18.2.2. LIST分區(qū) 18.2.3. HASH分區(qū) 18.2.4. KEY分區(qū) 18.2.5. 子分區(qū) 18.2.6. MySQL分區(qū)處理NULL值的方式 18.3. 分區(qū)管理 18.3.1. RANGE和LIST分區(qū)的管理 18.3.2. HASH和KEY分區(qū)的管理 18.3.3. 分區(qū)維護 18.3.4. 獲取關于分區(qū)的信息 19. MySQL中的空間擴展 19.1. 前言 19.2. OpenGIS幾何模型 19.2.1. Geometry類的層次 19.2.2. 類Geometry 19.2.3. 類Point 19.2.4. 類Curve 19.2.5. 類LineString 19.2.6. 類Surface 19.2.7. 類Polygon 19.2.8. 類GeometryCollection 19.2.9. 類MultiPoint 19.2.10. 類MultiCurve 19.2.11. 類MultiLineString 19.2.12. 類MultiSurface 19.2.13. 類MultiPolygon 19.3. 支持的空間數(shù)據(jù)格式 19.3.1. 著名的文本(WKT)格式 19.3.2. 著名的二進制(WKB)格式 19.4. 創(chuàng)建具備空間功能的MySQL數(shù)據(jù)庫 19.4.1. MySQL空間數(shù)據(jù)類型 19.4.2. 創(chuàng)建空間值 19.4.3. 創(chuàng)建空間列 19.4.4. 填充空間列 19.4.5. 獲取空間數(shù)據(jù) 19.5. 分析空間信息 19.5.1. Geometry格式轉換函數(shù) 19.5.2. Geometry函數(shù) 19.5.3. 從已有Geometry創(chuàng)建新Geometry的函數(shù) 19.5.4. 測試幾何對象間空間關系的函數(shù) 19.5.5. 關于幾何最小邊界矩形(MBR)的關系 19.5.6. 測試幾何類之間空間關系的函數(shù) 19.6. 優(yōu)化空間分析 19.6.1. 創(chuàng)建空間索引 19.6.2. 使用空間索引 19.7. MySQL的一致性和兼容性 19.7.1. 尚未實施的GIS特性 20. 存儲程序和函數(shù) 20.1. 存儲程序和授權表 20.2. 存儲程序的語法 20.2.1. CREATE PROCEDURE和CREATE FUNCTION 20.2.2. ALTER PROCEDURE和ALTER FUNCTION 20.2.3. DROP PROCEDURE和DROP FUNCTION 20.2.4.SHOW CREATE PROCEDURE和SHOW CREATE FUNCTION 20.2.5.SHOW PROCEDURE STATUS和SHOW FUNCTION STATUS 20.2.6. CALL語句 20.2.7. BEGIN ... END復合語句 20.2.8. DECLARE語句 20.2.9. 存儲程序中的變量 20.2.10. 條件和處理程序 20.2.11. 光標 20.2.12. 流程控制構造 20.3. 存儲程序、函數(shù)、觸發(fā)程序和復制:常見問題 20.4. 存儲子程序和觸發(fā)程序的二進制日志功能 21. 觸發(fā)程序 21.1. CREATE TRIGGER語法 21.2. DROP TRIGGER語法 21.3. 使用觸發(fā)程序 22. 視圖 22.1. ALTER VIEW語法 22.2. CREATE VIEW語法 22.3. DROP VIEW語法 22.4. SHOW CREATE VIEW語法 23. INFORMATION_SCHEMA信息數(shù)據(jù)庫 23.1. INFORMATION_SCHEMA表 23.1.1. INFORMATION_SCHEMA SCHEMATA表 23.1.2. INFORMATION_SCHEMA TABLES表 23.1.3. INFORMATION_SCHEMA COLUMNS表 23.1.4. INFORMATION_SCHEMA STATISTICS表 23.1.5. INFORMATION_SCHEMA USER_PRIVILEGES表 23.1.6. INFORMATION_SCHEMA SCHEMA_PRIVILEGES表 23.1.7. INFORMATION_SCHEMA TABLE_PRIVILEGES表 23.1.8. INFORMATION_SCHEMA COLUMN_PRIVILEGES表 23.1.9. INFORMATION_SCHEMA CHARACTER_SETS表 23.1.10. INFORMATION_SCHEMA COLLATIONS表 23.1.11. INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY表 23.1.12. INFORMATION_SCHEMA TABLE_CONSTRAINTS表 23.1.13. INFORMATION_SCHEMA KEY_COLUMN_USAGE表 23.1.14. INFORMATION_SCHEMA ROUTINES表 23.1.15. INFORMATION_SCHEMA VIEWS表 23.1.16. INFORMATION_SCHEMA TRIGGERS表 23.1.17. 其他INFORMATION_SCHEMA表 NoName 24. 精度數(shù)學 24.1. 數(shù)值的類型 24.2. DECIMAL數(shù)據(jù)類型更改 24.3. 表達式處理 24.4. 四舍五入 24.5. 精度數(shù)學示例 25. API和庫 25.1. libmysqld,嵌入式MySQL服務器庫 25.1.1. 嵌入式MySQL服務器庫概述 25.1.2. 使用libmysqld編譯程序 25.1.3. 使用嵌入式MySQL服務器時的限制 25.1.4. 與嵌入式服務器一起使用的選項 25.1.5. 嵌入式服務器中尚需完成的事項(TODO) 25.1.6. 嵌入式服務器示例 25.1.7. 嵌入式服務器的許可 25.2. MySQL C API 25.2.1. C API數(shù)據(jù)類型 25.2.2. C API函數(shù)概述 25.2.3. C API函數(shù)描述 25.2.4. C API預處理語句 25.2.5. C API預處理語句的數(shù)據(jù)類型 25.2.6. C API預處理語句函數(shù)概述 25.2.7. C API預處理語句函數(shù)描述 25.2.8. C API預處理語句方面的問題 25.2.9. 多查詢執(zhí)行的C API處理 25.2.10. 日期和時間值的C API處理 25.2.11. C API線程函數(shù)介紹 25.2.12. C API嵌入式服務器函數(shù)介紹 25.2.13. 使用C API時的常見問題 25.2.14. 創(chuàng)建客戶端程序 25.2.15. 如何生成線程式客戶端 25.3. MySQL PHP API 25.3.1. 使用MySQL和PHP的常見問題 25.4. MySQL Perl API 25.5. MySQL C++ API 25.5.1. Borland C++ 25.6. MySQL Python API 25.7. MySQL Tcl API 25.8. MySQL Eiffel Wrapper 25.9. MySQL程序開發(fā)實用工具 25.9.1. msql2mysql:轉換mSQL程序以用于MySQL 25.9.2. mysql_config:獲取編譯客戶端的編譯選項 26. 連接器 26.1. MySQL Connector/ODBC 26.1.1. MyODBC介紹 26.1.2. 關于ODBC和MyODBC的一般信息 26.1.3. 如何安裝MyODBC 26.1.4. 在Windows平臺上從二進制版本安裝MyODBC 26.1.5. I在Unix平臺上從二進制版本安裝MyODBC 26.1.6. 在Windows平臺上從源碼版本安裝MyODBC 26.1.7. 在Unix平臺上從源碼版本安裝MyODBC 26.1.8. 從BitKeeper開發(fā)源碼樹安裝MyODBC 26.1.9. MyODBC配置 26.1.10. 與MyODBC連接相關的事宜 26.1.11. MyODBC和Microsoft Access 26.1.12. MyODBC和Microsoft VBA及ASP 26.1.13. MyODBC和第三方ODBC工具 26.1.14. MyODBC通用功能 26.1.15. 基本的MyODBC應用步驟 26.1.16. MyODBC API引用 26.1.17. MyODBC數(shù)據(jù)類型 26.1.18. MyODBC錯誤代碼 26.1.19. MyODBC與VB:ADO、DAO和RDO 26.1.20. MyODBC與Microsoft.NET 26.1.21. 感謝 26.2. MySQL Connector/NET 26.2.1. 前言 26.2.2. 下載并安裝MySQL Connector/NET 26.2.3. Connector/NET體系結構 26.2.4. 使用MySQL Connector/NET 26.2.5. MySQL Connector/NET變更史 26.3. MySQL Connector/J 26.3.1. 基本的JDBC概念 26.3.2. 安裝 Connector/J 26.3.3. JDBC引用 26.3.4. 與J2EE和其他Java框架一起使用 Connector/J 26.3.5. 診斷 Connector/J方面的問題 26.3.6. Changelog 26.4. MySQL Connector/MXJ 26.4.1. 前言 26.4.2. 支持平臺: 26.4.3. Junit測試要求 26.4.4. 運行Junit測試 26.4.5. 作為JDBC驅動程序的一部分運行 26.4.6. 在Java對象中運行 26.4.7. MysqldResource API 26.4.8. 在JMX代理(custom)中運行 26.4.9. 部署在標準的JMX代理環(huán)境下 (JBoss) 26.4.10. 安裝 27. 擴展MySQL 27.1. MySQL內部控件 27.1.1. MySQL線程 27.1.2. MySQL測試套件 27.2. 為MySQL添加新函數(shù) 27.2.1. 自定義函數(shù)接口的特性 27.2.2. CREATE FUNCTION/DROP FUNCTION語法 27.2.3. 添加新的自定義函數(shù) 27.2.4. 添加新的固有函數(shù) 27.3. 為MySQL添加新步驟 27.3.1. 步驟分析 27.3.2. 編寫步驟 A. 問題和常見錯誤 A.1. 如何確定導致問題的原因 A.2. 使用MySQL程序時的常見錯誤 A.2.1. 拒絕訪問 A.2.2. 無法連接到[local] MySQL服務器 A.2.3. 客戶端不支持鑒定協(xié)議 A.2.4. 輸入密碼時出現(xiàn)密碼錯誤 NoName A.2.6. 連接數(shù)過多 A.2.7. 內存溢出 A.2.8. MySQL服務器不可用 A.2.9. 信息包過大 A.2.10. 通信錯誤和失效連接 A.2.11. 表已滿 A.2.12. 無法創(chuàng)建文件/寫入文件 A.2.13. 命令不同步 A.2.14. 忽略用戶 A.2.15. 表tbl_name不存在 A.2.16. 無法初始化字符集 A.2.17. 文件未找到 A.3. 與安裝有關的事宜 A.3.1. 與MySQL客戶端庫的鏈接問題 A.3.2. 如何以普通用戶身份運行MySQL A.3.3. 與文件許可有關的問題 A.4. 與管理有關的事宜 A.4.1. 如何復位根用戶密碼 A.4.2. 如果MySQL依然崩潰,應作些什么 A.4.3. MySQL處理磁盤滿的方式 A.4.4. MySQL將臨時文件儲存在哪里 A.4.5. 如何保護或更改MySQL套接字文件/tmp/mysql.sock A.4.6. 時區(qū)問題 A.5. 與查詢有關的事宜 A.5.1. 搜索中的大小寫敏感性 A.5.2. 使用DATE列方面的問題 A.5.3. 與NULL值有關的問題 A.5.4. 與列別名有關的問題 A.5.5. 非事務表回滾失敗 A.5.6. 從相關表刪除行 A.5.7. 解決與不匹配行有關的問題 A.5.8. 與浮點比較有關的問題 A.6. 與優(yōu)化器有關的事宜 A.7. 與表定義有關的事宜 A.7.1. 與ALTER TABLE有關的問題 A.7.2. 如何更改表中的列順序 A.7.3. TEMPORARY TABLE問題 A.8. MySQL中的已知事宜 A.8.1. MySQL中的打開事宜 B. 錯誤代碼和消息 B.1. 服務器錯誤代碼和消息 B.2. 客戶端錯誤代碼和消息 C. 感謝 C.1. MySQL AB處的開發(fā)人 C.2. MySQL貢獻人 C.3. 資料員和譯員 C.4. MySQL使用和包含的庫 C.5. 支持MySQL的軟件包 C.6. 用于創(chuàng)建MySQL的工具 C.7. MySQL支持人員 D. MySQL變更史 D.1. 5.1.x版中的變更情況(開發(fā)) D.1.1. 5.1.2版中的變更情況(尚未發(fā)布) D.1.2. 5.1.1版中的變更情況(尚未發(fā)布) D.2. MyODBC的變更情況 D.2.1. MyODBC 3.51.12的變更情況 D.2.2. MyODBC 3.51.11的變更情況 E. 移植到其他系統(tǒng) E.1. 調試MySQL服務器 E.1.1. 針對調試編譯MySQL E.1.2. 創(chuàng)建跟蹤文件 E.1.3. 在gdb環(huán)境下調試mysqld E.1.4. 使用堆棧跟蹤 E.1.5. 使用日志文件找出mysqld中的錯誤原因 E.1.6. 如果出現(xiàn)表崩潰,請生成測試案例 E.2. 調試MySQL客戶端 E.3. DBUG軟件包 E.4. 關于RTS線程的注釋 E.5. 線程軟件包之間的差異 F. 環(huán)境變量 G. MySQL正則表達式 H. MySQL中的限制 H.1. 聯(lián)合的限制 I. 特性限制 I.1. 對存儲子程序和觸發(fā)程序的限制 I.2. 對服務器端光標的限制 I.3. 對子查詢的限制 I.4. 對視圖的限制 I.5. 對XA事務的限制 J. GNU通用公共許可 K. MySQL FLOSS許可例外 索引
テキスト

第4章:MySQL程序概述

目錄

4.1. MySQL程序概述
4.2. 調用MySQL程序
4.3. 指定程序選項
4.3.1. 在命令行上使用選項
4.3.2. 使用選項文件
4.3.3. 用環(huán)境變量指定選項
4.3.4. 使用選項設置程序變量

本章簡要概述了MySQL AB提供的命令行程序,并討論了運行這些程序時如何指定選項。大多數(shù)程序具有其操作專用的選項,但指定選項的語法都近似。后面的幾章更加詳細地描述了各個程序,包括它們識別的選項。

MySQL AB還提供了3GUI客戶程序供MySQL服務器使用:

·???????? MySQL管理器 :該工具用于管理MySQL服務器、數(shù)據(jù)庫、表以及用戶。

·???????? MySQL查詢?yōu)g覽器 :該圖形工具由MySQL AB提供,用于創(chuàng)建、執(zhí)行以及優(yōu)化對MySQL數(shù)據(jù)庫的查詢。

·???????? MySQL移植工具包 :該工具可以幫助你將計劃和數(shù)據(jù)從其它關系數(shù)據(jù)庫管理系統(tǒng)移植到MySQL。

4.1.?MySQL程序概述

MySQL AB提供了幾種類型的程序:

·???????? MYSQL服務器和服務器啟動腳本:

o??????? mysqldMySQL服務器

o??????? mysqld_safe、mysql.servermysqld_multi是服務器啟動腳本

o??????? mysql_install_db初始化數(shù)據(jù)目錄和初始數(shù)據(jù)庫

在第5章:數(shù)據(jù)庫管理中詳細討論了這些程序。

·???????? 訪問服務器的客戶程序:

o??????? mysql是一個命令行客戶程序,用于交互式或以批處理模式執(zhí)行SQL語句。

o??????? mysqladmin是用于管理功能的客戶程序。

o??????? mysqlcheck執(zhí)行表維護操作。

o??????? mysqldumpmysqlhotcopy負責數(shù)據(jù)庫備份。

o??????? mysqlimport導入數(shù)據(jù)文件。?

o??????? mysqlshow顯示信息數(shù)據(jù)庫和表的相關信息。

在第8章:客戶端和實用工具程序 中詳細討論了這些程序。

·???????? 獨立于服務器操作的工具程序:

o??????? myisamchk執(zhí)行表維護操作。

o??????? myisampack產生壓縮、只讀的表。

o??????? mysqlbinlog是處理二進制日志文件的實用工具。

o??????? perror顯示錯誤代碼的含義。

在第5章:數(shù)據(jù)庫管理中詳細討論了myisamchk。在第8章:客戶端和實用工具程序 中詳細討論了其它程序。

大多數(shù)MySQL分發(fā)包括上述的全部程序,只是不包含那些與平臺相關的程序。(例如,在Windows中不使用服務器啟動腳本)不同的只是RPM分發(fā)更加具體化??赡芤粋€RPM是服務器分發(fā),另一個RPM是客戶程序分發(fā)等等。如果你丟失了一個或多個程序,要想查閱關于分發(fā)類型和它們所包含內容的信息,參見第2章:安裝MySQL。也可能需要安裝一些其它內容。

4.2.?調用MySQL程序

要想從命令行調用MySQL程序(即從shell或命令提示),應輸入程序名,并隨后輸入指導操作發(fā)的選項或其它參量。下面的命令顯示了一些程序調用的例子。“shell>”表示命令解釋符提示;并不是輸入的部分。你所看見的具體提示取決于命令解釋符。典型提示符:shbash$,cshtcsh%,Windows command.comcmd.exeC:\>。

shell> mysql test
shell> mysqladmin extended-status variables
shell> mysqlshow --help
shell> mysqldump --user=root personnel

以破折號開始的參數(shù)為選項參量。它們通常指定程序與服務器的連接類型或影響其操作模式。關于選項語法的描述參見4.3節(jié),“指定程序選項”。

非選項參數(shù)(不以破折號開始的參量)可以為程序提供更詳細的信息。例如,mysql程序將第一個非選項參量解釋為數(shù)據(jù)庫名,因此命令 mysql test表示你想要使用test數(shù)據(jù)庫。

后面的章節(jié)描述了具體的程序,表示程序可以理解的選項,并描述了其它非選項參量的含義。

部分選項對部分程序是通用的。最常用的是指定連接參數(shù)的--host、--user--password選項。它們指示MySQL服務器運行的主機和MySQL賬戶的用戶名和 密碼。所有MySQL客戶程序可以理解這些選項;它們允許你指定連接哪個服務器,以及在該服務器上使用的 賬戶。

你也許會發(fā)現(xiàn)需要使用MySQL程序安裝的bin目錄的路徑名來調用MySQL程序。如果你試圖不在bin目錄下運行MySQL程序,可能會遇到“程序未找到”錯誤。為了更方便地使用MySQL,可以將bin目錄的路徑名添加到PATH環(huán)境變量中。然后運行程序時只需要輸入程序名,而不需要輸入整個路徑名。

關于設置PATH的指令的命令解釋符請查閱相關文檔。設置環(huán)境變量的語法與解釋符有關。

4.3.?指定程序選項

4.3.1. 在命令行上使用選項
4.3.2. 使用選項文件
4.3.3. 用環(huán)境變量指定選項
4.3.4. 使用選項設置程序變量

可以用幾種方式提供MySQL程序的選項:

·???????? 在命令行中在程序名后面提供。這對于具體程序調用時使用的選項很普遍。

·???????? 在程序啟動時讀取的選項文件中設置。這對于每次程序運行時使用的選項很普遍。

·???????? 在環(huán)境變量中設置。這對每次程序運行時所使用的選項很有用,盡管實際上最常用選項文件。(5.12.2節(jié),“在Unix中運行多個服務器”中討論了環(huán)境變量會很有幫助的一種情況。描述了使用這些變量來指定服務器和客戶程序的TCP/IP端口號和Unix套接字文件的各種技術)

MySQL程序首先檢查環(huán)境變量,然后檢查選項文件,然后檢查命令行來確定給出了哪些選項。如果多次指定一個選項,最后出現(xiàn)的選項占先。這說明環(huán)境變量具有最低的優(yōu)先級,命令行選項具有最高優(yōu)先級。

可以在選項文件中指定程序選項的默認值來讓MySQL程序處理各選項。不需要在每次運行程序時輸入選項,但可以根據(jù)需要通過命令行選項來覆蓋默認值。

4.3.1.?在命令行上使用選項

在命令行中指定的程序選項遵從下述規(guī)則:

·???????? 在命令名后面緊跟選項。

·???????? 選項參量以一個和兩個破折號開始,取決于它具有短名還是長名。許多選項有兩種形式。例如,-?--help是指導MySQL程序顯示幫助消息的選項的短名和長名。

·???????? 選項名對大小寫敏感。-v-V均有效,但具有不同的含義。(它們是--verbose--version選項的短名)。

·???????? 部分選項在選項名后面緊隨選項值。例如,-h localhost--host=localhost表示客戶程序的MySQL服務器主機。選項值可以告訴程序MySQL服務器運行的主機名。

·???????? 對于帶選項值的長選項,通過一個‘=’將選項名和值隔離開來。對于帶選項值的短選項,選項值可以緊隨選項字母后面,或者二者之間可以用一個空格隔開。(-hlocalhost-h localhost是等效的)該規(guī)則的例外情況是指定MySQL密碼的選項。該選項的形式可以為--password=pass_val--password。在后一種情況(未給出 密碼值),程序將提示輸入密碼。也可以給出密碼選項,短形式為-ppass_val-p。然而,對于短形式,如果給出了 密碼值,必須緊跟在選項后面,中間不能插入空格。這樣要求的原因是如果選項后面有空格,程序沒有辦法來告知后面的參量是 密碼值還是其它某種參量。因此,下面兩個命令的含義完全不同:

·??????????????? shell> mysql -ptest
·??????????????? shell> mysql -p test

第一個命令讓mysql使用密碼test,但沒有指定默認數(shù)據(jù)庫。第二個命令讓mysql提示輸入 密碼并使用test作為默認數(shù)據(jù)庫。

部分選項控制可以開關的行為。例如,mysql客戶端支持--column-names選項,確定是否在查詢結果開頭顯示一行欄目名。默認情況,該選項被啟用。但是可能在某些情況下你想要禁用它,例如將mysql的輸出發(fā)送到另一個只希望看到數(shù)據(jù)而不希望看到開始的標題行的程序中。

要想禁用列名,可以使用下面的形式來指定選項:

--disable-column-names
--skip-column-names
--column-names=0

--disable--skip前綴與=0后綴的效果相同:它們均關閉選項。

可以用下述方法“啟用”選項:

--column-names
--enable-column-names
--column-names=1

如果選項有前綴--loose,如果程序未識別出選項不會提示錯誤退出,但是會發(fā)出一條警告:

shell> mysql --loose-no-such-option
mysql: WARNING: unknown option '--no-such-option'

當你從安裝了多個MySQL的同一臺機器上運行程序時,--loose前綴會很有用。當你在一個選項文件中列出選項時,該前綴會特別有用。有可能不能被程序的所有版本識別的選項可以冠以--loose前綴(或在選項文件中用loose)。不能識別選項的程序版本將會發(fā)出一條警告并忽視該選項。

mysql偶爾有用的另一個選項是-e--execute選項,可用來將SQL語句傳遞給服務器。該語句必須用引號引起來(單引號或雙引號)。(然而,如果想要在查詢中將值引起來,則對于查詢應使用雙引號,查詢中引用的值應使用單引號)。當使用該選項時,語句被執(zhí)行,然后mysql立即退出命令外殼。

例如,你可以用下面的命令獲得用戶賬戶列表:

shell> mysql -u root -p -e "SELECT User, Host FROM User" mysql
Enter password: ******
+------+-----------+
| User | Host????? |
+------+-----------+
|? ????| gigan???? |
| root | gigan???? |
|????? | localhost |
| jon? | localhost |
| root | localhost |
+------+-----------+
shell>

請注意mysql數(shù)據(jù)庫名作為一個獨立的參量傳遞。然而,相同的查詢可能已經使用mysql -u root -p -e "SELECT User,Host FROM mysql.User"從外殼中執(zhí)行。

可以按這種方式傳遞多個SQL語句,用分號隔開:

shell> mysql -u root -p --execute="SELECT Name FROM Country WHERE Name LIKE 'AU%';SELECT COUNT(*) FROM City" world
Enter password: ******
+-----------+
| Name????? |
+-----------+
| Australia |
| Austria?? |
+-----------+
+----------+
| COUNT(*) |
+----------+
|???? 4079 |
+----------+

請注意長形式(--execute)后面必須緊跟一個等號(=)。

-e選項也可以以類似方式用來將命令傳遞給MySQL簇的ndb_mgm管理客戶端。相關例子參見17.3.6節(jié),“安全關閉和重啟”。

4.3.2.?使用選項文件

MySQL程序可以從選項文件(有時也稱為配置文件)讀取啟動選項。選項文件提供了一種很方便的方式來指定常用的選項,因此不需要每次運行程序時從命令行輸入。

下面的程序支持選項文件:myisamchkmyisampack、mysqlmysql.server、mysqladmin、mysqlbinlogmysqlcc、mysqlcheck、mysqld_safemysqldump、mysqldmysqlhotcopy、mysqlimportmysqlshow

注釋:MySQL簇程序使用的選項文件參見17.4節(jié),“MySQL簇的配置”。

Windows中,MySQL程序從以下文件讀取啟動選項:

文件名

目的

WINDIR\my.ini

全局選項

C:\my.cnf

全局選項

INSTALLDIR\my.ini

全局選項

defaults-extra-file

--defaults-extra-file=path指定的文件,如果有

WINDIR表示Windows目錄的位置。通常為C:\WINDOWSC:\WINNT。你可以使用下面的命令通過環(huán)境變量WINDIR的值確定其確切位置:

C:\> echo %WINDIR%

INSTALLDIR表示MySQL的安裝目錄。一般為C:\PROGRAMDIR\MySQL\MySQL 5.1 Server,其中PROGRAMDIR表示程序目錄(通常為Windows英文版的Program Files),MySQL 5.1的安裝是根據(jù)安裝和配置向導完成的。參見2.3.5.14節(jié),“my.ini文件的位置”。

Unix中,MySQL程序從下面的文件讀取啟動選項:

文件名

目的

/etc/my.cnf

全局選項

$MYSQL_HOME/my.cnf

服務器相關選項

defaults-extra-file

--defaults-extra-file=path指定的文件,如果有

~/.my.cnf

用戶相關選項

MYSQL_HOME是一個環(huán)境變量,包含服務器相關的my.cnf文件駐留的目錄路徑。

如果未設置MYSQL_HOME,并且DATADIR中有一個my.cnf文件,BASEDIR中沒有my.cnf文件,mysqld_safeMYSQL_HOME設置為DATADIR。否則,如果未設置MYSQL_HOME并且在DATADIR中沒有my.cnf,則mysqld_safeMYSQL_HOME設置為BASEDIR。

典型情況二進制安裝的目錄為/usr/local/mysql/data或源代碼安裝的目錄為/usr/local/var。請注意這是配置時指定的數(shù)據(jù)目錄的位置,而不是 mysqld啟動時用--datadir指定的。運行時使用--datadir對尋找選項文件的服務器沒有效果,因為服務器在處理命令行參量之前尋找這些選項。

MySQL按照上述順序尋找選項文件,并讀存在的選項文件。如果你想要使用的某個選項文件不存在,則用明文文本編輯器創(chuàng)建。如果存在多個選項文件,文件中指定的后讀取的選項要優(yōu)先文件中指定的先讀取的選項。

注釋:Unix平臺上,MySQL忽略人人可寫的配置文件。這是故意的,是一個安全措施。

任何可以在運行MySQL程序時在命令行給出的長選項也可以在選項文件中給出。要想列出程序的適用選項,用--help選項運行程序。

在選項文件中指定選項的語法類似于命令行語法,例外的是要忽略掉兩個破折號。例如,命令行中的--quick--host=localhost在選項文件中應指定為quickhost=localhost。要想在選項文件中指定--loose-opt_name形式的選項,應寫為loose-opt_name。

選項文件中的空行被忽略掉。非空行可以采用下面任何形式:

·???????? #注釋,;注釋

注釋行以‘#’或‘;’開頭?!?span>#’注釋也可以從行的中部開始。

·???????? [group]

group是你想要設置選項的程序名或組名。在組行后面,任何opt_nameset-variable行適用于組名,直到選項文件結尾或給出其它組行。

·???????? opt_name

等價于命令行中的--opt_name

·???????? opt_name=value

等價于命令行中的--opt_name=value。在選項文件中,‘=’字符附近可以有空格,而在命令行中是不允許的。你可以用單引號或雙引號來引用值。如果值包含一個‘#’注釋字符或空格時很有用。

選項名和值前后的空白將自動刪除掉。你可以在選項值中使用轉義序列‘\b’、‘\t’、‘\n’、‘\r’、‘\\’以及‘\s’來表示退格、tab、換行符、回車以及空格字符。

Windows中,如果某個選項值表示一個路徑名,應使用‘/’而不是‘\’作為路徑名間隔符來指定值。如果使用‘\’,必須用雙斜線‘\\’,因為‘\’在MySQL中為轉義字符。

如果選項組名與程序名相同,則組內的選項專用于該程序。

所有客戶程序(不能mysqld)讀取[client]選項組。這樣允許你指定適用于所有客戶端的選項。例如,[client]是用于指定連接服務器的 密碼的理想的組。(但應確保該選項文件只能由你自己讀寫,以便其他人不能發(fā)現(xiàn)你的密碼)。一定不要隨意在[client]組內放置選項,除非它可以被你使用的所有客戶程序識別。如果你試圖運行程序,如果程序不理解選項則會顯示一條錯誤消息后退出。

5.0系列的MySQL 5.0.4開始,可以在選項文件中使用!include指令來包括具體文件和!includedir來搜索選項文件的具體目錄。例如,要包括文件/home/mydir/myopt.cnf,可以使用:

!include /home/me/myopt.cnf

要搜索所有以.cnf結尾的文件的目錄/home/mydir并作為選項文件讀取,應使用:

!includedir /home/mydir

請注意這些選項與節(jié)有關。例如,假定你想要使用my.cnf中的某些內容,如下所示:

[mysqld]
!include /home/mydir/myopt.cnf

在這種情況下,只為該服務器處理文件myopt.cnf,并且!include指令將被客戶應用程序忽略。然而,如果你使用下面的部分:

[mysqldump]
!includedir /home/mydir/my-dump-option

則只有mysqldump為以.cnf結尾的文件檢查目錄/home/mydir/my-dump-option,服務器或其它客戶應用程序均不檢查。

注釋:目前,在Unix操作系統(tǒng)中,所發(fā)現(xiàn)的使用!includedir指令包括的文件的文件名必須.cnf為擴展名。在Windows中,該指令也為有.ini擴展名(包括.cnf)的文件做檢查。

如果你想要創(chuàng)建只由一個具體mysqld服務器發(fā)布系列讀取的選項組,選項組可以用[mysqld-5.0]、[mysqld-5.1]等名稱。下面的組表示--new選項只能用于5.1.x 版本的MySQL服務器:

[mysqld-5.1]
new

下面是一個典型的全局選項文件:

[client]
port=3306
socket=/tmp/mysql.sock
?
[mysqld]
port=3306
socket=/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M
?
[mysqldump]
quick

在上述的選項文件中,設置key_buffer_sizemax_allowed_packet變量的行使用了var_name=value語法。

下面是一個典型的用戶選項文件:

[client]
# The following password will be sent to all standard MySQL clients
password="my_password"
?
[mysql]
no-auto-rehash
connect_timeout=2
?
[mysqlhotcopy]
interactive-timeout
?

如果你有一個源代碼分發(fā),可以從support-file目錄中找到名為my-xxxx.cnf的示例選項文件。如果你有一個二進制分發(fā),在MySQL安裝目錄的support-file目錄中查找。在Windows中,示例選項文件也可以位于MySQL的安裝目錄(如果你不知道在哪里,查閱本節(jié)前面或第2章:安裝MySQL)。目前有小、中等、大以及非常大的系統(tǒng)的示例選項文件。要想練習這些文件,在Windows中復制到C:\my.cnf或在Unix中復制到根目錄的.my.cnf。

注釋:Windows中,可以不顯示.cnf選項文件的擴展名。

所有支持選項文件的MySQL程序可以處理下面的命令行選項:

·???????? --no-defaults

不讀取任何選項文件。

·???????? --print-defaults

打印從選項文件中獲得的程序名和所有選項。

·???????? --defaults-file=path_name

只使用給出的選項文件。path_name是文件的全路徑名。

·???????? --defaults-extra-file=path_name

在全局選項文件后但在用戶選項文件前讀該選項文件。path_name是文件的全路徑名。

為了正確工作,每個選項必須緊隨命令行中的命令名后,例外情況是--print-defaults可以緊隨--defaults-file--defaults-extra-file

shell腳本中,可以使用my_print_defaults程序來分析選項文件。下面的例子顯示了當要求顯示[client][mysql]組內發(fā)現(xiàn)的選項時my_print_defaults產生的輸出:

shell> my_print_defaults client mysql
--port=3306
--socket=/tmp/mysql.sock
--no-auto-rehash

開發(fā)人員請注意:在C客戶程序庫中,只是通過處理命令行參量前面的所有匹配選項(即相應組內的選項)來處理選項文件。對于使用多次指定的最后的選項實例的程序,可以很好地工作。如果你有一個CC++程序按這種方式處理多次指定的選項,但不讀取選項文件,只需要添加兩行來實現(xiàn)該功能。檢查標準MySQL客戶程序的源代碼來看看如何做。

其它幾個MySQL語言接口基于C客戶庫,它們中的一部分提供了訪問選項文件的一種方式。包括PerlPython。關于接口的詳細信息參見相關文檔。

4.3.3.?用環(huán)境變量指定選項

要想用環(huán)境變量指定選項,使用適用注釋處理器的語法來設置變量。例如,在WindowsNetWare中,可以設置USER變量來指定MySQL賬戶名。要想實現(xiàn),使用語法:

SET USER=your_name

Unix中的語法取決于你的外殼。假定你想要使用MYSQL_TCP_PORT變量指定TCP/IP端口號。典型的語法為(例如shbash、zsh等等)

MYSQL_TCP_PORT=3306
export MYSQL_TCP_PORT

1個命令設置變量,export命令將變量導出到外殼環(huán)境,以便其值可供MySQL和其它進程訪問。

cshtcsh有類似的問題。運行這些外殼時,使用setenv使外殼變量適用環(huán)境:

setenv MYSQL_TCP_PORT 3306

可以在命令提示符下執(zhí)行設置環(huán)境變量的命令,以便立即生效。這些設定值持續(xù)到你注銷。要向讓這些設定值在你每次登錄時生效,將相應命令放入每次啟動時命令解釋符所讀的啟動文件中。在Windows中典型啟動文件為AUTOEXEC.BAT,bash.bash_profile,或者tcsh.tcshrc。關于命令解釋符的具體細節(jié)請查閱文檔。

附錄F:環(huán)境變量 了列出影響MySQL程序操作的所有環(huán)境變量。

4.3.4.?使用選項設置程序變量

許多MySQL程序有一些內部變量可以在運行時設置。程序變量的設置與帶有值的其它長選項相同。例如,mysql有一個max_allowed_packet變量,可以控制其通信緩沖區(qū)的最大長度。要想為mysqlmax_allowed_packet變量的值設置為16MB,使用下面的任何一個命令:

shell> mysql --max_allowed_packet=16777216
shell> mysql --max_allowed_packet=16M

1個命令以字節(jié)指定值。第2個命令以兆字節(jié)指定值。變量值可以有一個后綴K、M或者G(可以為大寫或小寫)來表示千字節(jié)、兆字節(jié)或者十億字節(jié)的單位。

在選項文件中,變量設定值沒有引導破折號:

[mysql]
max_allowed_packet=16777216

或:

[mysql]
max_allowed_packet=16M

如果你喜歡,變量名的下劃線可以為破折號。

注釋:MySQL 5.1仍然能識別舊的語法--set-variable = option=value,但現(xiàn)在不贊成使用。

部分服務器變量可以在運行時設置。詳情參見5.3.3.1節(jié),“動態(tài)系統(tǒng)變量”。


這是MySQL參考手冊的翻譯版本,關于MySQL參考手冊,請訪問dev.mysql.com.。原始參考手冊為英文版,與英文版參考手冊相比,本翻譯版可能不是最新的。

前の記事: 次の記事: