This is a step-by-step guide of what you need to do in order to install and setup MySQL on a new server.
We’ll prepare a fresh CentOS 6 system (64 bit) for use as a database server. All you need is access to an SSH client and your server root credentials.
Preparing the System
The first thing I’d like to do is make sure I have all available updates. So once I log in I run
This can take some time so grab a coffee while you wait. Once yum has finished, let’s check if MySQL is already installed on your system:
If you get “command not found” then you know you need to install MySQL.
Installing MySQL and MySQL Server
MySQL consists of two parts: the client and the server. In order for our system to run the daemon which will process external requests we need both on our system. Here’s how we get those:
yum install mysql mysql-server
This will take a minute or two. No need to restart your server, all you need to to is start MySQL with
service mysqld start
and it will be available for use. You’ll see the following message:
To 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 yourdomain.com 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 /usr/mysql-test ; perl mysql-test-run.pl Please report any problems with the /usr/bin/mysqlbug script!
Securing the installation
Looks like we need to do two things: set a root password and secure the installation. You can do these steps manually, but MySQL is rather nice in that it provides a script which you can use to secure your installation. Note that this path may be different on your system:
The script will ask you the following questions:
- current root password (in our case it’s not set so hit enter)
- remove anonymous users (say yes)
- disallow remote login (in our case we want remote login active so we say no here, but if you’re using MySQL on a system which will not need this then say yes here)
- remove test database and access to it (say yes)
- reload all privieleges (say yes)
Now you can access MySQL with the following command:
Starting MySQL at boot time
You will likely need to make sure MySQL is running when you reboot the server, it’s cumbersome to start it manually every time you do that. This will take care of it:
chkconfig --levels 235 mysqld on
We’re done – MySQL is now running on your server and yours to populate.
Have fun 😉