How to find out mysql version via ssh. MySQL select version and how to find out the MySQL version. Video hosting review

MySQL (stands for Free Relational Database Management System) is a compact, multi-threaded database server that is fast, stable, and easy to use.

Initially developed by TcX to solve internal problems - the fastest possible processing of large databases. Internally used since 1996 on a server with more than 40 databases that contain 10,000 tables, of which more than 500 have more than 7 million rows.

Today, MySQL is developed and supported by Oracle Corporation, which acquired Sun Microsystems on January 27, 2010, after which it included MySQL in its product line. Previously (February 26, 2008), Sun Microsystems paid $1 billion to purchase MySQL AB. The product is distributed under both the GNU General Public License and its own commercial license. In addition, developers create functionality at the request of licensed users; it was thanks to this order that the replication mechanism appeared in almost the earliest versions.

MySQL is the most optimal solution for small and medium-sized applications. Server sources are compiled on many platforms. The server's capabilities are most fully demonstrated on Unix servers, where there is support for multithreading, which gives a significant increase in performance. Included in the WAMP, AppServ, LAMP servers and in portable server builds Denver, XAMPP. MySQL is typically used as a server accessed by local or remote clients, but the distribution includes a back-end library that allows MySQL to be included in standalone programs.
Thanks to its support for a huge number of table types, MySQL is quite flexible. Users can select both MyISAM full-text search tables and individual InnoDB transaction tables. In addition, MySQL comes with a special EXAMPLE table type that demonstrates how to create new table types. Thanks to this, as well as open architecture and GPL licensing, it is possible to add new table types to MySQL almost endlessly.

MySQL server is free for non-commercial use. Otherwise, you need to purchase a license, the current cost of which is 190 EUR.

Various code forks have been created by the MySQL developer community, such as Drizzle, OurDelta, Percona Server, and MariaDB. All of these branches already existed at the time of Sun's takeover by Oracle.

The emergence of MySQL

Before 1994, the market consisted primarily of databases designed to handle large volumes of data and complex relationships, which had a variety of capabilities, but at the same time required significant computing resources. These databases include Oracle, Informix and Sybase. There were no DBMSs that supported SQL and were affordable at the same time.

Large corporations and universities could afford to purchase powerful computing systems, while smaller organizations and users used weak desktop databases such as Postgres, which used a variant of the QUEL language (PostQUEL), but which, unfortunately, required the same resources. similar to its counterparts, but did not provide the benefits of using SQL as a query language.

Then a certain David Hughes (who later became, after publishing his work on the Internet, known as Bamby), who was writing a dissertation at Bond University (Australia) at that time, began developing the Minerva Network Management System project - a monitoring and control system from one or more points over group of systems. The main element of the project was to be a database to store information about all computers on the network. Hughes first decided to use Postgres. However, colleagues suggested using SQL as the query language for Minerva, since SQL is the most common query language, and by using it, Minerva could become available anywhere on the planet where there is an RDBMS that supports SQL. This was the impetus for the creation of MySQL.

Hughes decided to create a program himself that would translate SQL into PostQUEL in real time. He called his program miniSQL, or mSQL. It intercepted SQL statements sent by Minerva, converted them to PostQUEL, and sent the result to Postgres. For some time this situation suited Hughes. However, as a result of the further growth of Minerva, it became obvious that with the limited resources available to it, neither Postgres nor any other large RDBMS would be able to support the small set of characteristics that it needs. For example, in order to implement the ability to simultaneously connect Minerva to several databases at once, Postgres required the simultaneous launch of several instances of the database server.

To solve these problems, Hughes analyzed the work of Minerva, and it turned out that the main queries generated by Minerva were: “insert”, “delete” and “select”. Since Hughes already had mSQL doing the SQL translation, he only needed to create a database server to suit his needs.

