【问题标题】:phpMyAdmin with RDS & Elastic Beanstalk带有 RDS 和 Elastic Beanstalk 的 phpMyAdmin
【发布时间】:2014-12-12 20:03:44
【问题描述】:

我在 Amazon RDS 有一个加载了 Amazon Elastic Beanstalk 和 DB 的应用程序。我的应用程序能够联系运行良好的数据库,并且我可以从 AWS EC2 CLI 连接到 mySQL。

问题:我无法让 phpMyAdmin 连接到我的 Amazon RDS 实例。 (错误 #2002 无法登录 MySQL 服务器)

/etc/httpd/conf.d/phpMyAdmin.conf

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     <RequireAny>
       Require ip 127.0.0.1
       Require ip xx.xx.xx.xx
       Require ip ::1

     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     Order Deny,Allow
     Allow from 127.0.0.1
     Allow from xx.xx.xx.xx
     Allow from ::1
   </IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
   <IfModule mod_authz_core.c>
     <RequireAny>
       Require ip 127.0.0.1
       Require ip xx.xx.xx.xx
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     Order Deny,Allow
     Allow from 127.0.0.1
     Allow from xx.xx.xx.xx
     Allow from ::1
   </IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/libraries/>
    Order Deny,Allow
    Allow from All
</Directory>

<Directory /usr/share/phpMyAdmin/setup/lib/>
    Order Deny,Allow
    Allow from All
</Directory>

<Directory /usr/share/phpMyAdmin/setup/frames/>
    Order Deny,Allow
    Deny from All
    Allow from All
</Directory>


/etc/phpMyAdmin/config.inc.php

$i = 0;


$i++;
$cfg['Servers'][$i]['host']          = 'MYAWSRDS.rds.amazonaws.com'; // MySQL hostname or IP address
$cfg['Servers'][$i]['port']          = '3306';          // MySQL port - leave blank for default port
$cfg['Servers'][$i]['socket']        = '';          // Path to the socket - leave blank for default socket
$cfg['Servers'][$i]['connect_type']  = 'tcp';       // How to connect to MySQL server ('tcp' or 'socket')
$cfg['Servers'][$i]['extension']     = 'mysqli';    // The php MySQL extension to use ('mysql' or 'mysqli')
$cfg['Servers'][$i]['compress']      = FALSE;       // Use compressed protocol for the MySQL connection
                                                    // (requires PHP >= 4.3.0)
$cfg['Servers'][$i]['controluser']   = '';          // MySQL control user settings
                                                    // (this user must have read-only
$cfg['Servers'][$i]['controlpass']   = '';          // access to the "mysql/user"
                                                    // and "mysql/db" tables).
                                                    // The controluser is also
                                                    // used for all relational
                                                    // features (pmadb)
$cfg['Servers'][$i]['auth_type']     = 'cookie';    // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user']          = 'username'  // MySQL user
$cfg['Servers'][$i]['password']      = '';          // MySQL password (only needed
                                                    // with 'config' auth_type)
$cfg['Servers'][$i]['only_db']       = '';          // If set to a db-name, only
                                                    // this db is displayed in left frame
                                                    // It may also be an array of db-names, where sorting order is relevant.
$cfg['Servers'][$i]['hide_db']       = '';          // Database name to be hidden from listings
$cfg['Servers'][$i]['verbose']       = '';          // Verbose name for this host - leave blank to show the hostname

$cfg['Servers'][$i]['pmadb']         = '';          // Database used for Relation, Bookmark and PDF Features
                                                    // (see scripts/create_tables.sql)
                                                    //   - leave blank for no support
                                                    //     DEFAULT: 'phpmyadmin'
$cfg['Servers'][$i]['bookmarktable'] = '';          // Bookmark table
                                                    //   - leave blank for no bookmark support
                                                    //     DEFAULT: 'pma_bookmark'
$cfg['Servers'][$i]['relation']      = '';          // table to describe the relation between links (see doc)
                                                    //   - leave blank for no relation-links support
                                                    //     DEFAULT: 'pma_relation'
$cfg['Servers'][$i]['table_info']    = '';          // table to describe the display fields
                                                    //   - leave blank for no display fields support
                                                    //     DEFAULT: 'pma_table_info'
$cfg['Servers'][$i]['table_coords']  = '';          // table to describe the tables position for the PDF schema
                                                    //   - leave blank for no PDF schema support
                                                    //     DEFAULT: 'pma_table_coords'
$cfg['Servers'][$i]['pdf_pages']     = '';          // table to describe pages of relationpdf
                                                    //   - leave blank if you don't want to use this
                                                    //     DEFAULT: 'pma_pdf_pages'
$cfg['Servers'][$i]['column_info']   = '';          // table to store column information
                                                    //   - leave blank for no column comments/mime types
                                                    //     DEFAULT: 'pma_column_info'
$cfg['Servers'][$i]['history']       = '';          // table to store SQL history
                                                    //   - leave blank for no SQL query history
                                                    //     DEFAULT: 'pma_history'
$cfg['Servers'][$i]['verbose_check'] = TRUE;        // set to FALSE if you know that your pma_* tables
                                                    // are up to date. This prevents compatibility
                                                    // checks and thereby increases performance.
$cfg['Servers'][$i]['AllowRoot']     = TRUE;        // whether to allow root login
$cfg['Servers'][$i]['AllowDeny']['order']           // Host authentication order, leave blank to not use
                                     = '';
$cfg['Servers'][$i]['AllowDeny']['rules']           // Host authentication rules, leave blank for defaults
                                     = array();
$cfg['Servers'][$i]['AllowNoPassword']              // Allow logins without a password. Do not change the FALSE
                                     = FALSE;       // default unless you're running a passwordless MySQL server
$cfg['Servers'][$i]['designer_coords']              // Leave blank (default) for no Designer support, otherwise
                                     = '';          // set to suggested 'pma_designer_coords' if really needed
$cfg['Servers'][$i]['bs_garbage_threshold']         // Blobstreaming: Recommented default value from upstream
                                     = 50;          //   DEFAULT: '50'
$cfg['Servers'][$i]['bs_repository_threshold']      // Blobstreaming: Recommented default value from upstream
                                     = '32M';       //   DEFAULT: '32M'
$cfg['Servers'][$i]['bs_temp_blob_timeout']         // Blobstreaming: Recommented default value from upstream
                                     = 600;         //   DEFAULT: '600'
$cfg['Servers'][$i]['bs_temp_log_threshold']        // Blobstreaming: Recommented default value from upstream
                                     = '32M';       //   DEFAULT: '32M'


$cfg['UploadDir'] = '/var/lib/phpMyAdmin/upload';
$cfg['SaveDir']   = '/var/lib/phpMyAdmin/save';


$cfg['PmaNoRelation_DisableWarning'] = TRUE;

【问题讨论】:

  • phpMyAdmin 运行在什么服务器上?您从命令行客户端连接的同一台 AWS EC2 服务器?
  • 是的,phpMyAdmin 在同一个 EC2 服务器上

标签: php mysql amazon-ec2 phpmyadmin amazon-rds


【解决方案1】:

config.inc.php 中尝试使用$cfg['Servers'][$i]['host'] = 'localhost';$cfg['Servers'][$i]['host'] = '127.0.0.1';

可能发生的情况是您的 MySQL 服务器不接受来自外部 IP 地址的连接;当您在 host 指令中使用完整的主机名时,它似乎来自外部连接(即使它在同一台机器上,网络对主机的查找方式也不同)。这些值中的任何一个都将强制它在不转到外部地址的情况下进行连接(尽管它们使用不同的方式,这就是我们将尝试两者的原因)。

尝试使用“localhost”时,您可能还需要将 connect_type 更改为“socket”。

【讨论】:

  • MySQL 服务器与 EC2 不同,它的 RDS - 所以我只能使用外部 IP
  • 您是否尝试使用RDS实例的内部IP?不是 RDS 端点?
【解决方案2】:

这取自另一个类似问题的评论:

尝试将主机更改为您的 RDS 端点:

$cfg['Servers'][$i]['host'] = 'localhost' to $cfg['Servers'][$i]['host'] = 'xxx.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com'

【讨论】:

  • 它与我拥有的代码相同,但它不起作用。不管怎样,谢谢你的努力。
  • 我遇到了类似的问题,但最终在我的开发计算机上使用了 mysql 工作台而不是 phpmyadmin。设置需要 5 分钟。但是对于 phomyadmin,有人建议使用 RDS 实例的内部 IP 而不是外部域端点,因为它是从 aws 本身内部调用的。虽然我自己没有尝试过。希望你能解决。
  • 我通过设置 adminer 而不是 phpMyAdmin 对其进行了排序,但我只是想知道问题出在哪里
猜你喜欢
  • 2017-06-06
  • 2011-09-06
  • 2018-08-19
  • 2017-06-30
  • 2014-02-08
  • 2014-07-21
  • 2013-08-12
  • 2014-07-03
  • 2016-08-24
相关资源
最近更新 更多