Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using PHPMyAdmin to administer Amazon RDS

I can't get PHPMyAdmin to connect to my Amazon RDS instance. I've granted permissions for my IP address to the DB Security Group which has access to this database I'm trying to access. Here's what I'm working with...

    $cfg['Servers'][$i]['pmadb'] = $dbname;     $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';     $cfg['Servers'][$i]['relation'] = 'pma_relation';     $cfg['Servers'][$i]['table_info'] = 'pma_table_info';     $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';     $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';     $cfg['Servers'][$i]['column_info'] = 'pma_column_info';     $cfg['Servers'][$i]['history'] = 'pma_history';     $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';      /* Uncomment the following to enable logging in to passwordless accounts,      * after taking note of the associated security risks. */     // $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;      /* Advance to next server for rest of config */     $i++; }      $cfg['Servers'][$i]['auth_type'] = 'http';  //is this correct?     $cfg['Servers'][$i]['user'] = 'MASTER-USER';     $cfg['Servers'][$i]['password'] = 'MASTER-USER-PASSWORD';     $cfg['Servers'][$i]['hide_db'] = '(mysql|information_schema|phpmyadmin)';     /* Server parameters */     $cfg['Servers'][$i]['host'] = 'MY-DB.us-east-1.rds.amazonaws.com';     $cfg['Servers'][$i]['connection_type'] = 'socket';     $cfg['Servers'][$i]['port'] = PORT; 

I'm not sure if my configuration is correct.

I'm getting this error:

#2013 - Lost connection to MySQL server at 'reading initial communication packet', system error: 110

Does anyone have any advice?

like image 703
Webnet Avatar asked Dec 09 '10 19:12

Webnet


People also ask

Can phpMyAdmin connect remote database?

For connecting the remote database, we will use XAMPP on Windows 10 and use phpMyAdmin console to connect to a remote database. XAMPP is a very well know tool to set up a localhost server and phpMyAdmin MySQL database management tool. You can easily download the setup and install it on your local.

Is Amazon RDS compatible with MySQL?

With Amazon RDS, you can deploy scalable MySQL servers in minutes with cost-efficient and resizable hardware capacity. Amazon RDS for MySQL frees you up to focus on application development by managing time-consuming database administration tasks including backups, software patching, monitoring, scaling and replication.

How do I access AWS RDS database from local machine?

To connect to a private RDS DB instance from a local machine using an EC2 instance as a jump server, follow these steps: Launch and configure your EC2 instance and configure the network setting of the instance. Configure the RDS DB instance's security groups. Connect to the RDS DB instance from your local machine.


1 Answers

I found most of the answers in this question lack explanation. To add RDS server in phpMyAdmin installed in EC2, you can first login to your EC2 via SSH. Then, issue the following command to edit the Config file of phpMyAdmin (use vi, nano or any other favorite text editing tool):

sudo vi /etc/phpMyAdmin/config.inc.php # Amazon Linux sudo vi /etc/phpmyadmin/config.inc.php # Ubuntu Linux 

Find the following lines in config.inc.php:

/*  * End of servers configuration  */ 

Append the following lines above the "End of servers configuration" line:

$i++; $cfg['Servers'][$i]['host'] = 'xxxxx.xxxxxxxxxx.us-east-1.rds.amazonaws.com'; $cfg['Servers'][$i]['port'] = '3306'; $cfg['Servers'][$i]['verbose'] = 'YOUR_SERVER_NAME'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysql'; $cfg['Servers'][$i]['compress'] = TRUE; 

which YOUR_SERVER_NAME is the name being displayed in phpMyAdmin login page's selection box. If you remove this line, the whole RDS hostname will be displayed in the selection box (which is too long, obviously). Remember to save the config.inc.php.

There are several other config settings, which you can find the details in the official documentation.


Note: The other answer suggests auto login with preset username & password in Config file:

$cfg['Servers'][$i]['auth_type']     = 'config'; $cfg['Servers'][$i]['user']          = '__FILL_IN_DETAILS__'; $cfg['Servers'][$i]['password']      = '__FILL_IN_DETAILS__'; 

which is extremely dangerous if your phpMyAdmin is exposed to public. You don't want to show your database schema to everyone, do you? If you really want to use automatic login, make sure your phpMyAdmin is accessible via specific IPs only.

like image 111
Raptor Avatar answered Sep 22 '22 05:09

Raptor