And this is where Michael Monty Widenius, who is considered the inventor of MySQL, comes into play. In 1979, he developed a database management tool called UNIREG. UNIREG was subsequently expanded to support larger databases and was rewritten in several languages. In 1994, TcX began developing www applications using UNIREG. However, due to high overhead, UNIREG could not be successfully used for dynamically generating Web pages. Therefore, Widenius decided to contact the author of mSQL, Hughes, to suggest that he connect mSQL to the B+ ISAM handler in UNIREG. However, Hughes made good progress on the path to mSQL 2, and the company decided to create a database server to suit its needs.

TcX took UNIREG as a basis and used third-party utilities for mSQL, wrote an API for their system, which was initially very similar to the API for mSQL. However, this allowed any mSQL user who wanted to migrate to the TcX database server to make minor changes to their code. The source code of the new database was completely original. Thus, in May 1995, the company had a MySQL 1.0 database that fully satisfied the company's needs.

In 1995, David Oxmark, who works for Detron HB and is a business partner of the company, began actively inviting TcX to distribute the MySQL DBMS via the Internet. David even took part in working on the documentation. As a result, version 3.11.1 of the MySQL DBMS was released in 1996 as a binary distribution for running Linux and Solaris. Today, MySQL runs on many platforms and is available in both binary and source versions.

Today, MySQL has become the most popular tool for working with databases in PHP. This is primarily due to the fact that support for this server is included in the PHP distribution. In addition, the popularity of MySQL is facilitated by fairly good characteristics and a wide range of standard interface functions that are extremely easy to use.

MySQL's licensing policy is more flexible than other database servers. Essentially, MySQL is free unless you intend to sell it or sell services built with it.

MySQL is highly portable and can be used equally well on commercial operating systems such as Solaris, Irix or Windows, and on any hardware up to powerful servers. Moreover, like its more expensive rivals, it can handle large databases containing millions of records.

Name and logo

As for the name, there are several versions of its origin. The first version says that the use of the prefix “my” is explained by the fact that in TcX the base catalog, as well as a significant number of libraries and utilities, were designated by this prefix for ten years. Therefore, it was logical to use it in this case.

The second version, more sentimental, is based on the fact that Michael Monty Widenius named the new product MySQL after the name of his daughter - My. Videnius’s daughter’s name is really My, and he himself does not refute either the first or second version.

MySQL's dolphin logo is named "Sakila". It was chosen from a large list of user-suggested “dolphin names.” The name "Sakila" was submitted by Open Source developer Ambrose Twebaze.

MySQL Features

The main feature of MySQL is that it supports the SQL query language in the ANSI 92 standard, and in addition it has many extensions to this standard that are not found in any other database management system.
A short list of MySQL features:

1. Effective operation of an unlimited number of users simultaneously working with the database is supported.

2. The number of rows in tables can reach 50 million.

3. The fastest possible execution of commands. There is an opinion that MySQL is the fastest server in existence.

4. Simple and effective security system.

Example chart in MySQL


Disadvantages of MySQL

However, MySQL also has some disadvantages. This is mainly due to the fact that in order to achieve such high speed, developers had to sacrifice some of the requirements for relational database management systems.

So, MySQL lacks:

1 . Support for nested queries such as SELECT * FROM table1 WHERE id IN (SELECT id FROM table2) (in earlier versions).

2. Transaction support is not implemented. Instead, it is proposed to use LOCK/UNLOCK TABLE.

3. There is no support for foreign keys.

4 . There is no support for triggers and stored procedures.

5 . No support for views (VIEW). In version 3.23 it is planned to be able to create views.

According to the creators, it was points 2-4 that made it possible to achieve high performance. Their implementation significantly reduces the server speed. These features are not critical when creating Web applications, which, combined with high performance and low price, allowed the server to become very popular.

Licensing

MySQL is dual licensed. MySQL may be distributed under the terms of the GPL. However, under the terms of the GPL, if any program includes MySQL source code, then it must also be distributed under the GPL license. This may be at odds with the plans of developers who do not want to open source their programs. For such cases, a commercial license is provided, which also provides high-quality service support.

