How to Setup MySQL Server + phpMyadmin on Linux in Azure/AWS/GCP

Setup and install MySQL Server in the cloud on Azure, AWS or GCP using the LAMP stack on any of the cloud platforms that includes MySQL Server, Apache Web Server, PHP, PHPMyadmin running on either Ubuntu 20.04 or CentOS server using the publicly available image on the following cloud marketplaces below:

Install Cloud MySQL Server + phpMyadmin Linux

Table of Contents

MySQL Server features

  • MySQL is a relational database management system (RDBMS) based on the SQL (Structured Query Language) queries.
  • Tested with different compilers.
  • CMake for greater portability.
  • Tested with Purify (a commercial memory leakage detector) as well as with Valgrind, a GPL tool.
  • Uses multi-layered server design with independent modules. 
  • Fully multithreaded by using kernel threads, to use multiple CPUs if they are available.
  • Transactional and nontransactional storage engines.
  • Uses very fast B-tree disk tables  with index compression.
  • Designed to make it relatively easy to add other storage engines. This is useful if you want to provide an SQL interface for an in-house database.
  • Uses a very fast thread-based memory allocation system.
  • Executes very fast joins using an optimized nested-loop join.
  • Implements in-memory hash tables, which are used as temporary tables.
  • Implements SQL functions using a highly optimized class library that should be as fast as possible. Usually there is no memory allocation at all after query initialization.
  • Multilingual: APIs for C, C++, Eiffel, Java, Perl, PHP, Python, Ruby.

phpMyadmin Server features

  • User friendly Web Interface − phpMyAdmin UI is quite intuitive and easy to use.
  • phpMyAdmin supports most of the MySQL/MariaDB features as listed below
  • Browse databases, tables, view, fields and indexes.
  • Create/Copy/Drop/Rename databases, tables, view, fields and indexes.
  • Server maintenance, database/tables configuration proposal.
  • Execute, Edit and bookmark SQL statements, batch queries.
  • Manage user accounts and privilleges.
  • Manage stored procedures and triggers.
  • Import Data − Data can be imported from from CSV and SQL files.
  • Export Data − Data can be exported to various formats like CSV, SQL, XML, PDF, ISO/IEC 26300
  • Query-by-example − phpMyAdmin Query-by-example (QBE) can be used to create complex queries.
  • Search − phpMyAdmin allows to searching globally in a database or a subset of database.
  • Transformation − phpMyAdmin can help in transforming stored data into any format using a set of built-in functions, for example displaying BLOB-data as image or download-link.

Getting Started with setting up MySQL Server +phpMyadmin

Once your MySQL server has been deployed, the following links explain how to connect to a Linux VM:

 

 

Once connected and logged in, the following section explains how to start using MySQL (Scrowl down to the OS/Cloud platform you’re using). 

Configure MySQL on Ubuntu Server on Azure / GCP

Once logged in via your SSH terminal, the first step is to get the MySQL configuration ready.

 

Run the following command in order to start the MySQL configuration:

				
					 

sudo mysql_secure_installation
				
			

Follow the onscreen prompts. You should reply with y (yes) to the rest of the prompts, and configure a root password when prompted to do so. This setup only takes a moment to complete.

Next, run the following commands, to set a new password for the root account:

				
					sudo mysql
 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_pass_here';
 FLUSH PRIVILEGES;
				
			

Using MySQL on CentOS Server on Azure / GCP

Once logged in via your ssh terminal, the first thing to do is to set a new password for the MySQL root user account by running the following commands. Replace the text ‘your_pass_here‘ with your new password.

				
					mysql --user=root --password
 Enter password: mysql1234
 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_pass_here';
 FLUSH PRIVILEGES;
				
			

Using MySQL on Ubuntu / CentOS Server on AWS

Once logged in via your ssh terminal, the first thing to do is to set a new password for the MySQL root user account by running the following commands. Replace the text ‘your_pass_here‘ with your new password.

				
					mysql --user=root --password
 Enter password: mysql1234
 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_pass_here';
 FLUSH PRIVILEGES;
				
			

Using phpMyadmin to manage MySQL databases on Azure/AWS/GCP

To login to phpmyadmin, browse to the following URL on your web browser:

 

youserverip/phpmyadmin

You can login using your root account or you can create a new user account by running the following commands from your ssh terminal:

				
					sudo mysql
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'some_very_complex_password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;
				
			

MySQL Server Firewall Ports

Default MySQL port is: TCP 3306

Phpmyadmin port is: TCP 80

 

The links below explain how to modify / create firewall rules depending on which cloud platform you are using.

 

To setup AWS firewall rules refer to – AWS Security Groups

To setup Azure firewall rules refer to – Azure Network Security Groups

To setup Google GCP firewall rules refer to – Creating GCP Firewalls

Support / Documentation

If you experience any issues on getting this MySQL server setup on any of the cloud platforms, please contact us and we will assist.

 

For documentation, please refer to the following links:

 

Using MySQL:

https://dev.mysql.com/doc/mysql-getting-started/en/

 

Using phpMyadmin:

https://docs.phpmyadmin.net/en/latest/

 

Using Apache:

http://httpd.apache.org/docs/

Avatar for Andrew Fitzgerald
Andrew Fitzgerald

Cloud Solution Architect. Helping customers transform their business to the cloud. 20 years experience working in complex infrastructure environments and a Microsoft Certified Solutions Expert on everything Cloud

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x