--- title: "PHPMyAdmin Configuration for Multi Database Server" description: How to configure the PHPMyAdmin application so that it can be used to manage multiple MySQL database servers. summary: How to configure the PHPMyAdmin application so that it can be used to manage multiple MySQL database servers. date: 2012-08-15T17:49:16+07:00 lastmod: draft: false noindex: false # comments: false nav_weight: 1000 series: # - Tutorial categories: - SysAdmin tags: - PHP - MySQL images: authors: - ditatompel --- On this occasion I would like to share how to configure the **PHPMyAdmin** application so that it can be used to manage **multiple MySQL database servers** (remotely). When writing this article, the author used PHPMyAdmin Version `3.5.2.1` with Apache Web Server running on Linux OS. Meanwhile, the remote MySQL database server uses version `5.x`. Previously, the author assumed that you were able to run PHPMyAdmin on your computer. ## Remote MySQL Server On the remote MySQL server, create a new database user that we will use to access the server from our PC or personal computer. First, log in to MySQL and create a new user: ```sql CREATE USER 'user_name'@'ip_address' IDENTIFIED BY 'password'; ``` **Where**: - `user_name` is the database username that we use to log in to the database server. - `ip_address` is the IP address or hostname where PHPMyAdmin is installed. - `password` is the password to log in to the database server. After that, grant the required permissions to the user with the **GRANT** command: ```sql GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'ip_address'; ``` ![MySQL GRANT](phpmyadmin1.png#center) **Where**: - `ALL PRIVILEGES` means all permissions that the user has, except for the **GRANT** option to other users. - `*.*` means all databases and tables. The first asterisk represents the database name, and the second asterisk represents the table in the database. - `'user_name'@'ip_address'` is the username that we created previously. For example, if you only want **SELECT** permission, and **UPDATE** permissions for the `tbl_transaction` table in the `db_website` database for user `finance` with IP address `192.169.1.1`, use: ```sql GRANT SELECT, UPDATE ON db_website.tbl_transaction TO 'finance'@'192.169.1.1'; ``` Then, finally, don't forget to **FLUSH PRIVILEGES**. ```sql FLUSH PRIVILEGES; ``` ## PHPMyAdmin Client Find where the PHPMyAdmin application is located. In this tutorial, the location is `/usr/share/webapps/phpmyadmin`. Edit the config.inc.php file in that directory and add the following configuration: ```php $i++; $cfg['Servers'][$i]['verbose'] = 'MRTG IP 169.1/28'; $cfg['Servers'][$i]['host'] = '192.168.1.5'; $cfg['Servers'][$i]['port'] = '3306'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; ``` ![PHPMyAdmin `config.inc.php`](phpmyadmin2.png#center) **Where :** - `verbose` is the server name that will appear in PHPMyAdmin. - `host` is the IP address or domain name of the remote MySQL database server. - `port` is the port number of the remote MySQL database server (default `3306`). - `connect_type` is the connection type used. There are two options: `socket` and `tcp`. We use `tcp` because the MySQL server is not on the same server as the PHPMyAdmin server that is currently running. - `extension` is the PHP MySQL extension used for the above connection. - `auth_type` is the authentication mode used for login. After that, try opening the PHPMyAdmin page in a web browser. Then additional options will appear on the login page, as follows: ![PMA Login Page](phpmyadmin3.png#center) Then, simply log in with your username and password according to the server choice. With this feature, you can perform or utilize synchronization from a remote server to a local server or vice versa: ![PHPMyAdmin View](phpmyadmin4.png#center) Or monitor remote databases from your personal computer, even though PHPMyAdmin is not installed on the remote MySQL server. ![MySQL Process PHPMyAdmin](phpmyadmin5.png) Hope it's useful.