Platforms

MySQL has been ported to a large number of platforms: AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Server 2003, WinCE, Windows Vista and Windows 7. There is also a MySQL port to OpenVMS. It is important to note that on the official DBMS website, not only source codes are provided for free download, but also ready-made MySQL DBMS executable modules compiled and optimized for specific operating systems.

Programming languages

MySQL has APIs for Delphi, C, C++, Eiffel, Java, Lisp, Perl, PHP, Python, Ruby, Smalltalk, Component Pascal and Tcl, libraries for .NET platform languages, and also provides support for ODBC through the MyODBC ODBC driver .

Version history

The first internal release of MySQL took place on May 23, 1995 [source not specified 1224 days].
The version for Windows systems (Windows 95 and NT) was released on January 8, 1998.
Version 3.23: beta version in June 2000, release in January 2001.
Version 4.0: beta in August 2002, release in March 2003.
Version 4.1: beta in June 2004, release in October 2004.
Version 5.0: beta in March 2005, release in October 2005.
Version 5.1: development began in November 2005, release in November 2008.
Version 5.4: beta in April 2009, was not released.
Version 5.5: release December 2010.
Version 5.6: in development (5.6.6 m9 August 7, 2012).

Version history



MySQL 4.0

Although version 4.0 is outdated, it still has significant adoption. Main features of this version:

Almost complete implementation of ANSI SQL-99, plus extensions;
cross-platform compatibility;
independent table types (MyISAM for fast reading, InnoDB for transactions and referential integrity);
transactions;
SSL support;
request caching;
replication: one head server per one slave, many slaves per one head;
full-text indexing and searching using the MyISAM table type;
implemented database library;
Unicode support (UTF-8);
ACID compliant InnoDB tables;
a built-in server that allows MySQL to be included in standalone applications.

Nested queries and derived tables.
new coding and sorting system;
a faster and more flexible client-server protocol with support for prepared queries, ensuring their optimal execution;
new installation and configuration program for Microsoft Windows and Linux;
client-server connections secured via OpenSSL;
highly optimized library that can be used in third-party programs;
full Unicode support (UTF-8 and UCS2);
standard GIS spatial data types for storing geographic information;
improved full-text search and help system.

MySQL 5.0

Version MySQL 5.0 was released on October 24, 2005, this version has significantly expanded functionality that puts MySQL on par with commercial DBMSs. If previously the MySQL DBMS was accused of insufficient support for the SQL standard, then with the advent of the fifth version of this popular database, almost complete support for the SQL standard appeared. MySQL 5.0 contains the following innovations:
stored procedures and functions;
error handlers;
cursors;
triggers;
representation;
information schema (the so-called system dictionary containing metadata).

MySQL 5.1

MySQL 5.1 continues the path to the SQL:2003 standard. MySQL 5.1 contains the following innovations:

Partitioning is the ability to split one large table into several parts located on different file systems, based on a user-defined function. Under certain conditions, this can provide a significant increase in performance and, in addition, makes it easier to scale tables.
The behavior of a number of operators has been changed to ensure greater compatibility with the SQL2003 standard.
Row-based replication, in which only information about actually changed table rows will be written to the binary log instead of the original (and possibly slow) query text. Row replication can only be used for certain types of SQL queries, in MySQL terms - mixed replication.
Built-in scheduler of periodically launched jobs. In terms of syntax, adding a task is similar to adding a trigger to a table; in ideology, it is similar to crontab.
Additional set of functions for XML processing, implementation of XPath support.
New problem diagnostics and performance analysis utilities. The capabilities for managing the contents of log files have been expanded; logs can now be saved in the general_log and slow_log tables. The mysqlslap utility allows you to perform load testing of the database and record the response time for each request.
To simplify the upgrade operation, the mysql_upgrade utility has been prepared, which will check all existing tables for compatibility with the new version, and, if necessary, make the appropriate adjustments.
MySQL Cluster is now released as a separate product based on MySQL 5.1 and NDBCLUSTER storage.
Significant changes in the operation of MySQL Cluster, such as, for example, the ability to store tabular data on disk.
Revert to using the built-in libmysqld library, which was missing in MySQL 5.0.
An API for plugins that allows you to load third-party modules that extend functionality (such as full-text search) without restarting the server.
Implementation of a full-text search parser as a plug-in.
New Maria table type (crash-resistant clone of MyISAM).

