MySQL

本條目存在以下問題，請協助改善本條目或在討論頁針對議題發表看法。

此條目使用外部链接的方式可能不符合维基百科的方针或指引，或致使內文成為链接農場。 (2023年4月14日)
請協助清理過度與不適當的外部連結，并将有用的链接移到参考文献中。详情请参见条目的讨论页。

|

此條目可能包含原创研究。 (2023年4月14日)
请协助補充参考资料、添加相关内联标签和删除原创研究内容以改善这篇条目。详细情况请参见讨论页。

|

MySQL

默认MySQL命令行横幅和提示的畫面截图

原作者| MySQL AB
開發者| 甲骨文公司
首次发布| 1995年5月23日，​30年前​（1995-05-23）
当前版本|

* 8.0.38（2024年7月1日；維護版本）[1]
* 9.3.0（2025年4月15日；穩定版本）[2]

源代码库|

* github.com/mysql/mysql-server

编程语言| C语言、C++[3]
操作系统| Linux、Solaris、macOS、Windows、
FreeBSD[4]
语言| 英语
类型| RDBMS
许可协议| GNU通用公共许可证（第2版）
专有软件[5]
网站| www.mysql.com/
LAMP software bundle (here additionally with Squid).

MySQL（官方發音為/maɪ ˌɛskjuːˈɛl/“My S-Q-L”[6]，但也经常被读作/maɪ ˈsiːkwəl/“My Sequel”）原本是一個開放源碼的關聯式資料庫管理系統，原開發者為瑞典的MySQL AB公司，该公司于2008年被昇陽微系統（Sun Microsystems）收购。2009年，甲骨文公司（Oracle）收购昇陽微系統公司，MySQL成为Oracle旗下产品。

MySQL在過去由于性能高、成本低、可靠性好，已经成为最流行的开源数据库，因此被廣泛地應用在Internet上的中小型網站中。随着MySQL的不断成熟，它也逐渐用于更多大规模网站和应用，比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。

但被甲骨文公司收購後，Oracle大幅調漲MySQL商業版的售價，且甲骨文公司不再支持另一個自由軟體專案OpenSolaris的發展，因此導致自由軟體社群們對於Oracle是否還會持續支援MySQL社群版（MySQL之中唯一的免費版本）有所隱憂，MySQL的創始人麥克爾·維德紐斯以MySQL為基礎，成立分支計劃MariaDB。而原先一些使用MySQL的開源軟體逐漸轉向MariaDB或其它的資料庫。例如维基百科已于2013年正式宣布将从MySQL迁移到MariaDB数据库[7]。

MySQL的许可证现在分为免费的社区版与收费的标准版、企业版等[8]。一般说来，如果在非开源项目中发布了MySQL，或者需要Oracle公司提供对MySQL的技术支持，或者使用MySQL的一些企业版工具或插件，或者修改MySQL源代码并作为闭源的软件等等情形，需要购买商业版本。如果只是安装并使用MySQL，甚至修改并使用MySQL，无论是否收费；或者软件中不包含MySQL，软件的用户自行安装MySQL；或者使用GPL协议的开源软件产品中包含了MySQL，这些情形可能使用社区版MySQL。

## 歷史

[编辑]

* 2008年1月16日，Sun（昇陽電腦）正式收購MySQL。[9]
* 2009年4月20日，甲骨文公司宣布以每股9.50美元，74億美元的總額收購Sun電腦公司。[10]
* 2013年6月18日，甲骨文公司修改MySQL授权协议，移除了GNU通用公共许可证。[11]但随后有消息称这是一个程序错误。[12]

## 特性

[编辑]

* 使用C和C++編寫，並使用了多種編譯器進行測試，保證原始碼的可移植性。
* 支持AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell NetWare、NetBSD、OpenBSD、OS/2 Wrap、Solaris、Windows等多種作業系統。
* 為多種编程語言提供了API。這些編程語言包括C、C++、C#、VB.NET、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
* 支持多线程，充分利用CPU資源，支持多用戶。
* 优化的SQL查詢算法，有效地提高查詢速度。
* 既能夠作為一個單獨的應用程式在客戶端伺服器網絡環境中執行，也能夠作為一個程式庫而嵌入到其他的軟件中。
* 提供多語言支持，常見的編碼如中文的GB 2312、BIG5，日文的Shift JIS等都可以用作数据表名和数据列名。
* 提供TCP/IP、ODBC和JDBC等多種數據庫連接途徑。
* 提供用於管理、檢查、優化數據庫操作的管理工具。
* 可以處理擁有上千萬條記錄的大型數據庫。

## 應用

[编辑]

與其他的大型數據庫例如Oracle、IBM DB2、MS SQL等相比，MySQL自有它的不足之處，如規模小、功能有限等，但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說，MySQL提供的功能已經綽綽有餘，而且由於MySQL是開放源碼軟件，因此可以大大降低總體擁有成本。

