A bit of history
The latest version of Red Hat Enterprise Linux, one of the most popular and respected Linux distributions in the server market, was released in June 2014, followed by CentOS 7 and Oracle Linux releases in July of the same year.
There are very interesting changes for database administrators in these new releases, among which I would like to highlight the fact that installer now chooses XFS as its filesystem by default, which substitutes ext4 as the preferred format for local data storage. Red Hat EL7 also includes Btrfs as a tech preview.
Regarding packages, the most impacting change is arguable the update of both MySQL and PostgreSQL versions, indeed in a need of an update, as the previous version of Red Hat, 6.5, still featured 5-year old versions of both RDBMSs, and both are currently in end of life support. The biggest surprise is that Red Hat has opted to choose MariaDB 5.5, and not Oracle, as the default MySQL-like vendor. This has the hilarious consequence that Oracle Linux actually distributes its competitor version, MariaDB on its repositories, with the aim of being 100% compatible. The difference is that, of course, Oracle offers its latest MySQL version in yum repositories, and as a consequence, it is available for install on all Red Hat-compatible versions.
Pre-requisites
In this tutorial we will show how to install MySQL 5.6 on CentOS 7, useful for those that prefer to deploy the latest MySQL GA release. 5.6 introduces a lot of improvements over MySQL 5.5, and given that Red Hat EL7 has a support cycle of at least ten years, it may become very outdated in the future. The process we are about to show for CentOS 7 will be identical on RHEL 7 and, to some extent, other yum-based distributions like the latest versions of Fedora and Amazon Linux.
Please note that the following tutorial supposes that no previous version of MySQL or MariaDB is already installed. You can use the following command: rpm -qa | grep -i mysql
to check for MySQL packages that may be previously installed and you can delete them with the yum remove
command.
Tutorial
The first step is to setup Oracle’s MySQL repository, for that, we can go to the mysql.com website, click on “Downloads“, then “Yum repository” and then “Red Hat Enterprise Linux 7”. At the moment of the writing of these lines, this version of the repository setup package is still in beta, but I had no problems to install it with several combinations of software and hardware. Select “Download” and you can choose to login or create an Oracle account. We can also skip that step and just copy the link on “No thanks , just start my download”. This will provide us the address of the rpm to auto-configure the MySQL Community Server repository.
Now, if we execute on the terminal:
$ sudo yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
[sudo] password for training:
Loaded plugins: fastestmirror
mysql-community-release-el7-5.noarch.rpm | 6.0 kB 00:00:00
Examining /var/tmp/yum-root-uI5SBL/mysql-community-release-el7-5.noarch.rpm: mysql-community-release-el7-5.noarch
Marking /var/tmp/yum-root-uI5SBL/mysql-community-release-el7-5.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-release.noarch 0:el7-5 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================
Installing:
mysql-community-release noarch el7-5 /mysql-community-release-el7-5.noarch 4.3 k
Transaction Summary
==============================================================================================================================
Install 1 Package
Total size: 4.3 k
Installed size: 4.3 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : mysql-community-release-el7-5.noarch 1/1
Verifying : mysql-community-release-el7-5.noarch 1/1
Installed:
mysql-community-release.noarch 0:el7-5
Complete!
We can check that the repository is effectively active by running:
$ sudo yum repolist enabled | grep "mysql.*-community.*"
[sudo] password for training:
mysql-connectors-community/x86_64 MySQL Connectors Community 9
mysql-tools-community/x86_64 MySQL Tools Community 4
mysql56-community/x86_64 MySQL 5.6 Community Server 49
We have done a one-time configuration that will allow us to easily install and keep to date our MySQL installation.
The next step is actually installing the server packages. For that, we write:
$ sudo yum install mysql-community-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.mirror.xtratelecom.es
* extras: centos.mirror.xtratelecom.es
* updates: centos.mirror.xtratelecom.es
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-server.x86_64 0:5.6.19-2.el7 will be installed
--> Processing Dependency: mysql-community-common(x86-64) = 5.6.19-2.el7 for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: mysql-community-client(x86-64) = 5.6.19-2.el7 for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(warnings) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(strict) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(if) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(Sys::Hostname) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(POSIX) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(Getopt::Long) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(File::Temp) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(File::Spec) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(File::Path) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(File::Copy) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(File::Basename) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(Fcntl) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(Data::Dumper) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(DBI) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: net-tools for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.4)(64bit) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.1)(64bit) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: /usr/bin/perl for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Processing Dependency: libaio.so.1()(64bit) for package: mysql-community-server-5.6.19-2.el7.x86_64
--> Running transaction check
---> Package libaio.x86_64 0:0.3.109-12.el7 will be installed
---> Package mysql-community-client.x86_64 0:5.6.19-2.el7 will be installed
--> Processing Dependency: mysql-community-libs(x86-64) = 5.6.19-2.el7 for package: mysql-community-client-5.6.19-2.el7.x86_64
--> Processing Dependency: perl(Exporter) for package: mysql-community-client-5.6.19-2.el7.x86_64
---> Package mysql-community-common.x86_64 0:5.6.19-2.el7 will be installed
---> Package net-tools.x86_64 0:2.0-0.17.20131004git.el7 will be installed
---> Package perl.x86_64 4:5.16.3-283.el7 will be installed
--> Processing Dependency: perl-libs = 4:5.16.3-283.el7 for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl(Socket) >= 1.3 for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl(Scalar::Util) >= 1.10 for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl-macros for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl-libs for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl(threads::shared) for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl(threads) for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl(constant) for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl(Time::Local) for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl(Storable) for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl(Socket) for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl(Scalar::Util) for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl(Pod::Simple::XHTML) for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl(Pod::Simple::Search) for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl(Filter::Util::Call) for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: perl(Carp) for package: 4:perl-5.16.3-283.el7.x86_64
--> Processing Dependency: libperl.so()(64bit) for package: 4:perl-5.16.3-283.el7.x86_64
---> Package perl-DBI.x86_64 0:1.627-4.el7 will be installed
--> Processing Dependency: perl(RPC::PlServer) >= 0.2001 for package: perl-DBI-1.627-4.el7.x86_64
--> Processing Dependency: perl(RPC::PlClient) >= 0.2000 for package: perl-DBI-1.627-4.el7.x86_64
---> Package perl-Data-Dumper.x86_64 0:2.145-3.el7 will be installed
---> Package perl-File-Path.noarch 0:2.09-2.el7 will be installed
---> Package perl-File-Temp.noarch 0:0.23.01-3.el7 will be installed
---> Package perl-Getopt-Long.noarch 0:2.40-2.el7 will be installed
--> Processing Dependency: perl(Pod::Usage) >= 1.14 for package: perl-Getopt-Long-2.40-2.el7.noarch
--> Processing Dependency: perl(Text::ParseWords) for package: perl-Getopt-Long-2.40-2.el7.noarch
---> Package perl-PathTools.x86_64 0:3.40-5.el7 will be installed
--> Running transaction check
---> Package mariadb-libs.x86_64 1:5.5.37-1.el7_0 will be obsoleted
---> Package mysql-community-libs.x86_64 0:5.6.19-2.el7 will be obsoleting
---> Package perl-Carp.noarch 0:1.26-244.el7 will be installed
---> Package perl-Exporter.noarch 0:5.68-3.el7 will be installed
---> Package perl-Filter.x86_64 0:1.49-3.el7 will be installed
---> Package perl-PlRPC.noarch 0:0.2020-14.el7 will be installed
--> Processing Dependency: perl(Net::Daemon) >= 0.13 for package: perl-PlRPC-0.2020-14.el7.noarch
--> Processing Dependency: perl(Net::Daemon::Test) for package: perl-PlRPC-0.2020-14.el7.noarch
--> Processing Dependency: perl(Net::Daemon::Log) for package: perl-PlRPC-0.2020-14.el7.noarch
--> Processing Dependency: perl(Compress::Zlib) for package: perl-PlRPC-0.2020-14.el7.noarch
---> Package perl-Pod-Simple.noarch 1:3.28-4.el7 will be installed
--> Processing Dependency: perl(Pod::Escapes) >= 1.04 for package: 1:perl-Pod-Simple-3.28-4.el7.noarch
--> Processing Dependency: perl(Encode) for package: 1:perl-Pod-Simple-3.28-4.el7.noarch
---> Package perl-Pod-Usage.noarch 0:1.63-3.el7 will be installed
--> Processing Dependency: perl(Pod::Text) >= 3.15 for package: perl-Pod-Usage-1.63-3.el7.noarch
--> Processing Dependency: perl-Pod-Perldoc for package: perl-Pod-Usage-1.63-3.el7.noarch
---> Package perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 will be installed
---> Package perl-Socket.x86_64 0:2.010-3.el7 will be installed
---> Package perl-Storable.x86_64 0:2.45-3.el7 will be installed
---> Package perl-Text-ParseWords.noarch 0:3.29-4.el7 will be installed
---> Package perl-Time-Local.noarch 0:1.2300-2.el7 will be installed
---> Package perl-constant.noarch 0:1.27-2.el7 will be installed
---> Package perl-libs.x86_64 4:5.16.3-283.el7 will be installed
---> Package perl-macros.x86_64 4:5.16.3-283.el7 will be installed
---> Package perl-threads.x86_64 0:1.87-4.el7 will be installed
---> Package perl-threads-shared.x86_64 0:1.43-6.el7 will be installed
--> Running transaction check
---> Package perl-Encode.x86_64 0:2.51-7.el7 will be installed
---> Package perl-IO-Compress.noarch 0:2.061-2.el7 will be installed
--> Processing Dependency: perl(Compress::Raw::Zlib) >= 2.061 for package: perl-IO-Compress-2.061-2.el7.noarch
--> Processing Dependency: perl(Compress::Raw::Bzip2) >= 2.061 for package: perl-IO-Compress-2.061-2.el7.noarch
---> Package perl-Net-Daemon.noarch 0:0.48-5.el7 will be installed
---> Package perl-Pod-Escapes.noarch 1:1.04-283.el7 will be installed
---> Package perl-Pod-Perldoc.noarch 0:3.20-4.el7 will be installed
--> Processing Dependency: perl(parent) for package: perl-Pod-Perldoc-3.20-4.el7.noarch
--> Processing Dependency: perl(HTTP::Tiny) for package: perl-Pod-Perldoc-3.20-4.el7.noarch
---> Package perl-podlators.noarch 0:2.5.1-3.el7 will be installed
--> Running transaction check
---> Package perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 will be installed
---> Package perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 will be installed
---> Package perl-HTTP-Tiny.noarch 0:0.033-3.el7 will be installed
---> Package perl-parent.noarch 1:0.225-244.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================
Installing:
mysql-community-libs x86_64 5.6.19-2.el7 mysql56-community 2.0 M
replacing mariadb-libs.x86_64 1:5.5.37-1.el7_0
mysql-community-server x86_64 5.6.19-2.el7 mysql56-community 57 M
Installing for dependencies:
libaio x86_64 0.3.109-12.el7 base 24 k
mysql-community-client x86_64 5.6.19-2.el7 mysql56-community 19 M
mysql-community-common x86_64 5.6.19-2.el7 mysql56-community 247 k
net-tools x86_64 2.0-0.17.20131004git.el7 base 304 k
perl x86_64 4:5.16.3-283.el7 base 8.0 M
perl-Carp noarch 1.26-244.el7 base 19 k
perl-Compress-Raw-Bzip2 x86_64 2.061-3.el7 base 32 k
perl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 base 57 k
perl-DBI x86_64 1.627-4.el7 base 802 k
perl-Data-Dumper x86_64 2.145-3.el7 base 47 k
perl-Encode x86_64 2.51-7.el7 base 1.5 M
perl-Exporter noarch 5.68-3.el7 base 28 k
perl-File-Path noarch 2.09-2.el7 base 26 k
perl-File-Temp noarch 0.23.01-3.el7 base 56 k
perl-Filter x86_64 1.49-3.el7 base 76 k
perl-Getopt-Long noarch 2.40-2.el7 base 56 k
perl-HTTP-Tiny noarch 0.033-3.el7 base 38 k
perl-IO-Compress noarch 2.061-2.el7 base 260 k
perl-Net-Daemon noarch 0.48-5.el7 base 51 k
perl-PathTools x86_64 3.40-5.el7 base 82 k
perl-PlRPC noarch 0.2020-14.el7 base 36 k
perl-Pod-Escapes noarch 1:1.04-283.el7 base 49 k
perl-Pod-Perldoc noarch 3.20-4.el7 base 87 k
perl-Pod-Simple noarch 1:3.28-4.el7 base 216 k
perl-Pod-Usage noarch 1.63-3.el7 base 27 k
perl-Scalar-List-Utils x86_64 1.27-248.el7 base 36 k
perl-Socket x86_64 2.010-3.el7 base 49 k
perl-Storable x86_64 2.45-3.el7 base 77 k
perl-Text-ParseWords noarch 3.29-4.el7 base 14 k
perl-Time-Local noarch 1.2300-2.el7 base 24 k
perl-constant noarch 1.27-2.el7 base 19 k
perl-libs x86_64 4:5.16.3-283.el7 base 686 k
perl-macros x86_64 4:5.16.3-283.el7 base 42 k
perl-parent noarch 1:0.225-244.el7 base 12 k
perl-podlators noarch 2.5.1-3.el7 base 112 k
perl-threads x86_64 1.87-4.el7 base 49 k
perl-threads-shared x86_64 1.43-6.el7 base 39 k
Transaction Summary
==============================================================================================================================
Install 2 Packages (+37 Dependent packages)
Total download size: 91 M
Is this ok [y/d/N]: y
Downloading packages:
warning: /var/cache/yum/x86_64/7/mysql56-community/packages/mysql-community-common-5.6.19-2.el7.x86_64.rpm: V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Public key for mysql-community-common-5.6.19-2.el7.x86_64.rpm is not installed
(1/39): mysql-community-common-5.6.19-2.el7.x86_64.rpm | 247 kB 00:00:01
(2/39): libaio-0.3.109-12.el7.x86_64.rpm | 24 kB 00:00:03
(3/39): mysql-community-libs-5.6.19-2.el7.x86_64.rpm | 2.0 MB 00:00:05
(4/39): perl-Carp-1.26-244.el7.noarch.rpm | 19 kB 00:00:02
(5/39): perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm | 32 kB 00:00:01
(6/39): net-tools-2.0-0.17.20131004git.el7.x86_64.rpm | 304 kB 00:00:04
(7/39): perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm | 57 kB 00:00:01
(8/39): perl-Data-Dumper-2.145-3.el7.x86_64.rpm | 47 kB 00:00:01
(9/39): perl-DBI-1.627-4.el7.x86_64.rpm | 802 kB 00:00:03
(10/39): perl-Exporter-5.68-3.el7.noarch.rpm | 28 kB 00:00:00
(11/39): perl-File-Path-2.09-2.el7.noarch.rpm | 26 kB 00:00:00
(12/39): perl-File-Temp-0.23.01-3.el7.noarch.rpm | 56 kB 00:00:00
(13/39): perl-Filter-1.49-3.el7.x86_64.rpm | 76 kB 00:00:00
(14/39): perl-Getopt-Long-2.40-2.el7.noarch.rpm | 56 kB 00:00:00
(15/39): perl-HTTP-Tiny-0.033-3.el7.noarch.rpm | 38 kB 00:00:00
(16/39): perl-IO-Compress-2.061-2.el7.noarch.rpm | 260 kB 00:00:01
(17/39): perl-Encode-2.51-7.el7.x86_64.rpm | 1.5 MB 00:00:08
(18/39): perl-Net-Daemon-0.48-5.el7.noarch.rpm | 51 kB 00:00:03
(19/39): perl-PlRPC-0.2020-14.el7.noarch.rpm | 36 kB 00:00:00
(20/39): perl-Pod-Escapes-1.04-283.el7.noarch.rpm | 49 kB 00:00:00
(21/39): perl-Pod-Perldoc-3.20-4.el7.noarch.rpm | 87 kB 00:00:01
(22/39): perl-Pod-Simple-3.28-4.el7.noarch.rpm | 216 kB 00:00:02
(23/39): perl-Pod-Usage-1.63-3.el7.noarch.rpm | 27 kB 00:00:00
(24/39): perl-Scalar-List-Utils-1.27-248.el7.x86_64.rpm | 36 kB 00:00:00
(25/39): perl-Socket-2.010-3.el7.x86_64.rpm | 49 kB 00:00:00
(26/39): perl-Storable-2.45-3.el7.x86_64.rpm | 77 kB 00:00:00
(27/39): perl-Text-ParseWords-3.29-4.el7.noarch.rpm | 14 kB 00:00:00
(28/39): perl-Time-Local-1.2300-2.el7.noarch.rpm | 24 kB 00:00:00
(29/39): perl-constant-1.27-2.el7.noarch.rpm | 19 kB 00:00:00
(30/39): perl-PathTools-3.40-5.el7.x86_64.rpm | 82 kB 00:00:12
(31/39): perl-libs-5.16.3-283.el7.x86_64.rpm | 686 kB 00:00:03
(32/39): perl-parent-0.225-244.el7.noarch.rpm | 12 kB 00:00:00
(33/39): perl-podlators-2.5.1-3.el7.noarch.rpm | 112 kB 00:00:00
(34/39): perl-threads-1.87-4.el7.x86_64.rpm | 49 kB 00:00:00
(35/39): perl-threads-shared-1.43-6.el7.x86_64.rpm | 39 kB 00:00:00
(36/39): perl-macros-5.16.3-283.el7.x86_64.rpm | 42 kB 00:00:05
(37/39): mysql-community-client-5.6.19-2.el7.x86_64.rpm | 19 MB 00:00:57
(38/39): perl-5.16.3-283.el7.x86_64.rpm | 8.0 MB 00:01:13
(39/39): mysql-community-server-5.6.19-2.el7.x86_64.rpm | 57 MB 00:01:35
------------------------------------------------------------------------------------------------------------------------------
Total 915 kB/s | 91 MB 00:01:41
Retrieving key from file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Importing GPG key 0x5072E1F5:
Userid : "MySQL Release Engineering "
Fingerprint: a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5
Package : mysql-community-release-el7-5.noarch (@/mysql-community-release-el7-5.noarch)
From : file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : mysql-community-common-5.6.19-2.el7.x86_64 1/40
Installing : mysql-community-libs-5.6.19-2.el7.x86_64 2/40
Installing : 1:perl-parent-0.225-244.el7.noarch 3/40
Installing : perl-HTTP-Tiny-0.033-3.el7.noarch 4/40
Installing : perl-podlators-2.5.1-3.el7.noarch 5/40
Installing : perl-Pod-Perldoc-3.20-4.el7.noarch 6/40
Installing : 1:perl-Pod-Escapes-1.04-283.el7.noarch 7/40
Installing : perl-Text-ParseWords-3.29-4.el7.noarch 8/40
Installing : perl-Encode-2.51-7.el7.x86_64 9/40
Installing : perl-Pod-Usage-1.63-3.el7.noarch 10/40
Installing : 4:perl-libs-5.16.3-283.el7.x86_64 11/40
Installing : 4:perl-macros-5.16.3-283.el7.x86_64 12/40
Installing : perl-Storable-2.45-3.el7.x86_64 13/40
Installing : perl-Exporter-5.68-3.el7.noarch 14/40
Installing : perl-constant-1.27-2.el7.noarch 15/40
Installing : perl-Time-Local-1.2300-2.el7.noarch 16/40
Installing : perl-Socket-2.010-3.el7.x86_64 17/40
Installing : perl-Carp-1.26-244.el7.noarch 18/40
Installing : perl-PathTools-3.40-5.el7.x86_64 19/40
Installing : perl-Scalar-List-Utils-1.27-248.el7.x86_64 20/40
Installing : perl-File-Temp-0.23.01-3.el7.noarch 21/40
Installing : perl-File-Path-2.09-2.el7.noarch 22/40
Installing : perl-threads-shared-1.43-6.el7.x86_64 23/40
Installing : perl-threads-1.87-4.el7.x86_64 24/40
Installing : perl-Filter-1.49-3.el7.x86_64 25/40
Installing : 1:perl-Pod-Simple-3.28-4.el7.noarch 26/40
Installing : perl-Getopt-Long-2.40-2.el7.noarch 27/40
Installing : 4:perl-5.16.3-283.el7.x86_64 28/40
Installing : perl-Data-Dumper-2.145-3.el7.x86_64 29/40
Installing : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 30/40
Installing : perl-Net-Daemon-0.48-5.el7.noarch 31/40
Installing : mysql-community-client-5.6.19-2.el7.x86_64 32/40
Installing : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 33/40
Installing : perl-IO-Compress-2.061-2.el7.noarch 34/40
Installing : perl-PlRPC-0.2020-14.el7.noarch 35/40
Installing : perl-DBI-1.627-4.el7.x86_64 36/40
Installing : libaio-0.3.109-12.el7.x86_64 37/40
Installing : net-tools-2.0-0.17.20131004git.el7.x86_64 38/40
Installing : mysql-community-server-5.6.19-2.el7.x86_64 39/40
Erasing : 1:mariadb-libs-5.5.37-1.el7_0.x86_64 40/40
Verifying : perl-HTTP-Tiny-0.033-3.el7.noarch 1/40
Verifying : perl-threads-shared-1.43-6.el7.x86_64 2/40
Verifying : perl-Storable-2.45-3.el7.x86_64 3/40
Verifying : net-tools-2.0-0.17.20131004git.el7.x86_64 4/40
Verifying : perl-Exporter-5.68-3.el7.noarch 5/40
Verifying : perl-constant-1.27-2.el7.noarch 6/40
Verifying : perl-PathTools-3.40-5.el7.x86_64 7/40
Verifying : 4:perl-5.16.3-283.el7.x86_64 8/40
Verifying : libaio-0.3.109-12.el7.x86_64 9/40
Verifying : mysql-community-server-5.6.19-2.el7.x86_64 10/40
Verifying : 1:perl-parent-0.225-244.el7.noarch 11/40
Verifying : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 12/40
Verifying : perl-Net-Daemon-0.48-5.el7.noarch 13/40
Verifying : 1:perl-Pod-Simple-3.28-4.el7.noarch 14/40
Verifying : perl-File-Temp-0.23.01-3.el7.noarch 15/40
Verifying : 4:perl-libs-5.16.3-283.el7.x86_64 16/40
Verifying : perl-Time-Local-1.2300-2.el7.noarch 17/40
Verifying : mysql-community-libs-5.6.19-2.el7.x86_64 18/40
Verifying : perl-Pod-Perldoc-3.20-4.el7.noarch 19/40
Verifying : perl-DBI-1.627-4.el7.x86_64 20/40
Verifying : perl-Socket-2.010-3.el7.x86_64 21/40
Verifying : 4:perl-macros-5.16.3-283.el7.x86_64 22/40
Verifying : mysql-community-client-5.6.19-2.el7.x86_64 23/40
Verifying : perl-Carp-1.26-244.el7.noarch 24/40
Verifying : perl-Data-Dumper-2.145-3.el7.x86_64 25/40
Verifying : perl-Scalar-List-Utils-1.27-248.el7.x86_64 26/40
Verifying : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 27/40
Verifying : perl-IO-Compress-2.061-2.el7.noarch 28/40
Verifying : perl-Pod-Usage-1.63-3.el7.noarch 29/40
Verifying : perl-PlRPC-0.2020-14.el7.noarch 30/40
Verifying : perl-Encode-2.51-7.el7.x86_64 31/40
Verifying : perl-podlators-2.5.1-3.el7.noarch 32/40
Verifying : perl-Getopt-Long-2.40-2.el7.noarch 33/40
Verifying : perl-File-Path-2.09-2.el7.noarch 34/40
Verifying : perl-threads-1.87-4.el7.x86_64 35/40
Verifying : perl-Filter-1.49-3.el7.x86_64 36/40
Verifying : 1:perl-Pod-Escapes-1.04-283.el7.noarch 37/40
Verifying : perl-Text-ParseWords-3.29-4.el7.noarch 38/40
Verifying : mysql-community-common-5.6.19-2.el7.x86_64 39/40
Verifying : 1:mariadb-libs-5.5.37-1.el7_0.x86_64 40/40
Installed:
mysql-community-libs.x86_64 0:5.6.19-2.el7 mysql-community-server.x86_64 0:5.6.19-2.el7
Dependency Installed:
libaio.x86_64 0:0.3.109-12.el7 mysql-community-client.x86_64 0:5.6.19-2.el7
mysql-community-common.x86_64 0:5.6.19-2.el7 net-tools.x86_64 0:2.0-0.17.20131004git.el7
perl.x86_64 4:5.16.3-283.el7 perl-Carp.noarch 0:1.26-244.el7
perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
perl-DBI.x86_64 0:1.627-4.el7 perl-Data-Dumper.x86_64 0:2.145-3.el7
perl-Encode.x86_64 0:2.51-7.el7 perl-Exporter.noarch 0:5.68-3.el7
perl-File-Path.noarch 0:2.09-2.el7 perl-File-Temp.noarch 0:0.23.01-3.el7
perl-Filter.x86_64 0:1.49-3.el7 perl-Getopt-Long.noarch 0:2.40-2.el7
perl-HTTP-Tiny.noarch 0:0.033-3.el7 perl-IO-Compress.noarch 0:2.061-2.el7
perl-Net-Daemon.noarch 0:0.48-5.el7 perl-PathTools.x86_64 0:3.40-5.el7
perl-PlRPC.noarch 0:0.2020-14.el7 perl-Pod-Escapes.noarch 1:1.04-283.el7
perl-Pod-Perldoc.noarch 0:3.20-4.el7 perl-Pod-Simple.noarch 1:3.28-4.el7
perl-Pod-Usage.noarch 0:1.63-3.el7 perl-Scalar-List-Utils.x86_64 0:1.27-248.el7
perl-Socket.x86_64 0:2.010-3.el7 perl-Storable.x86_64 0:2.45-3.el7
perl-Text-ParseWords.noarch 0:3.29-4.el7 perl-Time-Local.noarch 0:1.2300-2.el7
perl-constant.noarch 0:1.27-2.el7 perl-libs.x86_64 4:5.16.3-283.el7
perl-macros.x86_64 4:5.16.3-283.el7 perl-parent.noarch 1:0.225-244.el7
perl-podlators.noarch 0:2.5.1-3.el7 perl-threads.x86_64 0:1.87-4.el7
perl-threads-shared.x86_64 0:1.43-6.el7
Replaced:
mariadb-libs.x86_64 1:5.5.37-1.el7_0
Complete!
As you can see, the community server package defaults to the latest version of MySQL 5.6. During the installation process, only two interruptions may happen (aside from the sudo password), one for confirmation of changes, and another to import the Oracle release engineers’ key on your system, which should be fine if it matches the fingerprint a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5
. Remember that for automatic processes, we can give the -y
(assume yes to all) flag to yum, but I wanted to avoid that for explanation and security purposes.
We are done with the installation, now we only have to run it and test it. Remember that Red Hat Enterprise Linux 7 replaces the management of services with systemd, so the “correct” way of starting the mysql service is:
$ sudo systemctl start mysqld
You can check that it started successfully by doing:
$ sudo systemctl status mysqld
mysqld.service - MySQL Community Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled)
Active: active (running) since Sun 2014-07-27 11:20:40 EDT; 10s ago
Process: 10660 ExecStartPost=/usr/bin/mysql-systemd-start post (code=exited, status=0/SUCCESS)
Process: 10599 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 10659 (mysqld_safe)
CGroup: /system.slice/mysqld.service
├─10659 /bin/sh /usr/bin/mysqld_safe
└─10801 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-erro...
Jul 27 11:20:39 localhost.localdomain mysql-systemd-start[10599]: Support MySQL by buying support/licenses at http://sho...com
Jul 27 11:20:39 localhost.localdomain mysql-systemd-start[10599]: Note: new default config file not created.
Jul 27 11:20:39 localhost.localdomain mysql-systemd-start[10599]: Please make sure your config file is current
Jul 27 11:20:39 localhost.localdomain mysql-systemd-start[10599]: WARNING: Default config file /etc/my.cnf exists on the...tem
Jul 27 11:20:39 localhost.localdomain mysql-systemd-start[10599]: This file will be read by default by the MySQL server
Jul 27 11:20:39 localhost.localdomain mysql-systemd-start[10599]: If you do not want to use this, either remove it, or use the
Jul 27 11:20:39 localhost.localdomain mysql-systemd-start[10599]: --defaults-file argument to mysqld_safe when starting ...ver
Jul 27 11:20:39 localhost.localdomain mysqld_safe[10659]: 140727 11:20:39 mysqld_safe Logging to '/var/log/mysqld.log'.
Jul 27 11:20:39 localhost.localdomain mysqld_safe[10659]: 140727 11:20:39 mysqld_safe Starting mysqld daemon with datab...ysql
Jul 27 11:20:40 localhost.localdomain systemd[1]: Started MySQL Community Server.
Hint: Some lines were ellipsized, use -l to show in full.
And now connect from localhost by doing:
$ mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.19 MySQL Community Server (GPL)
Copyright (c) 2000, 2014, 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.
mysql>
Remember also to activate the mysql auto-start on boot, as you will want in most cases (this has also changed from CentOS 6):
$ sudo systemctl enable mysqld.service
ln -s '/usr/lib/systemd/system/mysqls.service' '/etc/systemd/system/mysql.service'
ln -s '/usr/lib/systemd/system/mysqls.service' '/etc/systemd/system/multi-user.target.wants/mysqld.service'
You can check that it was enabled successfully with the previously shown ‘status’ command; it should be shown now as “enabled”.
As good administrator, the next steps will be to properly configure user accounts and securize the database service, but that is out of the scope of this tutorial.
Thanks to installing via repository, now your packages can be easily upgraded by using yum.
For a more detailed documentation, you can also review the official docs. The Oracle engineers also have an interesting story about the testing process of these packages.
I hope this tutorial has been helpful.
Thanks for this Awesome tuts Jaime. I have just completed your guide on a new hosting on CentOS 7.
Not sure if this posted. Just tried your tutorial and it worked like a charm. Thanks Jaime.
Do you recall what installation type you used for CentOS (minimal, infrastructure, creative etc…) Starting off with the minimal install and can’t seem to get mysqld to fire up. Wondering if I’m missing a dependancy…
I think I did a custom install, but all dependencies should be taken care by yum if you use the official CentOS or Oracle Packages. Please provide the error message/error log and if you require further help I recommend you going to http://dba.stackexchange.com
Thanks for the offer, as soon as I submitted my comment I remembered SELinux and checke my audit.log. Found that it didn’t like the mysqld process so I retried with SELinux disabled and everything works using your method above. Thanks for posting!
FYI, it ended up being this: http://bugs.mysql.com/bug.php?id=75912 there’s an issue between SELinux and MySQL 5.6.0.23.
Pingback:Centos7 开发环境安装mysql社区版本 – 剑客|关注科技互联网
Pingback:How to update MySQL with CentOS 6 in most unintrusive way – in regard to perl and PHP packages? [closed] | XL-UAT
Pingback:Build a LAMP Stack on CentOS 7 | Rambling Biped
(sorry about bad english)
in advance i have a centos 7
and i want to install mysql offline using package
MySQL-5.6.24-1.el7.x86_64.rpm-bundle which is related to redhat 7- 64
bit from website (https://dev.mysql.com/downloads/mysql/)
when i download it and
install it by using command rpm
rpm -ivh
MySQL-client-5.6.24-1.el7.x86_64.rpm
rpm -ivh
MySQL-devel-5.6.24-1.el7.x86_64.rpm
rpm -ivh
MySQL-embedded-5.6.24-1.el7.x86_64.rpm
rpm -ivh
MySQL-shared-5.6.24-1.el7.x86_64.rpm
rpm -ivh
MySQL-server-5.6.24-1.el7.x86_64.rpm
1)
frist error is this
file /usr/share/mysql/charsets/README from install of
MySQL-server-5.6.24-1.el7.x86_64 conflicts with file from package
mariadb-libs-1:5.5.41-2.el7_0.x86_64
1-Solution)
i have solved it using
rpm -evh
mariadb-libs-5.5.41-2.el7_0.x86_64 –nodeps
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2)
then i run
rpm -ivh
MySQL-server-5.6.24-1.el7.x86_64.rpm –> it installed successfully
but i get a fatal error as
the following
[root@localhost sql]# rpm -ivh MySQL-server-5.6.24-1.el7.x86_64.rpm
Preparing…
################################# [100%]
Updating / installing…
MySQL-server-5.6.24-1.el7 #################################
[100%]
warning: user mysql does not exist – using root
warning: group mysql does not exist – using root
FATAL ERROR: please install the following Perl modules before
executing /usr/bin/mysql_install_db:
Data::Dumper
2-Solution)
[root@localhost sql]# rpm -ivh
perl-Data-Dumper-2.145-3.el7.x86_64.rpm
warning: perl-Data-Dumper-2.145-3.el7.x86_64.rpm: Header V3
RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing…
################################# [100%]
Updating / installing…
perl-Data-Dumper-2.145-3.el7 #################################
[100%]
` start mysqld at boot time
you have to copy
support-files/mysql.server
to the right place for your system
PLEASE REMEMBER TO SET A
PASSWORD FOR THE MySQL root USER !
To do so, start the server,
then issue the following commands:
/usr/bin/mysqladmin -u
root password ‘new-password’
/usr/bin/mysqladmin -u
root -h localhost.localdomain password ‘new-password’
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the
option of removing the test
databases and anonymous user
created by default. This is
strongly recommended for
production servers.
See the manual for more
instructions.
You can start the MySQL
daemon with:
cd /usr ;
/usr/bin/mysqld_safe &
You can test the MySQL
daemon with mysql-test-run.pl
cd mysql-test ; perl
mysql-test-run.pl
Please report any problems
at http://bugs.mysql.com/
The latest information about
MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying
support/licenses at http://shop.mysql.com
New default config file was
created as /usr/my.cnf and
will be used by default by
the server when you start it.
You may edit this file to
change server settings
4 )
-then i run
[root@localhost sql]#
/usr/bin/mysql_secure_installation
NOTE: RUNNING ALL PARTS OF
THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION
USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL
to secure it, we’ll need the current
password for the root user.
If you’ve just installed MySQL, and
you haven’t set the root
password yet, the password will be blank,
so you should just press
enter here.
Enter current password for
root (enter for none):
ERROR 2002 (HY000): Can’t
connect to local MySQL server through socket
‘/var/lib/mysql/mysql.sock’ (2)
Enter current password for
root (enter for none):
###################################################
my questions are :
1) when i enter a blank
password with command /usr/bin/mysql_secure_installation
as above give me error as
above . i have run mysqld_safe –skip-grant-tables &
to solve it but i can not ->
still i want a solution to this problem ????
2) second question : i have
select mysql for redhat 7 is it compatible with centos 7 or i must
select linux version instead ?????
3) third question : mysql
user was created using id 992 by checking /etc/passwd
mysql:x:992:990:MySQL
server:/var/lib/mysql:/bin/bash
is this will make problem
in future as the id=992 is not root privilege and i must be below 500
?????
p { margin-bottom: 0.08in; }
4) did i select the correct
package(MySQL-5.6.24-1.el7.x86_64.rpm-bundle.tar) or it not the
correct package to installed on centos 7 ?????
5) i have tried another method by install perl yum install perl and it worked successfully
could i install perl (all packages needed) offline method ?????
Dear Friend,
I have been trying to install MySQL 5.6 on CentOS 7.3. I have followed all the steps you have mentioned in the post above. But when I gonna start service using command “sudo systemctl start mysqld” nothing is going to be return. I wait till the command show something on the console and eventually it gives following message:
“Job for mysqld.service failed because a timeout was exceeded. See “systemctl status mysqld.service” and “journalctl -xe” for details.”
Please help me on this, I would be grateful to you.
Thanks,