Maria table type

Maria (starting from version 5.2.x - Aria) - an extended version of the MyISAM storage, with the addition of tools for maintaining data integrity after a crash.
Main advantages of Maria:

In the event of a crash, the results of the current operation are rolled back or returned to the state before the LOCK TABLES command. Implementation through logging operations.
Ability to restore state from any point in the operation log, including support for CREATE/DROP/RENAME/TRUNCATE. Can be used to create incremental backups through periodic copying of the operation log.
Support for all MyISAM column formats has been expanded with a new "rows-in-block" format that uses a page-based data storage method in which data in columns can be cached.
In the future, two modes will be implemented: transactional and without reflection in the transaction log, for non-critical data.
The data page size is 8 KB (in MyISAM 1 KB), which allows for better performance for indexes on fixed-size fields, but slower in the case of indexing variable-length keys.

MySQL 5.5

The MySQL 5.5 branch is based on the unreleased MySQL 5.4 series and contains a number of significant improvements related to increased scalability and performance, including:
Using the InnoDB engine by default.
Support for a semi-synchronous replication mechanism based on patches to InnoDB from Google.
Improved data partitioning functionality. Advanced syntax for splitting large tables into multiple parts located on file systems (partitioning). Added RANGE, LIST operations and the “partition pruning” optimization method.
A new mechanism for optimizing nested queries and JOIN operations.
The internal locking system has been redesigned.
Google patches have been integrated to optimize InnoDB performance on processors with a large number of cores.

MySQL 6.0

Version MySQL 6.0 was frozen at the alpha testing stage. Initially, it was decided to create version 5.2; this version was soon renamed 6.0. However, information about MySQL 6.0 later disappeared from the site, and the developers focused on version 5.5 and the subsequent version 5.6.
One of the main innovations of version 6.0 was planned to be a new Falcon table type, developed as a potential replacement for InnoDB from Innobase, acquired by Oracle. In connection with the acquisition of Sun Microsystems by the same Oracle in 2010, the fate of Falcon remains in doubt.

Specifications

The maximum table size in MySQL 3.22 is up to 4 GB, in subsequent versions the maximum size is up to 8 million TB (263 bytes).
The size of a table is limited by its type. In general, the MyISAM type is limited by the file size limit of the operating system file system. For example, in NTFS this size can theoretically be up to 32 exabytes. In the case of InnoDB, one table can be stored in several files representing a single tablespace. The size of the latter can reach 64 terabytes.

Unlike MyISAM, InnoDB has a significant limit on the number of columns that can be added to a single table. The default memory page size is 16 kilobytes, of which 8123 bytes are allocated for data. The size of a pointer to dynamic fields is 20 bytes. Thus, when using the dynamic row format (ROW_FORMAT=DYNAMIC), one table can accommodate a maximum of 409 blob or text columns.

Starting from version 4.1, a new encoding and sorting system has been introduced into the MySQL DBMS. When using Windows-1251 encoding, before executing SQL statements, you must configure the connection encoding using the operators:

SET character_set_client="cp1251";
SET character_set_results="cp1251";
SET character_set_connection="cp1251";

These three statements are equivalent to calling one statement:

SET NAMES "cp1251"

The character_set_client variable sets the encoding of data sent from the client, the character_set_results variable sets the encoding of data sent to the client, the character_set_connection variable sets the encoding into which information received from the client is converted before executing the request on the server.

