Install MySQL Database 5.7.13 on Fedora 24/23/22, CentOS 7.2/6.8/5.11, Red Hat (RHEL) 7.2/6.8/5.11
1. Change root user
su -
## OR ##
sudo -i
2. Install MySQL YUM repository
Fedora
## Fedora 24 ##
dnf install https://dev.mysql.com/get/mysql57-community-release-fc24-8.noarch.rpm
## Fedora 23 ##
dnf install https://dev.mysql.com/get/mysql57-community-release-fc23-8.noarch.rpm
## Fedora 22 ##
dnf install https://dev.mysql.com/get/mysql57-community-release-fc22-8.noarch.rpm
CentOS and Red Hat (RHEL)
## CentOS 7 and Red Hat (RHEL) 7 ##
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
## CentOS 6 and Red Hat (RHEL) 6 ##
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el6-8.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.13
Fedora 24/23/22
dnf install mysql-community-server
Fedora 21, CentOS 7.2/6.8/5.11 and Red Hat (RHEL) 7.2/6.8/5.11
yum install mysql-community-server
4. Start MySQL server and autostart MySQL on boot
Fedora 24/23/22 and CentOS 7.2
systemctl start mysqld.service ## use restart after update
systemctl enable mysqld.service
CentOS 6.8/5.11 and Red Hat (RHEL) 6.8/5.11
/etc/init.d/mysql start ## use restart after update
## OR ##
service mysql start ## use restart after update
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
6. Start MySQL Secure Installation with following command
$ /usr/bin/mysql_secure_installation
EXAMPLE 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!
7. Connect to MySQL database (localhost) with password
mysql -u root -p
## OR ##
mysql -h localhost -u root -p
8. Create Database, Create MySQL User and Enable Remote Connections to MySQL Database
## CREATE DATABASE ##
mysql> CREATE DATABASE webdb;
## CREATE USER ##
mysql> CREATE USER 'webdb_user'@'10.0.15.25' IDENTIFIED BY 'password123';
## GRANT PERMISSIONS ##
mysql> GRANT ALL ON webdb.* TO 'webdb_user'@'10.0.15.25';
## FLUSH PRIVILEGES, Tell the server to reload the grant tables ##
mysql> FLUSH PRIVILEGES;
9. Test remote connection
# mysql -h 10.0.15.25 -u myusername -p