Install MySQL 5.7 on CentOS/RHEL 7.3/6.8/5.11
MySQL is a relational database management system (RDBMS) that runs as a server providing multi-user access to a number of databases. This is guide, howto install or upgrade MySQL Community Server latest version 5.7 (5.7.17) on CentOS 7.3/6.8/5.11 and Red Hat (RHEL) 7.3/6.8/5.11. This guide works of course with Oracle Linux and Scientific Linux too and MySQL 5.6/5.5 installation is possible too.
Note: If you are upgrading MySQL (from earlier version), then make sure that you backup (dump and copy) your database and configs. And remember run mysql_upgrade command.
1. Install MySQL Database 5.7.17 on Fedora 25/24/23, CentOS 7.3/6.8/5.11, Red Hat (RHEL)7.3/6.8/5.111. Change root usersu -
## OR ##
sudo su -
2. Install MySQL YUM repository.
# CentOS 7 and Red Hat (RHEL) 7 #
#
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
# CentOS 6 and Red Hat (RHEL) 6 #
#
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm
# CentOS 5 and Red Hat (RHEL) 5 #
#
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el5-7.noarch.rpm
3. Update or Install MySQL 5.7.17
3. Update or Install MySQL 5.7.17
# yum install mysql-community-server
4. Start MySQL server and auto start MySQL on boot
4. Start MySQL server and auto start MySQL on boot
CentOS 7.3 and Red Hat (RHEL) 7.3
# systemctl start mysqld.service
# systemctl enable mysqld.service
CentOS 6.8/5.11 and Red Hat (RHEL) 6.8/5.11
# /etc/init.d/mysql start
CentOS 6.8/5.11 and Red Hat (RHEL) 6.8/5.11
# /etc/init.d/mysql start
#
chkconfig --levels 235 mysqld on
5. Get Your Generated Random root Password
# grep 'A temporary password is generated for root@localhost' /var/log/mysqld.log |tail -1
Example Output:
# 2015-11-20T21:11:44.229891Z 1 [Note] A temporary password is generated for root@localhost: -et)QoL4MLid
And root password is: -et)QoL4MLid
5. Get Your Generated Random root Password
# grep 'A temporary password is generated for root@localhost' /var/log/mysqld.log |tail -1
Example Output:
# 2015-11-20T21:11:44.229891Z 1 [Note] A temporary password is generated for root@localhost: -et)QoL4MLid
And root password is: -et)QoL4MLid
6. MySQL Secure Installation
- Change root password
- Remove anonymous users
- Disallow root login remotely
- Remove test database and access to it
- Reload privilege tables
Start MySQL Secure Installation with following command
# /usr/bin/mysql_secure_installation
Output:
Securing the MySQL server deployment.
Enter password for user root:
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing
configuration
of the plugin.
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any
other key for No) : Y
New password:
Re-enter new password:
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press
y|Y for Yes, any other key for No) : Y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key
for No) : Y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other
key for No) : Y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes,
any other key for No) : Y
- Dropping test
database...
Success.
- Removing privileges
on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other
key for No) : Y
Success.
All done!
Note: If you don’t want some reason, do a “MySQL Secure Installation”
then at least it’s very important to change the root user’s password
# mysqladmin -u root password [your_password_here]
## Example ##
# mysqladmin -u root password myownsecrectpass
7. Connect to MySQL database (localhost) with password
# mysql -u root -p
8. Create Database, Create MySQL User and Enable Remote
Connections to MySQL Database
This example uses following parameters:
DB_NAME = testdb
USER_NAME = testdb_user
REMOTE_IP = 10.0.15.25
PASSWORD = password123
PERMISSIONS = ALL
SQL
## CREATE DATABASE ##
mysql> CREATE DATABASE testdb;
## CREATE USER ##
mysql> CREATE USER 'testdb_user'@'10.0.15.25' IDENTIFIED
BY 'password123';
## GRANT PERMISSIONS ##
mysql> GRANT ALL ON testdb.* TO 'testdb_user'@'10.0.15.25';
## FLUSH PRIVILEGES,
Tell the server to reload the grant tables
##
mysql> FLUSH PRIVILEGES;
Enable Remote Connection to MySQL Server –> Open MySQL
Port (3306) on Iptables Firewall (as root user again)
CentOS/Red Hat (RHEL) 7.3
# firewall-cmd --permanent --zone=public --add-service=mysql
## OR ##
# firewall-cmd --permanent --zone=public --add --port=3306/tcp
Restart firewalld.service
# systemctl restart firewalld.service
CentOS/Red Hat (RHEL) 6.8/5.11
# vi /etc/sysconfig/iptables file:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j
ACCEPT
# service iptables restart
Test remote connection
# mysql -h 10.0.15.25 -u myusername -p
Comments
Post a Comment