When using UTF-8 Unicode, this statement looks like this:
SET NAMES "utf8"

ISO 8859-5 encoding is not supported.


In MySQL select version()— a query that returns the name of the package used and its version. The name can be MySQL itself or its fork, which develops independently - MaraiDB. The difference between the packages is not noticeable when solving most problems. MySQL 5.6 matches MaraiDB 10.

MySQL select version and how to find out the MySQL version

You can find out the version in several ways. The simplest one does not require knowing the database server user password. Just log in via SSH and run mysql --version

mysql Ver 14.14 Distrib 5.5.55, for debian-linux-gnu (x86_64) using readline 6.3

To use the method given in the title, you need to send an SQL request; to do this, log in to the console (you can also do this with a script).

Enter password:
Welcome to the MySQL monitor. Commands end with ; or\g.
Your MySQL connection id is 41
Server version: 5.5.55-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type "help;" or "\h" for help. Type "\c" to clear the current input statement.

The necessary information is available in the output that appears after successful authorization. In this case, MySQL Server version 5.5.55-0 is used.

Also, once in the database server console, you can request the version as follows:

+————————-+
| version() |
+————————-+
| 5.5.55-0ubuntu0.14.04.1 |
+————————-+
1 row in set (0.00 sec)

In all the cases considered, equally complete information was obtained.

Read a series of articles describing the basics of working with MySQL ().

If the site scripts that work with the database are written for a specific version of the software on the server and it is not that version that is used, the version, as well as the package itself, can be changed. This is done quite simply in Debian; the algorithm is given below.

Changing the database server version to Debian

1) using the mysqldump utility, a dump of all tables (including service tables) is created

2) the package is removed apt-get remove mysql-server* && apt-get purge mysql-server*, you also need to delete /var/lib/mysql and /etc/mysql after making a copy

3) the repository listed on the official website is added to /etc/apt/source.list (for example, for MariaDB 10 on Debian 8), the information is updated apt-get update

3) also through apt-get a new package is installed and then database dumps are loaded

You should always have copies in case of unforeseen situations. Different versions use different directives in configuration files and may require manual editing.

Read about, with the help of it the package version was derived; sampling is the most common operation.

  • Safety
  • Quality
  • Price
  • Reliability
  • Simplicity
  • Stability
  • Support
  • Speed
  • Control Panel

FAQ help section

Video hosting review

How to upload a server to FTP

ATTENTION: You only need to upload 3 folders ( filterscripts,gamemodes,scriptfiles) and 1 file server.cfg, then write the line in server.cfg (if it is not there) plugins streamer.so sscanf.so CRP.so mysql.so You also need to make sure that the mod in .amx format exists in the gamemodes folder, and the name of the mod is written correctly in server.cfg (config).

FileZilla Client
Enter host Example: 194.58.88.74 - login *****- password******** DO NOT ENTER ANYTHING IN THE PORT FIELD!!!

ATTENTION: If there is no connection to FTP via FileZilla, download Total Commander and connect through it!

Total Commander- for uploading your samp files to FTP
Enter host Example: 194.58.88.74 - login 173104911- password g1KdN7D3q

Where to enter? Answer: run Total Commander > Network > Connect to FTP server > Add and then enter your data as shown in the example screenshot:

Mod Unknown

If your gamemode field says "unknown", then follow these steps:
1. First, shut down your server
2.Go to the control panel in the Server Options tab > Settings
3.Add a line below plugins streamer.so sscanf.so CRP.so mysql.so
Change the name of the plugins if the mod is unknown, for example: plugins streamer.so sscanf.so CRP.so mysql.so on plugins streamer2.7.2.so sscanf.so CRP.so mysqlR34.so
*The plugins folder is installed initially by default and contains all the necessary plugins.
*You can install any of your plugins on FTP, then register the required plugin for the server in the control panel in the Settings section.
*To compile and update streamer, use the PAWNO program
4.In a folder plugins there should be plugins with the extension .so for Linux: select the desired plugin for your server and write its name in the panel settings in the line plugins EXAMPLE: plugins streamer.so
5.Don’t forget that we use OS Linux, which means in the Panel Settings
write the line for plugins plugins: streamer.so sscanf.so CRP.so with the extension .so otherwise your server will not work correctly.