2010年以前Internet上流行的網站構架方式是LAMP（Linux Apache MySQL PHP），即是用Linux作為作業系統，Apache作為Web服务器，MySQL作為數據庫，PHP（部分網站也使用Perl或Python）作為服务器端腳本解釋器。由於這四個軟件都是開放源碼軟件，因此使用這種方式可以以較低的成本建立起一個穩定、免費的網站系統。MySQL加PHP的配對在互聯網上的應用相比LAMP來說更為常見，並獲得了「動態配對」（Dynamic Duo）的雅號，大部分Blog網站基於的WordPress系統主要運用MySQL加PHP的配對。除了LAMP之外，用於Solaris、Windows和Mac上的網站構架也分別被稱為SAMP、WAMP和MAMP。

維基百科所使用的Mediawiki維基引擎採用PHP語言寫成，並以MySQL作為其支援的其中一種數據庫管理系統。

## MySQL管理

[编辑]

* 可以使用命令行工具管理MySQL數據庫（命令mysql和mysqladmin），也可以從MySQL的網站下載圖形管理工具MySQL Workbench[13][14]。
* Navicat是一套專為MySQL設計的強大資料庫管理及開發工具。它可以用於任何版本的MySQL資料庫，並支援大部份MySQL的功能，包括觸發器、索引、檢視等。
* phpMyAdmin是由PHP寫成的MySQL資料庫系統管理程式，讓管理者可用Web介面管理MySQL資料庫。藉由此Web介面可以成為一個簡易方式輸入繁雜SQL語法的較佳途徑，尤其要處理大量資料的匯入及匯出更為方便。其中一個更大的優勢在於由於phpMyAdmin跟其他PHP程式一樣在網頁伺服器上執行，但是您可以在任何地方使用這些程式產生的HTML頁面，也就是於遠端管理你的MySQL資料庫。使用phpMyAdmin您就可以方便的建立、修改、刪除資料庫及資料表。
* phpMyBackupPro[15]也是由PHP寫成的，可以透過Web介面創建和管理數據庫。它可以創建偽cronjobs，可以用來自動在某個時間或週期備份MySQL數據庫。

## 連接方式

[编辑]

* 應用程式可透過ODBC或ADO方式，經由使用MyODBC（页面存档备份，存于互联网档案馆）與MySQL資料庫連接。
* MS .Net Framework下的程式（例如：C#、VB.NET）可透過ADO.NET的方式，經由使用MySQL.Net（页面存档备份，存于互联网档案馆）與MySQL資料庫連接。
* C/C++可使用MySQL++（页面存档备份，存于互联网档案馆）或是直接使用MySQL內建API與MySQL資料庫連接。
* PHP可透過PHP的MySQLi與MySQL資料庫連接，具備比MySQL模組（页面存档备份，存于互联网档案馆）更好的效能。另外PHP6可使用mysqlnd與MySQL資料庫連接。[1]（页面存档备份，存于互联网档案馆）
* JAVA程序可通过JDBC方式与MySQL进行连接，MySQL官方提供了JDBC驱动程序。
* 可通过MySQL客户端软件与MySQL进行连接，如mysqlfront、mysqlyog、mysqlbrowser等。
* JavaScript可以通过使用fibjs的内置mysql模块[2]（页面存档备份，存于互联网档案馆）与MySQL数据库连接

## 衍生版本

[编辑]

衍生版本有Drizzle、MariaDB、Percona Server及OurDelta等。

## 参考文献

[编辑]

1. ^ Changes in MySQL 8.0.38 (2024-07-01, General Availability). 2024年7月1日  [2024年7月1日].
2. ^ Changes in MySQL 9.3.0 (2025-04-15, Innovation Release). 2025年4月15日  [2025年4月15日].
3. ^ MySQL: Project Summary. Ohloh. Black Duck Software.  [2012-09-17]. （原始内容存档于2012-07-07）.
4. ^ Supported Platforms: MySQL Database. Oracle.  [2014-03-24]. （原始内容存档于2014-03-23）.
5. ^ Downloads. MySQL.  [2014-08-03]. （原始内容存档于2014-08-03）.
6. ^ What is MySQL?. MySQL 5.1 Reference Manual. Oracle.  [2012-09-17]. （原始内容存档于2014-03-27）. "The official way to pronounce“MySQL”is“My Ess Que Ell” (not“my sequel”)"
7. ^ Feldman, Asher. Wikipedia Adopts MariaDB. Diff. 2013-04-22  [2025-01-22]. （原始内容存档于2018-12-08） （美国英语）.
8. ^ MySQL Commercial License for OEMs, ISVs and VARs.  [2021-03-24]. （原始内容存档于2021-05-04）.
9. ^ Sun to Acquire MySQL. MySQL.  [2009-12-05]. （原始内容存档于2011-07-18）.
10. ^ 甲骨文收购Sun（昇陽電腦） [永久失效連結]
11. ^ MySQL man pages silently relicensed away from GPL. The MariaDB Blog. 2013-06-18  [2013-06-19]. （原始内容存档于2013-06-18）.
12. ^ MySQL Bugs: #69512: Wrong license in man pages in Community Server:. mysql.com. 2013-06-20  [2013-06-20]. （原始内容存档于2013-06-24）.
13. ^ MySQL Workbench.  [2010-01-22]. （原始内容存档于2010-01-21）.
14. ^ MySQL :: MySQL Product Support EOL Announcements. www.mysql.com.  [2025-01-22]. （原始内容存档于2025-01-30）.
15. ^ phpMyBackupPro.  [2005-10-07]. （原始内容存档于2005-09-13）.

