這是歷史版本頁面 — 看 MySQL (32-bit) 最新版本
裝了 MySQL 之後不知道怎麼開始?它能做什麼、該不該用
你剛把 MySQL 裝好,打開黑色的命令提示字元視窗,輸入指令後卻不確定下一步要做什麼。或者你正在架一個網站、寫一支小程式,需要一個地方存放資料,聽別人說「用 MySQL 就好」,但你真的打開它之後,才發現跟想像中完全不一樣——沒有漂亮的視窗介面,只有一行一行的文字指令,你甚至不知道該從哪個指令開始。
一般人遇到這種狀況,直覺是去裝一個圖形介面工具,或是上網找教學影片。但問題往往不是「不會操作」,而是「不確定 MySQL 到底能幫你做到什麼程度」。它不像一般應用程式打開就能用,它是一套資料庫伺服器,需要你先理解「資料庫」的概念,才知道怎麼讓它為你工作。這類工具的核心切入點,是讓你把資料有結構地存起來、隨時查得回來,而不是像 Excel 那樣手動管理。
01MySQL 到底是做什麼用的?
它是一套關聯式資料庫管理系統,用來存放、管理、查詢資料。你可以把它想成一個「有結構的倉庫」——先把資料依照表格、欄位、關聯的方式規劃好,之後用 SQL 指令把資料寫進去或讀出來。網站會員資料、訂單紀錄、文章內容,這類需要頻繁讀寫的資料,都適合交給它處理。
02這套軟體一定要用指令操作嗎?
它本身主要透過命令提示字元操作,沒有內建圖形介面。但官方文件提到,可以搭配 phpMyAdmin、MySQL Workbench、Navicat 這些第三方工具,用滑鼠點一點就能建立表格、執行查詢、看效能狀態。如果你不習慣打指令,裝一個圖形工具會比較好上手。
03我原本用別的資料庫,可以把資料搬過來嗎?
官方說明指出,它提供工具和公用程式,可以從 Oracle、SQL Server、PostgreSQL 這些其他資料庫系統遷移過來。不過實際遷移的過程會牽涉到資料型別轉換、編碼設定等細節,建議先找官方文件確認支援的版本和步驟,再動手轉移。
04它支援寫入複雜的邏輯嗎?例如自動計算或觸發事件?
支援。官方文件明確列出它支援預存程序、觸發器和函數,意思是你可以把一段常用的 SQL 邏輯存起來重複呼叫,也可以在特定事件發生時自動執行某段程式。這對需要自動化處理資料的應用程式來說,是很常用的功能。
05資料放進去之後,要怎麼防止別人亂看?
它提供使用者認證、存取控制和加密機制。你可以建立不同的使用者帳號,分別設定他們能看哪些資料庫、能執行哪些操作,也可以啟用加密來保護傳輸中的資料。不過這些都需要你自己去設定,預設狀態下並不會自動幫你做好完整的權限控管。
06我完全沒寫過程式,適合用這套軟體嗎?
官方文件提到,要有效使用 MySQL,需要具備 SQL 語言的基本概念。如果你完全沒有接觸過資料庫,直接從指令開始會比較吃力。建議先學一點 SQL 語法,或從圖形介面工具開始操作,理解「表格、欄位、查詢」這些基本概念之後,再回來用指令會順很多。
07我只是做一個簡單的小專案,用這套會不會太重?
官方說明指出,它適合從小型應用到大規模企業系統。但如果你只是要存少量資料、不想管伺服器設定,官方文件也提到 SQLite 這類「免伺服器」的資料庫,特色是簡單、可攜、零設定。如果你的專案不需要多人同時連線、不需要複雜查詢,SQLite 可能更省事。
08這套軟體是免費的嗎?有沒有什麼限制?
它分為 Community Edition(免費、開放原始碼)和 Enterprise Edition(付費訂閱)。免費版功能已經很完整,但官方文件提到,進階功能像是即時分析、企業級技術支援,只有在付費的 Enterprise Edition 才有。如果你需要的是基本儲存和查詢,免費版通常夠用。
09我習慣用圖形介面,這套軟體有中文介面嗎?
它的介面語言是英文,而且主要操作介面是命令列。官方文件提到的第三方工具,像是 phpMyAdmin、MySQL Workbench,是否有中文介面需要另外確認。如果你很依賴中文介面,可能要考慮其他有提供在地化語言的資料庫工具,或先試用看看英文介面能不能接受。
10這套軟體在 Windows 上跑得順嗎?
官方說明指出,它支援 Windows、macOS 和 Linux,安裝過程通常是執行安裝程式、按幾個下一步。但官方文件也提醒,系統需求會依作業系統和版本而異,需要足夠的磁碟空間、記憶體和處理器效能。如果你的電腦規格比較舊,建議先確認官方列出的需求再安裝。
11我聽說 MySQL 很容易被駭,是真的嗎?
官方文件強調它提供多種驗證機制和加密選項來保護資料,但安全性很大程度取決於你怎麼設定。預設安裝完成後,如果你沒有修改預設帳號密碼、沒有設定防火牆規則,確實會有風險。建議安裝後第一件事就是設定強密碼、建立專用帳號,並關閉不需要的網路連線。
12這套軟體和 SQL Server Express 比起來,哪個比較適合我?
兩者都是免費的資料庫,但取向不同。SQL Server Express 是微軟的產品,和 Windows 環境、微軟開發工具整合較好;MySQL 則強調跨平台、支援多種程式語言。官方文件也提到,SQL Server 是 MySQL 的替代方案之一。如果你主要用微軟生態系,SQL Server Express 可能比較順;如果你需要跨平台或搭配開源技術,MySQL 會是常見選擇。
下載與官方連結
mysql-5.6.36-win32.msi · 32.09 MB · 連結指向軟體原廠
版本紀錄
- 2026-08-04 MySQL 8.0.46.0 566 MB
- 2026-01-20 MySQL 8.0.45.0 556 MB
- 2025-10-22 MySQL 8.0.44.0 558 MB
再看 5 筆
- 2025-07-23 MySQL 8.0.43.0 354 MB
- 2025-07-22 MySQL 8.0.42.0 354 MB
- 2025-01-21 MySQL 8.0.41.0 352 MB
- 2024-10-16 MySQL 8.0.40.0 306 MB
- 2024-07-29 MySQL 8.0.39.0 285 MB
這一版改了什麼
What's new in this version:
Compilation Notes:
- Windows builds now use the default runtime libraries (builds use the /MD flag)
- CMake support was added for compiling with Developer Studio 12.6
Configuration Notes:
- MySQL failed to compile if -DENABLE_DEBUG_SYNC=OFF AND -DWITH_DEBUG=ON were both given. The ENABLE_DEBUG_SYNC option has been removed and enabling WITH_DEBUG enables Debug Sync
Packaging Notes:
- Changes in RPM package structure require a larger set of packages to be removed to install MySQL Server cleanly
- To avoid potential race conditions, Debian packages now use the GNU install utility rather than a combination of mkdir, touch, and chown
- CMake-generated packaging for Debian/Ubuntu packages was refactored for improved maintainability. The change includes updated logic for correctly replacing native distribution packaging in Debian and Ubuntu
- Reminder: MySQL 5.6 requires the Microsoft Visual C++ 2010 Redistributable Package to run on Windows platforms. Users should make sure the package has been installed on the system before starting the server. The package is available at the Microsoft Download Center
Security Notes:
- The linked OpenSSL library for the MySQL Commercial Server has been updated to version 1.0.2k. For a description of issues fixed in this version,
- This change does not affect the Oracle-produced MySQL Community build of MySQL Server, which uses the yaSSL library instead
- The mysql_options() C API function now supports a MYSQL_OPT_SSL_MODE option. The only permitted option value is SSL_MODE_REQUIRED, to require a secure connection to the server. It causes mysql_real_connect() to fail if an encrypted connection cannot be obtained, without falling back to an unencrypted connection. Thus, mysql_real_connect() returns an error if the server does not support SSL or the client is not configured to use SSL. The client/server exchange terminates immediately after the initial server packet has been received if the server indicates that it does not support SSL
- To require an encrypted connection in MySQL 5.6, the standard MySQL client programs call mysql_options() to set MYSQL_OPT_SSL_MODE if the --ssl-mode=REQUIRED command-line option was specified. Third-party applications that must be able to require encrypted connections can use the same technique. For details, see mysql_ssl_set()
- The minor C API version number was not incremented for this change. Application programs compiled for MySQL 5.6 that require MYSQL_OPT_SSL_MODE may fail to operate properly if the dynamic loader provides an older client library without MYSQL_OPT_SSL_MODE. Such applications must be written to handle this possibility by checking whether the mysql_options() call succeeds or fails
Thread Pool Notes:
- To improve thread_pool plugin performance, connection authentication and initialization have been moved from the acceptor thread to the thread pool worker threads that handle client connections. This enables the acceptor thread to handle new connections at a higher rate with reduced latency. The INFORMATION_SCHEMA TP_THREAD_GROUP_STATE table now contains a CONNECT_THREAD_COUNT column that indicates the number of threads that are processing or waiting to process connection initialization and authentication. There can be a maximum of four connection threads per thread group; these threads expire after a period of inactivity.
Functionality Added or Changed:
- Replication: When a negative or fractional timeout parameter was supplied to WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(), the server behaved in unexpected ways. With this fix: A fractional timeout value is read as-is, with no round-off. A negative timeout value is rejected with an error if the server is on a strict SQL mode; if the server is not on a strict SQL mode, the value makes the function return NULL immediately without any waiting and then issue a warning
- The performance of UTF-8 binary collations was improved
- Consistency and maintainability of Debian/Ubuntu packaging maintainer scripts was improved
- mysql_secure_installation is more strict about what it considers valid yes and no responses
Bugs Fixed:
- InnoDB: The restriction that required the first undo tablespace to use space ID 1 was removed. The first undo tablespace may now be assigned a space ID other than 1. Space ID values for undo tablespaces are still assigned in a consecutive sequence
- InnoDB: Compiling the server without the Performance Schema caused a build failure
- InnoDB: The file handle type name for InnoDB file I/O Performance Schema instrumentation was changed from os_pfs_file_t to pfs_os_file_t
- InnoDB: A server exit on restart was caused by missing my_thread_init() and my_thread_exit() functions for background threads that initialize the st_my_thread_var structure
- InnoDB: A memcached read operation with a non-default read batch size configuration resulted in a server exit
- InnoDB: Performance Schema instrumentation for InnoDB file I/O was disabled on Windows
- InnoDB: The row_search_mvcc() function unnecessarily traversed the entire table for a range query, which occurred when the record was not in the transaction read view
- Replication: When using a multi-threaded slave (slave_parallel_workers greater than 0) the value of Seconds_Behind_Master was incorrect when rotating a relay log
- mysqldump failed to properly quote certain identifiers in SQL statements written to the dump output
- Client preauthorization by the server was missing a length check for a length-encoded string
- For Debian/Ubuntu packages, user-defined collation files could be overwritten during MySQL upgrades. Charset files are now marked as conffiles so that user customizations generate a prompt during upgrades whether to overwrite them
- For CREATE TABLE statements that specified the table name with a database qualifier and included a DATA DIRECTORY or INDEX DIRECTORY option, an error occurred if there was no default database
- Starting the server with performance_schema_digests_size=1 caused an abnormal exit
- mysqld_safe did not check whether the directory named by the --basedir option existed
- mysqld_safe failed if the error log file named by the --log-error option was a FIFO
- mysqld_safe could fail if the --datadir option value ended with a / character
- A recent change to mysqld_safe caused the mysql.server script to be unable to start it if the base directory was specified as an absolute path that differed from the compiled-in default absolute path
- The fix for Bug #78777 had different effects depending on whether the Performance Schema is enabled
- The connection_control plugin failed to compile if the Performance Schema was disabled
- For System V init scripts for RPMs, the [mysqld] option-file section was being ignored for some options, such as pid-file
- Init scripts failed to launch mysqld_safe if a non-default base directory was used
- mysqld_safe --no-defaults did not work (inadvertent consequence of an earlier bug fix)
- Semicolon (;) characters within or between statements could cause distinct digests to be generated from identical statements
- For a client linked against libmysqlclient, invalid memory access could occur during use of prepared statements
- The fix for Bug #25088048 caused the command used by mysqld_safe to start the MySQL server to no longer include the mysqld path
- Executing a stored procedure containing a query that accessed a view could allocate memory that was not freed until the session ended
- A query could produce incorrect results if the WHERE clause contained a dependent subquery, the table had a secondary index on the columns in the select list followed by the columns in the subquery, and GROUP BY or DISTINCT permitted the query to use a Loose Index Scan
- Creation of a MyISAM temporary table during query processing could fail if the key length in the query was greater than the maximum MyISAM key length, resulting in a server exit
- The DebugPrintTest and DebugPrintDeathTest unit tests did not handle divide-by-zero testing properly on the Aarch64 platform. Thanks to Alexey Kopytov for the patch
- Changes made to mysqld_safe in recent MySQL releases require the --ledir, --mysqld, --mysqld-version options to be specified on the command line; they can no longer be specified in option files. This could cause failure of init scripts that invoke mysqld_safe. Such scripts now pass the value of the MYSQLD_OPTS environment variable as the first command-line argument to mysqld_safe, with the value set to such command line-only mysqld_safe option values as may be required. On platforms that use /etc/sysconfig/mysqld, the MYSQLD_OPTS value can be set in that file with a line such as this: MYSQLD_OPTS=" --ledir=/mysqld_ledir --mysqld=my_wrapper "
- The value of MYSQLD_OPTS can also include mysqld options for mysqld_safe to pass to mysqld
- For LOAD DATA used to insert data into an updateable view, the check to verify whether a column is actually updatable was missing
- On Debian/Ubuntu platforms, the systemd startup script for MySQL ignored datadir settings in /etc/mysql/my.cnf
- A regular expression pattern match into a large string could result in a server exit due to memory allocation failure or integer overflow
- An incorrect error was reported for CREATE TABLE statements with a large value for the CONNECTION table option. The value is now limited to 1024 bytes
- MySQL now uses readdir() rather than readdir_r(). The latter has been deprecated since glibc 2.24 and caused debug builds of MySQL and builds using GCC 6.1 to fail
- Additionally, several problems resulting in GCC 6.1 compiler warnings were corrected
- The -DWITH_EDITLINE=system CMake option failed with recent versions of the editline library
- Grant tables with incorrect structure may cause problems in user management operations. As a consequence of the fix for this, for any operation that modifies a grant table, the server now checks whether the table has the expected structure and produces an error if not. mysql_upgrade must be run to update the tables to the expected structure
- The QUOTE() function could allocate excessive memory. A limit of max_allowed_packet bytes is now imposed and returns NULL with a warning for attempts to allocate more
- When attempting to locate the data directory, mysqld_safe incorrectly considered $MY_BASEDIR_VERSION/var as one of the possible locations
- The main.log_tables-big test case could be unstable on highly loaded hosts. Thanks to Laurynas Biveinis for the patch
- Queries that used an aggregate function with DISTINCT could produce incorrect results
- With the use_index_extensions flag of the optimizer_switch system variable disabled, some SELECT DISTINCT queries could return incorrect results
- Debian packages were missing an AppArmor-related include file and incorrectly were marked dependent on AppArmor (making it impossible to disable AppArmor by uninstalling it)
- In a replication environment, SET PASSWORD or ALTER USER could fail to execute on the slave due to failure to parse the hash string correctly
- On non-Linux Unix systems, the mysql.server startup script used the Linux command pidof rather than pgrep
- Starting multiple instances of mysqld_safe after an abnormal server exit could result in one mysqld_safe instance killing another. As a consequence of the bug fix, the mysqld_safe.pid file is no longer used
- The --help message for mysqld_safe was corrected to mention that the --no-defaults, --defaults-file, and --defaults-extra-file options, if given, must be the first argument
- The bounds check for the XML parser position stack for each level (which has a fixed depth) used the size of the array as the upper limit, and so was off by one. This is fixed by decreasing the allowable depth by one, which actually matches the maximum number of elements in the position stack
- Timestamps for server-side prepared statements could be written to the binary log up to a second behind timestamps for the corresponding nonprepared statements, leading to time value differences between master and slave servers