For OS Linux register in server.cfg as: plugins streamer.so sscanf.so CRP.so mysql.so antiattack.so
One of the plugins libmysqlclient.so.15 libmysqlclient.so.16 libmysqlclient_r.so.16 should be located in the server folder.

Attention: if the server works correctly on Windows OS, this does not mean that it will work correctly on Linux.

What should I do if after filling there are no icons, houses, businesses, etc.?

Write streamer2.5.so in the config, save and reboot the server.
Example:

plugins streamer2.5.so sscanf.so CRP.so mysql.so regex.so

How to find out the plugin version?
On your local computer, start the server, then look in the log, the version of the plugin will be indicated there, register this version on the hosting in the server config.
Example:


Server Plugins
--------------
Loading plugin: streamer.so
*** Streamer Plugin v2.6.1 by Incognito loaded ***

This means that you need to specify the version streamer2.6.1.so in the server config

Help - Connecting the mod to the mysql server

Open the mod (file.PWN) with the PAWNO program, specify your data from the MYSQL section


Example:

#define mysql_host "host.site"
#define mysql_db "s20000"
#define mysql_user "s20000"
#define mysql_pass "lazyrich"

After compiling the mod in .AMX and importing the sql query into the database

Attention! If unknown appears during the compilation process, the mod will not be detected.
The solution is to look for a scripter to fix the error.

To change the name of the mod, or rather the hostname parameter, you need to enter the server control panel in the -Settings section (this is the sever.cfg server config) and in the hostname line on the right, write your server name, for example: *** Our Server is the Best * **
Save the data in the panel and be sure to restart the server for the new parameters to take effect.
If your name has not changed after all of the above, then you need to change the name in the mod itself with the PAWNO program, and this is a completely different story available on the Internet.

Server.cfg









query 1 – We do not change.

maxnpc 10 – We do not change.
onfoot_rate 40 – Do not change.
incar_rate 40 – We do not change it.
weapon_rate 40 – Do not change.




- standard line of plugins for the samp config

How to give yourself an admin account

Go to the server in the folder scriptfiles, find yours NICK
example: Aldo_Mangano, open the file using Notepad,
find the line AdminLevel specify 1999, then save the file and restart the server.

Server.cfg

echo Executing Server Config…
lanmode 0 – 0 – game over the Internet, 1 – game over a local network.
rcon_password 123 – “123” – password from the admin panel on the server.
maxplayers 50 – As you already understood, the maximum number is players. In version 0.3a, maximum 500.
port 7777 – The port displayed at the end of your server address. (On the hosting it exposes itself)
hostname NameServer – The name of your future server.
gamemode0 mode – Game mod for your future server. More on this below...
announce 0 – 1 the server is visible in the Internet tab / 0 is not visible.
query 1 – We do not change.
weburl site – Server site, if available.
maxnpc 10 – We do not change.
onfoot_rate 40 – Do not change.
incar_rate 40 – We do not change it.
weapon_rate 40 – Do not change.
stream_distance 300.0 – Do not change.
stream_rate 1000 – Do not change.
password - your_password (Server with a password)
language Russia - map for 0.3.7 in place of map
plugins streamer.so sscanf.so CRP.so mysql.so regex.so dc_cmd.so CVector.so nativechecker.so- standard line of plugins for the samp config

Release of stable release of MySQL version 5.6. A lot of work has been done in the new version. The main efforts were aimed at improving performance, scalability and flexibility. The InnoDB engine has undergone significant changes.

Key improvements include: support for full-text search tools, the ability to access data via the memcached API, increased performance during intensive data recording, and increased scalability when processing a large number of simultaneous requests.

