MySQL is a fast, multi-threaded, multi-user, and robust SQL database server. It is intended for mission-critical, heavy-load production systems and mass-deployed software.
To install MySQL, run the following command from a terminal prompt:
Once the installation is complete, the MySQL server should be started automatically. You can quickly check its current status via systemd:
The network status of the MySQL service can also be checked by running the
7 command at the terminal prompt:
When you run this command, you should see something similar to the following:
If the server is not running correctly, you can type the following command to start it:
A good starting point for troubleshooting problems is the systemd journal, which can be accessed at the terminal prompt with this command:
You can edit the files in
8 to configure the basic settings – log file, port number, etc. For example, to configure MySQL to listen for connections from network hosts, in the file
9, change the bind-address directive to the server’s IP address:
After making a configuration change, the MySQL daemon will need to be restarted:
Whilst the default configuration of MySQL provided by the Ubuntu packages is perfectly functional and performs well there are things you may wish to consider before you proceed.
MySQL is designed to allow data to be stored in different ways. These methods are referred to as either database or storage engines. There are two main engines that you’ll be interested in: InnoDB and MyISAM. Storage engines are transparent to the end user. MySQL will handle things differently under the surface, but regardless of which storage engine is in use, you will interact with the database in the same way.
Each engine has its own advantages and disadvantages.
While it is possible, and may be advantageous to mix and match database engines on a table level, doing so reduces the effectiveness of the performance tuning you can do as you’ll be splitting the resources between two engines instead of dedicating them to one.
As of MySQL 5.5 InnoDB is the default engine, and is highly recommended over MyISAM unless you have specific need for features unique to the engine.
Creating a tuned configuration
There are a number of parameters that can be adjusted within MySQL’s configuration files that will allow you to improve the performance of the server over time.
Many of the parameters can be adjusted with the existing database, however some may affect the data layout and thus need more care to apply.
First, if you have existing data, you will need to carry out a mysqldump and reload:
This will then prompt you for the root password before creating a copy of the data. It is advisable to make sure there are no other users or processes using the database whilst this takes place. Depending on how much data you’ve got in your database, this may take a while. You won’t see anything on the screen during this process.
Once the dump has been completed, shut down MySQL:
It’s also a good idea to backup the original configuration:
Next, make any desired configuration changes.
Then delete and re-initialise the database space and make sure ownership is correct before restarting MySQL:
The final step is re-importation of your data by piping your SQL commands to the database.
For large data imports, the ‘Pipe Viewer’ utility can be useful to track import progress. Ignore any ETA times produced by pv, they’re based on the average time taken to handle each row of the file, but the speed of inserting can vary wildly from row to row with mysqldumps:
Once that is complete all is good to go!
MySQL Tuner connects to a running MySQL instance and offer configuration suggestions to optimize the database for your workload. The longer the server has been running, the better the advice mysqltuner can provide. In a production environment, consider waiting for at least 24 hours before running the tool. You can install mysqltuner from the Ubuntu repositories:
Then once its been installed, run:
and wait for its final report. The top section provides general information about the database server, and the bottom section provides tuning suggestions to alter in your my.cnf. Most of these can be altered live on the server without restarting; look through the official MySQL documentation (link in Resources section) for the relevant variables to change in production. The following example is part of a report from a production database showing potential benefits from increasing the query cache:
It goes without saying that performance optimization strategies vary from application to application. So for example, what works best for Wordpress might not be the best for Drupal or Joomla. Performance can be dependent on the types of queries, use of indexes, how efficient the database design is and so on. You may find it useful to spend some time searching for database tuning tips based on what applications you’re using. Once you’ve reached the point of diminishing returns from database configuration adjustments, look to the application itself for improvements, or invest in more powerful hardware and/or scaling up the database environment.
Where is mysql database file location?
Typically, MySQL will store data in the default directory of /var/lib/mysql.
Where are mysql database files located Linux?
MySQL stores DB files in /var/lib/mysql by default, but you can override this in the configuration file, typically called /etc/my.
How can I see all mysql databases in Ubuntu?
1. Open the Command Prompt and navigate to the bin folder of your MySQL Server installation directory. Then connect to the server using the mysql -u root -p command. Enter the password and execute the SHOW DATABASES; command we have discussed above.
Where is MariaDB database stored in Ubuntu?
Look at your /etc/mysql/my. cnf file to see where your installation of MariaDB is configured to store data. The default is /var/lib/mysql but it is often changed, like for example if you are using a RAID array.