Recently, when I am working on setting
up MySQL Enterprise Server, I found, there is too much information available
over internet and it was very difficult for a newbie to get what is needed for
direct implementation. So, I decided to write a quick reference guide for
setting up the server, covering end to end, starting from planning to
production to maintenance. This is a first post in that direction, in this
post, we will discuss about installing MySQL Enterprise Server on CentOS 7
machine. Note that, the steps are same for both the Enterprise and Community
editions, only binary files are different, and downloaded from different
repositories.
If you are
looking for installing MySQL on Windows operating system, please visit this
page https://www.rathishkumar.in/2016/01/how-to-install-mysql-server-on-windows.html. I am assuming, hardware and the
Operating System is installed and configured as per the requirement. Let us
begin with the installation.
Removing
MariaDB:
The CentOS comes with MariaDB as a default database, if you try to install, MySQL on top of it, you will encounter an error message stating the MySQL library files conflict with MariaDB library files. Remove the MariaDB to avoid errors and to have a clean installation. Use below statements to remove MariaDB completely:
sudo yum remove MariaDB-server
sudo
yum remove MariaDB-client (This
can be done in single step)
sudo
rm –rf /var/lib/mysql
sudo
rm /etc/my.cnf
(Run with sudo, if you are not logged in as
Super Admin).
Downloading
RPM files:
MySQL installation files (On CentOS 7 – rpm packages) can be downloaded from MySQL yum repository.
For MySQL Community Edition – there is clear and step-by-step guide available at the MySQL website - https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/. The only step missing is downloading MySQL yum repository to your local machine. (This might looks very simple step, but most of the newbies, it is very helpful).
For MySQL Enterprise Edition – the
binary files can be downloaded from Oracle Software Delivery Cloud (http://edelivery.oracle.com) for latest version or previous
versions visit My Oracle Support (https://support.oracle.com/).
As mentioned earlier, there is a clear
and step-by-step guide available at the MySQL website for Community Edition, I
will be continue with installing Enterprise Edition, steps are almost same.
Choosing the RPM file:
For MySQL
Community Edition, all the RPM files will be included in the downloaded YUM
repository, but for Enterprise Editions, these files will be downloaded
separately. (For system administration purpose, all these files can be created
under a MySQL repository).
For newbies,
it may be confusing to understand, the different RPM files and its contents, I
am concentrating on only files required for stand-alone MySQL instances. If
there is requirement for embedded MySQL or if you working on developing plugins
for MySQL, can install other files. It is completely depends on your
requirement. The following tables, describe the required files and where to
install.
RPM File
|
Description
|
Location
|
mysql-commercial-server-5.7.23-1.1.el7.x86_64.rpm
|
MySQL Server and related utilities to
run and administer a MySQL server.
|
On Server
|
mysql-commercial-client-5.7.23-1.1.el7.x86_64.rpm
|
Standard MySQL clients and
administration tools.
|
On Server & On Client
|
mysql-commercial-common-5.7.23-1.1.el7.x86_64.rpm
|
Common files needed by MySQL client
library, MySQL database server, and MySQL embedded server.
|
On Server
|
mysql-commercial-libs-5.7.23-1.1.el7.x86_64.rpm
|
Shared libraries for MySQL Client
applications
|
On Server
|
Installing MySQL:
Install the MySQL binary files in the following
order, this is to avoid dependency errors, the following statements will
install MySQL on local machine:
sudo yum
localinstall mysql-commercial-libs-5.7.23-1.1.el7.x86_64.rpm
sudo yum
localinstall mysql-commercial-client-5.7.23-1.1.el7.x86_64.rpm
sudo yum
localinstall mysql-commercial-common-5.7.23-1.1.el7.x86_64.rpm
sudo yum
localinstall mysql-commercial-server-5.7.23-1.1.el7.x86_64.rpm
Starting the
MySQL Service:
On CentOS 7,
the mysql service can be started by following:
sudo
systemctl start mysqld.service
sudo
systemctl status mysqld.service
Login to MySQL Server for first time:
Once the
service is started, the superuser account ‘root’@’localhost’ created and
temporary password is stored at the error log file (default /var/log/mysqld.log). The password can be retrieved by
using the following command:
sudo grep 'temporary password' /var/log/mysqld.log
As soon as logged in to MySQL with the temporary password,
need to reset the root password, until that, you cannot run any queries on
MySQL server. You can reset the root account password by running below command.
mysql –u root –h localhost
-p
alter user 'root'@'localhost' identified by 'NewPassword';
You can verify the MySQL status and edition by running the
following commands, sample output provided below for MySQL 8.0 Community
Edition (GPL License) running on Windows machine.
MySQL License Status |
Notes:
MySQL conflicts with
MariaDB: in case if there is conflict with MariaDB, you will see the error
message as below:
file /usr/share/mysql/xxx from install of
MySQL-server-xxx conflicts with file from package mariadb-libs-xxx
To resolve this error remove mariadb server and its related
files from CentOS server. Refer the section - Removing mariadb.
Can’t connect to
mysql server: MySQL server is installed but unable to connect from client.
Check this page for possible causes and solutions: https://www.rathishkumar.in/2017/08/solved-cannot-connect-to-mysql-server.html
Please let me know, if you are facing any other errors on
comment section. I hope this post is helpful.