Another innovation in version 5.6 is the ability to execute DDL (Data Definition Language) operations without taking the DBMS offline and interrupting access to tables. Administrators are able to perform operations related to resetting the schema, adding or deleting data columns, or renaming columns without shutting down the DBMS. Previously, such features were only available in NoSQL products.

Compared to version 5.5, the new product can now run on 48-core servers, versus 32-core in MySQL 5.5

A little more detail about the key features:

  • An interface has been implemented for direct access to InnoDB tables in the style of NoSQL systems using an API that manipulates key/value pairs and is compatible with memcached.
  • It is now possible to create full-text indexes in InnoDB to organize a quick search by word forms among text content stored in InnoDB tables. Previously, full-text search was only available for MyISAM tables.
  • Improving the efficiency of the query optimizer, optimizing the process of selecting the result set of values, sorting and executing the query. New Index Condition Pushdown (ICP) and Batch Key Access (BKA) optimizations provide up to 280x more throughput for some queries. The efficiency of executing queries like “SELECT... FROM single_table... ORDER BY non_index_column LIMIT N;” has been increased. The performance of “SELECT... LIMIT N” queries that display only part of the rows from a large sample has been improved.
  • Optimizer diagnostic tools have been expanded, EXPLAIN support has been added for INSERT, UPDATE and DELETE operations. EXPLAIN results can now be output in JSON format. The new optimizer trace mode allows you to track every decision made during query optimization.
  • Additional optimizations for the execution of subqueries, in which nested queries of the form “SELECT... FROM table1 WHERE... IN (SELECT... FROM table2 ...))” are translated into a more optimal representation at the stage before the query is directly executed, for example, replaced with a more efficient JOIN.
  • Extension of the implementation of the PERFORMANCE_SCHEMA diagnostic system, which provides low-level tools for monitoring the execution of queries and various events during the operation of the DBMS. PERFORMANCE_SCHEMA provides detailed insight into bottlenecks in long-running queries, as well as summary statistics grouped by query, thread, user, host, and object.
  • The implementation of the InnoDB engine has been improved, there is an increase in performance when executing transactions and during activity with a predominance of data read operations - in some situations, the acceleration reaches 230%.
  • Deferred replication mode, which allows you to replicate data not immediately, but with a certain delay, which allows you to provide protection against operator errors (for example, accidental deletion of table contents).
  • Increasing the maximum size of files with change logs (InnoDB Redo Log) from 4 GB to 2 TB.
  • Security improvements: support for specifying authentication parameters in the .mylogin.cnf file in encrypted form; adding the sha256_password plugin for storing password hashes using the SHA-256 algorithm; adding a field with the password expiration time to the mysql.user table; new SQL function VALIDATE_PASSWORD_STRENGTH() to evaluate password strength.
  • Support for running the server in read-only mode (option --innodb-read-only, InnoDB only).
  • Support for specifying fractional seconds in the TIME, DATETIME, and TIMESTAMP functions to specify microseconds.
  • Support for options "--log", "--log-slow-queries", "--one-thread", "--safe-mode", "--skip-thread-priority", "--table-" has been discontinued cache".
You can learn more about the innovations at

First, you need to decide whether you want the latest experimental release or the latest stable version:

  • If you're about to use MySQL for the first time, or are trying to port MySQL to a system that doesn't have a binary distribution, we generally recommend starting with the stable version (currently version 3.23). Please keep in mind that all MySQL releases are tested using MySQL benchmarks and a comprehensive test suite before each release (even for experimental releases).
  • If you are working with an old system and want to upgrade it, but want to avoid possible inconsistencies during the upgrade, then you need to replace it with the newest version in the same branch that you are using (where only the latest version number is newer than yours). In such versions, we try to fix only critical errors and make only small, relatively safe changes.

Second, you need to decide whether you want to use a source distribution or a binary distribution. In most cases, it is better to opt for a binary distribution if one exists for your platform, as it is usually easier to install than a source distribution.

