首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Windows 版與 Unix 版 MySQL 差異對照表:執行緒、大小寫、路徑、管道與已知限制

     編輯:MySQL 綜合教學

核心架構差異

項目Windows (Win32)Unix/Linux
執行緒模型每連線一執行緒,Win95 每執行緒洩漏 ~200 bytes,長跑不穩;WinNT/98 無此問題每連線一執行緒,穩定成熟
阻塞式讀取使用 blocking read,連線不會 8 小時自動斷開;睡眠連線無法用 mysqladmin kill 斬斷,需 mysqladmin shutdown非阻塞/可中斷,支援 mysqladmin kill
UDF (用戶自訂函數)不支援支援共享庫 .so
DROP DATABASE若有執行緒正在使用該庫,無法刪除可刪除 (視儲存引擎)
任務管理器強制結束Win95 無法從工作管理器 kill mysqld,必須 mysqladmin shutdownkill -TERM 正常關閉

大小寫與路徑處理

  • 資料庫/資料表名大小寫不敏感 (Windows 檔案系統不區分大小寫)。同一陳述式內大小寫必須一致,否則 SELECT * FROM my_table WHERE MY_TABLE.col=1 會失敗。
  • 路徑分隔符 \ 為跳脫字元,LOAD DATA INFILE 需雙跳脫 C:\\tmp\\data.txt 或改用 Unix 風格 C:/tmp/data.txt。

命名管道與連線錯誤

  • NT 正式版預設用 Named Pipe,新版客戶端若直連會報 Can't open named pipe。
  • 解法:連線加 --host=localhost 強制 TCP/IP,或建立 C:\my.cnf 含 [client] host=localhost。

主機名解析與存取被拒

  • 錯誤 Access denied for user 'user@unknown' 表示主機名反解失敗。
  • 建立 C:\windows\hosts (或 %SystemRoot%\system32\drivers\etc\hosts) 加入 127.0.0.1 localhost。

開放議題與未來改善方向 (官方 TODO)

  • 單執行緒 MYSQL.DLL 嵌入式伺服器。
  • 啟動/關機圖示與註冊表管理工具。
  • 服務註冊時支援命令列預設參數 (現靠 my.cnf)。
  • 筆電休眠喚醒後 mysqld 拒絕新連線問題。
  • 支援從工作管理器 kill mysqld。
  • 移植 readline 至 Win32 命令列客戶端。
  • 標準 GUI 管理工具 (mysql, mysqladmin, mysqldump)。
  • 可中斷 socket 讀寫,支援 mysqladmin kill。
  • Windows 內部通訊協定取代 TCP/IP/Socket。
  • 以 DLL 實作 UDF。
  • 使用 Win32 Interlocked 操作加速執行緒安全計數器。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved