不同驅動、不同版本的 MySQL 連接字串參數差異極大,本文彙整最常用 4 大驅動體系。
| 版本 | 驅動名稱 | 本地連線 | 遠端連線 |
|---|---|---|---|
| 2.50 | {MySQL} | Driver={MySQL};Server=localhost;Option=16834;Database=db; | Driver={MySQL};Server=host;Option=131072;Database=db;User=u;Password=p; |
| 3.51 | {MySQL ODBC 3.51 Driver} | Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=db;User=u;Password=p;Option=3; | Driver={MySQL ODBC 3.51 Driver};Server=host;Database=db;User=u;Password=p;Option=3; |
| 5.x/8.x | {MySQL ODBC 8.0 Unicode Driver} | Driver={MySQL ODBC 8.0 Unicode Driver};Server=localhost;Database=db;UID=u;PWD=p;Charset=utf8mb4; | Driver={MySQL ODBC 8.0 Unicode Driver};Server=host;Port=3306;Database=db;UID=u;PWD=p;Charset=utf8mb4; |
Provider=MySQLProv;Data Source=mydb;User Id=u;Password=p;
| 場景 | 連接字串 |
|---|---|
| 標準 | Server=host;Database=db;Uid=u;Pwd=p; |
| 指定 Port | Server=host;Port=3306;Database=db;Uid=u;Pwd=p; |
| Named Pipe (Windows) | Server=host;Port=-1;Database=db;Uid=u;Pwd=p; |
| 多主機故障轉移 | Server=host1&host2;Database=db;Uid=u;Pwd=p; |
| SSL 加密 | Server=host;Database=db;Uid=u;Pwd=p;SslMode=Required; |
| Command Timeout | Server=host;Database=db;Uid=u;Pwd=p;Default Command Timeout=20; |
| Connection Timeout | Server=host;Database=db;Uid=u;Pwd=p;Connection Timeout=5; |
| 忽略 Prepare | Server=host;Database=db;Uid=u;Pwd=p;Ignore Prepare=true; |
| 指定 Charset | Server=host;Database=db;Uid=u;Pwd=p;Charset=utf8mb4; |
| Protocol 指定 | Server=host;Database=db;Uid=u;Pwd=p;Protocol=socket|tcp|pipe|memory; |
| Shared Memory Name | Server=host;Database=db;Uid=u;Pwd=p;Protocol=memory;Shared Memory Name=MySQL; |
Location=host;Data Source=db;User ID=u;Password=p;Port=3306;User ID=u;Password=p;Host=host;Port=3306;Database=db;Direct=true;Protocol=TCP;Compress=false;Pooling=true;Min Pool Size=0;Max Pool Size=100;Host=host;UserName=u;Password=p;Database=db;Data Source=host;Database=db;User ID=u;Password=p;Command Logging=false;| 功能 | ODBC | Connector/NET | JDBC |
|---|---|---|---|
| 字元集 | Charset=utf8mb4 | Charset=utf8mb4 | characterEncoding=utf8 |
| SSL | SslMode=Required | SslMode=Required | useSSL=true |
| 連線池 | Option=3 (啟用) | Pooling=true (預設) | autoReconnect=true |
| 逾時 | Connection Timeout | Connection Timeout / Default Command Timeout | connectTimeout / socketTimeout |
建議:**新專案統一用 Connector/NET 8.0+ 或 JDBC 8.0+**,ODBC 僅供舊系統維護。