Installing from source may be preferable in the following cases:

  • If you need to install MySQL in some explicitly specified location (standard binary deliveries are ``ready to run'' anywhere, but you may need even more flexibility).
  • To meet different user requirements, we supply two different binary versions: one compiled with non-transactional table handlers (small, fast binary code), and the second configured with the most important extensibility capabilities, such as transaction-aware tables. Both versions are compiled from the same source code. All MySQL native clients can connect to both versions. The MySQL Extended version binary distribution is marked with the -max suffix and is configured with the same options as mysqld-max . See section 4.7.5 mysqld-max, an extended mysqld server. If you want to use the MySQL-Max RPM package, you must first install the standard MySQL RPM package.
  • If you need to configure mysqld with some additional features that are not available in standard binary distributions. Below is a list of the most common additional options that you may want to use:
    • --with-innodb
    • --with-berkeley-db
    • --with-raid
    • --with-libwrap
    • --with-named-z-lib (This is done for some binary distributions)
    • --with-debug[=full]
  • By default, a binary distribution is usually compiled with support for all encodings and should run on different processors from the same processor family. If you want a faster MySQL server, you can recompile it to support only the one encoding you need, use a better compiler (like pgcc), or use compiler options that are better optimized for your processor.
  • If you find a bug and report it to the MySQL development team, you should be sent a patch that should be applied to the source code distribution to fix the bug.
  • If you want to read (and/or modify) MySQL source code (in C and C++), you must have a source code distribution. Source code is always the best documentation. Source distributions also contain more tests and examples than binary distributions.

MySQL's naming system uses release numbers, which consist of three numbers and a suffix. For example, the mysql-3.21.17-beta release is interpreted as follows:

  • The first number (3) describes the file format. All version 3 releases have the same file format.
  • The second number (21) represents the output level. There is usually a choice of two possibilities. One represents the release of the stable branch (currently 23) and the second represents the experimental branch (currently 4.0). Typically both branches are stable, but the experimental version may have some quirks, may lack documentation for new features, or may not compile on some systems.
  • The third number (17) is the version number within the release level. This number increases for each new distribution. It usually makes sense to prefer the latest version for the selected release level.
  • The suffix (beta) indicates the level of stability of a given release. The following suffixes are possible:
    • alpha indicates that the release contains large sections of new code that is not 100% tested. Errors found (usually there are none) should be documented in the ``News'' section. See See section D History of MySQL changes and updates. Most alpha releases also include new commands and extensions. While working on an alpha release, there may be active development involving significant code changes, but everything is tested before release. Any release of MySQL must be free of known bugs.
    • beta means that all new code has been tested. No new properties are added that might break old code. There should be no known errors. A version is changed from alpha to beta when there have been no reports of critical bugs in the alpha version for at least a month and we do not plan to add any new features that could reduce the reliability of the previous commands.
    • gamma is a beta version that is almost finished and seems to be working well. Only minor fixes are added. This is exactly what many other companies call a release.
    • If there is no suffix, it means that the version has been run on many different computer systems with no error messages other than platform-specific errors; for it only correction of critical errors is allowed. That is why we call this release stable.

All versions of MySQL are put through our standard tests and benchmarks to ensure they are reliable to use. Because standard tests are periodically expanded to include testing for new bugs discovered and the situations that might cause them, the test suite gets better and better over time.

Please note that all releases are tested with at least the following tests:

Internal test suite The suite is part of the customer's production system. This set includes many tables with hundreds of megabytes of data. MySQL Performance Test Suite These tests run on a set of commonly used queries. They also allow you to see whether the latest optimization package actually makes your code faster. See section. crash-me test The test attempts to determine what functionality the database supports and what its capabilities and limitations are. See section 5.1.4 The MySQL Benchmark Suite.

There is another test. It consists of us running the latest version of MySQL in our internal production environment on at least one machine. We have more than 100 gigabytes of data to work with this version.