The world`s most popular open-source relational database management system

MySQL

MySQL

  -  304 MB  -  Open Source
  • Latest Version

    MySQL 8.0.38.0 LATEST

  • Review by

    Daniel Leblanc

  • Operating System

    Windows 7 64 / Windows 8 64 / Windows 10 64 / Windows 11

  • User Rating

    Click to vote
  • Author / Product

    Oracle / External Link

  • Filename

    mysql-installer-community-8.0.38.0.msi

MySQL is an open-source, community-driven RDBMS that provides a robust and scalable platform for storing, managing, and retrieving data. It is widely recognized for its speed, reliability, and ease of use, making it an ideal choice for both small-scale applications and large-scale enterprise systems.

Developed by Oracle Corporation, MySQL Community Server offers a comprehensive suite of tools and features, enabling developers to build dynamic and data-driven applications with ease.

Key Features

Scalability
It can handle large volumes of data and scale effortlessly to accommodate growing demands.

Performance
With its optimized query execution and indexing techniques, it ensures speedy data retrieval and processing.

Security
It offers various authentication mechanisms and encryption options to safeguard sensitive data.

High Availability
It supports replication and clustering, allowing for redundancy and ensuring continuous data availability.

Flexibility
MySQL is compatible with various operating systems and supports multiple programming languages, making it highly versatile.

User Interface

MySQL Database Server primarily operates through a command-line interface (CLI), making it suitable for experienced users and developers. However, several third-party tools provide graphical user interfaces (GUI) that simplify database management tasks, such as creating tables, executing queries, and monitoring performance. Some popular GUI options include phpMyAdmin, MySQL Workbench, and Navicat.

Installation and Setup

It offers installation packages for major operating systems like Windows, macOS, and Linux. The installation process is straightforward, typically involving running the installer and following a few prompts. During setup, users can configure database settings, define access privileges, and specify storage options. Additionally, it can be installed as part of a web development stack, such as XAMPP or WAMP, for a comprehensive development environment.

How to Use

To utilize MySQL effectively, users should have a basic understanding of SQL (Structured Query Language) and the principles of database management. It provides a rich set of SQL commands for creating, retrieving, updating, and deleting data. Developers can integrate MySQL with their programming languages of choice using dedicated connectors and libraries, such as MySQL Connector/J for Java or MySQL Connector/Python for Python. Extensive documentation and online resources are available to help users learn and master MySQL's functionalities.

FAQ

Q: Can I migrate my existing database to MySQL Community Server?
A: Yes, it provides tools and utilities for migrating databases from other RDBMSs like Oracle, SQL Server, and PostgreSQL.

Q: Is MySQL suitable for large-scale applications?
A: Absolutely! MySQL's scalability and performance make it an excellent choice for managing data in enterprise-level applications.

Q: Are there any limitations in the free, open-source version of MySQL?
A: The open-source version of the server offers extensive features, but for advanced functionalities like real-time analytics and enterprise-grade support, users may consider MySQL Enterprise Edition, which requires a subscription.

Q: Can I secure my MySQL databases against unauthorized access?
A: Yes, it provides robust security features, including user authentication, access control, and encryption mechanisms, to protect your data from unauthorized access.

Q: Does MySQL support stored procedures and triggers?
A: Yes, it supports stored procedures, triggers, and functions, allowing developers to execute complex operations and automate tasks within the database.

Alternatives

While MySQL Database Server is a dominant force in the RDBMS market, there are alternative options available, each with its unique features and strengths. Some notable alternatives to the app include:

Microsoft SQL Server: Targeting the Windows platform, SQL Server offers robust enterprise-level features, seamless integration with Microsoft products, and excellent scalability.

PostgreSQL: Known for its focus on standards compliance and advanced features, PostgreSQL is a powerful open-source DBMS suitable for complex data scenarios.

Oracle Database: As a commercial RDBMS, Oracle Database offers high performance, advanced security, and extensive management tools, making it suitable for large-scale enterprise applications.

SQLite: Ideal for lightweight applications, SQLite is a serverless DBMS that excels in simplicity, portability, and zero-configuration deployment.

Pricing

MySQL is available in two main editions: Community Edition (free and open-source) and Enterprise Edition (commercial, with additional features and support). The Community Edition is a popular choice for most users, while the Enterprise Edition requires a subscription and offers advanced functionalities tailored for enterprise-level applications.

Furthermore, they also offer these products:
System Requirements

MySQL's system requirements vary based on the operating system and version being used. Generally, it supports major platforms like Windows, macOS, and various Linux distributions. Adequate disk space, memory, and processing power are necessary, depending on the size and complexity of the database.

PROS
  • Open-source and free Community Server Edition
  • High performance and scalability
  • Robust security features
  • Extensive documentation and active community support
  • Compatibility with various programming languages
CONS
  • Command-line interface can be daunting for beginners
  • Some advanced features limited to the Enterprise Edition
  • Complex setups may require additional configurations and optimizations
Conclusion

MySQL Community Server stands as a reliable, feature-rich RDBMS that has earned its reputation as a go-to solution for managing relational databases. Its speed, scalability, and versatility make it suitable for a wide range of applications, from small projects to enterprise-level systems.

While the command-line interface might pose a slight learning curve for beginners, the availability of GUI tools simplifies the database management process. With a vast community and extensive documentation, it continues to thrive as an essential tool in the software development ecosystem. Whether you're a developer, data analyst, or business owner, MySQL empowers you to efficiently organize and access your data, contributing to the success of your projects and initiatives.

Also Available: MySQL for Mac

  • MySQL 8.0.38.0 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    MySQL 8.0.38.0 Screenshot 1
  • MySQL 8.0.38.0 Screenshot 2
  • MySQL 8.0.38.0 Screenshot 3
  • MySQL 8.0.38.0 Screenshot 4
  • MySQL 8.0.38.0 Screenshot 5

What's new in this version:

C API Notes:
- C API applications stalled while receiving results for server side prepared statements

Compilation Notes:
- Upgraded the bundled googletest and googlemock sources to version 1.14.0
- Added a missing dependency on GenError
- It is now possible on Linux systems to build MySQL using a bundled tcmalloc library that is provided with the source by specifying -DWITH_TCMALLOC=BUNDLED. This is supported on Linux only
- Linux aarch64 platform binaries are now built using patchelf --page-size=65536 for compatibility with systems using either 4k or 64k for the page size

Data Dictionary Notes:
- Attempting to upgrade a MyISAM table containing a mix of regular columns and generated columns from MySQL 5.7 to 8.0 or later led to table corruption

Fixed:
- InnoDB: MySQL unexpectedly halted on an UPDATE after an ALTER TABLE operation
- References: This issue is a regression of: Bug #35183686.
- InnoDB: The log index size calculation now accounts for column order changes
- References: This issue is a regression of: Bug #35183686.
- InnoDB: File system operations performed by InnoDB now consistently fsync the parent directory when performing directory altering tasks
- InnoDB: In debug builds, setting the innodb_interpreter_output debug variable would cause the server to unexpectedly halt. This is now a read-only variable
- InnoDB: For tables created with an index on a column that was too wide for the redundant row format (allowed before MySQL 5.7.35), an in-place upgrade silently imported the table but it was not accessible, which interfered with making backups. Now all operations that involve using the invalid index are rejected with ER_INDEX_CORRUPT until the index is dropped. An ER_IB_INDEX_PART_TOO_LONG error is also reported in the error log
- References: See also: Bug #34826861.
- InnoDB: An InnoDB assertion error referencing an invalid column index was triggered when the column index was valid
- InnoDB: With an empty XA transaction, shutting the server down after an XA START would cause the server to halt unexpectedly
- InnoDB: Shutting down the replication applier or binlog applier while processing an empty XA transaction caused the system to unexpectedly halt
- InnoDB: Removed unnecessary heap usage in the Validate_files::check() function.
- Our thanks to Huaxiong Song for the contribution
- InnoDB: If a partition table was read with innodb_parallel_read_threads=1, read performance greatly decreased from any table after 256 reads. InnoDB behaved as if it reached the maximum capacity of parallel read threads despite not using any.
- Our thanks to Ke Yu for the contribution
- InnoDB: The result from a spatial index containing a column with a spatial reference identifier (SRID) attribute was empty. In addition, using FORCE INDEX to force a covering index scan on a spatial index led to an assertion
- InnoDB: Fixed performance issues related to querying the data_lock and data_lock_waits tables when thousands of read-only transactions were present

Replication: If a source contained a stored, generated column populated by a JSON function and binlog_row_image was set to MINIMAL, any subsequent update or deletion on the underlying column failed with the following error:
- Invalid JSON text in argument 1 to function json_extract: 'The document is empty.'
- The replica attempted to re-evaluate the generated column and failed with that error because the underlying column was unavailable. As of this release, stored, generated columns are not re-evaluated when the underlying columns are unavailable
- Group Replication: Removed a memory leak from /xcom/gcs_xcom_networking.cc
- JSON: Added missing checks for error handling to NULLIF(), COALESCE(), and the shift (>>) operator
- References: See also: Bug #31358416.
- MySQL NDB ClusterJ: Running the ClusterJ test suite resulted in an error message saying a number of threads did not exist. That was due to some wrong handling of threads and connections, which was corrected by this patch
- Averages of certain numbers were not always computed correctly

The following files in strings contained incorrect license information:
- mb_wc.h
- ctype-uca.cc
- ctype-ucs2.cc
- ctype-utf8.cc
- dtoa.cc
- strxmov.cc
- strxnmov.cc
- (Bug #36506181)
- In certain unusual cases, the UpdateXML() function did not process all of its arguments correctly
- Explaining a query which used FORCE INDEX on a spatial index containing a column with SRID attributes led to an unplanned exit
- When incrementing the reference count for an expression, underlying expressions within this expression are not looked at. While removing an expression, after decrementing the reference count, even the underlying expressions were examined, which led to unintentional deletion of the underlying expressions. This issue manifested in Item_ref::real_item() as well as in an assert in sql/item.h. We fix this by not looking at the underlying expression unless the current expression contains the only remaining reference
- Under certain conditions, EXPLAIN FORMAT=JSON FOR CONNECTION sometimes led to an unplanned exit
- Under certain conditions, a race condition could result in the amount of RAM used by TABLE_HANDLES increasing to a maximum of 9GB
- Some CREATE USER statements were not handled correctly
- For a SELECT with ORDER BY and LIMIT, the optimizer first chose a full table scan with a very expensive cost, then performed another check and used the perform_order_index type of path, but this was not reflected by the cost in the optimizer plan
- All internal ACL bitmask variables are now explicitly 32 bits (uint32_t)
- It was not possible to add a functional index on FIND_IN_SET()
- Running two concurrent OPTIMIZE TABLE statements on the same table with fulltext indexes and innodb_optimize_fulltext_only enabled sometimes caused the server to exit
- It was possible for a deterministic stored function to return an incorrect result when the function used JOIN ON inside the return statement. If the query needed to be reprepared due to a table metadata caused by, for example, FLUSH TABLES between two executions, the ON clause was sometimes lost
- The PROCESSLIST_INFO column of THREADS was not updated when executing a prepared statement