## 外部連結

[编辑]

维基共享资源上的相关多媒体资源：MySQL

* 官方网站
* MySQL開發者主頁
* MySQL Weblogs（页面存档备份，存于互联网档案馆）
* MySQL社區
* 中国MySQL社區
* CentOS7下安装MySQL（页面存档备份，存于互联网档案馆）

* 查
* 论
* 编

MySQL

版本|

* MySQL
* MySQL Enterprise（英语：MySQL Enterprise）
* MySQL Cluster（英语：MySQL Cluster）

MySQL工具|

* MySQL Workbench
* SQLyog（英语：SQLyog）
* phpMyAdmin
* HeidiSQL
* Navicat
* DBeaver

存儲引擎|

* MyISAM
* Falcon
* InnoDB
* MySQL Federated（英语：MySQL Federated）
* MySQL Archive（英语：MySQL Archive）
* Aria（英语：Aria (storage engine)）

分支|

* Drizzle（英语：Drizzle (database server)）
* MariaDB
* Percona Server（英语：Percona Server）
* WebScaleSQL（英语：WebScaleSQL）

* 查
* 论
* 编

甲骨文公司

軟體|

Solaris/OpenSolaris • StarOffice /Apache OpenOffice • Java Desktop System • Java （Java • Java虚拟机 • Java平臺） • JES（英语：Java Enterprise System） • GlassFish • 网络文件系统 • JavaFX • NetBeans • Oracle Grid Engine • VirtualBox • MySQL • Sun Studio• more...

硬體|

SPARCstation（英语：SPARCstation） • Sun Ultra series（英语：Sun Ultra series） • Sun Enterprise • Sun Blade（英语：Sun Blade） • Sun Fire（英语：Sun Fire） • SPARC Enterprise（英语：SPARC Enterprise） • UltraSPARC T1 • UltraSPARC T2 • SPARC • JavaStation • Sun Ray • Project Blackbox（英语：Project Blackbox） • Sun Grid（英语：Sun Grid）

教育與認證|

SCPs • SCJP • SCJA • 甲骨文公司认证项目 • 知名的昇陽電腦員工

* 查
* 论
* 编

数据库管理系统（DBMS）

概念|

* 数据库
* 理論
* 数据模型
* 数据库存储结构（英语：Database storage structures）
* 关系 (数据库)
* 关系模型
* 分布式数据库
* ACID
* 原子性（英语：Atomicity (database systems)）
* 一致性
* 隔離性
* 持久性
* Null值
* 数据库规范化
* 數據庫完整性
* 實體完整性
* 參照完整性
* 关系数据库管理系统
* 主键
* 外键
* 代理键
* 超键
* 候选键
* 事务处理
* 增刪查改

数据库组件|

* 触发器
* 视图
* 数据库表
* 列
* 行
* 指标
* 事务日志（英语：Transaction log）
* 数据库事务
* Savepoint
* 并发控制
* 乐观锁
* 悲观锁
* 数据库索引
* 存储程序
* 資料庫分割（英语：Partition (database)）

SQL|

| 分类|

* 数据查询语言（DQL）
* 資料定義語言（DDL）
* 資料操縱語言（DML）
* 資料控制語言（DCL）

|

指令|

* SELECT
* INSERT
* UPDATE
* MERGE
* DELETE
* JOIN
* UNION
* CREATE
* DROP
* Begin work
* COMMIT
* ROLLBACK
* TRUNCATE
* ALTER

安全|

* SQL注入
* 參數化查詢

实现|

| 类型|

* 关系数据库
* 面向文檔的數據庫
* 平面文件数据库
* Deductive（英语：Deductive database）
* 維度化資料庫
* 階層式
* 图数据库
* NoSQL
* NewSQL
* 物件資料庫
* 物件關聯式資料庫（英语：Object-relational database）
* Temporal
* XML資料庫（英语：XML database）

|

数据库产品|

* 对象型
* 对比
* 关系型
* 对比

数据库组件|

* 数据查询语言
* 查詢最佳化器（英语：Query optimizer）
* 查詢計畫（英语：Query plan）
* 嵌入式SQL
* ORM
* LINQ
* 数据访问层
* ODBC
* OLE DB
* ADO
* ADO.NET
* JDBC
* PDO

规范控制数据库

国际|

* FAST

各地|

* 德国
* 捷克

*[查]: 查看该模板
*[论]: 讨论该模板
*[编]: 编辑该模板