Linux

無法使用 phpMyAdmin 登錄遠端 MariaDB 伺服器,但可以在 shell 中使用

  • July 7, 2016

我最近配置了兩台伺服器。第一個使用 Apache 和 phpMyAdmin。在另一台伺服器上,我正確配置了 maria-DB 伺服器。

phpMyAdmin 它正在讀取配置文件,但我無法連接到 MariaDB 伺服器並且 PMA 正在拋出

#2002 Cannot log in to the MySQL server

phpMyAdmin 錯誤

使用mysql命令從 web 伺服器連接到數據庫伺服器並使用相同的使用者/密碼,我可以成功連接到數據庫伺服器。

mysql沒有錯誤,mysql的所有埠都在防火牆中打開,沒有php錯誤。我沒有任何運氣找到問題。

編輯:

通過 Shell 訪問伺服器

[root@pw000i rafael]# mysql -h [IP ADRESS TO THE REMOTE SERVER]  -u rafael -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.36-MariaDB-log MariaDB Server

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

來自 PhpMyAdmin 的 config.inc.php

<?php
/**
* phpMyAdmin configuration file, you can use it as base for the manual
* configuration. For easier setup you can use "setup/".
*
* All directives are explained in Documentation.html and on phpMyAdmin
* wiki <http://wiki.phpmyadmin.net>.
*/

/*
* This is needed for cookie based authentication to encrypt password in
* cookie
*/
$cfg['blowfish_secret'] = 'MY SECRET PASSPHRASE IS HIDDEN'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

/**
* Server(s) configuration
*/
$i = 0;

// The $cfg['Servers'] array starts with $cfg['Servers'][1].  Do not use
// $cfg['Servers'][0]. You can disable a server config entry by setting host
// to ''. If you want more than one server, just copy following section
// (including $i incrementation) serveral times. There is no need to define
// full server array, just define values you need to change.
$i++;
$cfg['Servers'][$i]['host']          = '10.XX.X.XXX'; // MySQL hostname or IP ad                                                                  dress
$cfg['Servers'][$i]['port']          = '';          // MySQL port - leave blank                                                                   for default port
$cfg['Servers'][$i]['socket']        = '';          // Path to the socket - leav                                                                  e blank for default socket
$cfg['Servers'][$i]['connect_type']  = 'tcp';       // How to connect to MySQL s                                                                  erver ('tcp' or 'socket')
$cfg['Servers'][$i]['extension']     = 'mysqli';    // The php MySQL extension t                                                                  o use ('mysql' or 'mysqli')
$cfg['Servers'][$i]['compress']      = FALSE;       // Use compressed protocol f                                                                  or the MySQL connection
                                                   // (requires PHP &gt;= 4.3.0)
$cfg['Servers'][$i]['controluser']   = '';          // MySQL control user settin                                                                  gs
                                                   // (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']          = 'rafael';          // MySQL user
$cfg['Servers'][$i]['password']      = '';          // MySQL password (only need                                                                  ed
                                                   // with 'config' auth_type)
$cfg['Servers'][$i]['only_db']       = '';          // If set to a db-name, only
                                                   // this db is displayed in l                                                                  eft frame
                                                   // It may also be an array o                                                                  f db-names, where sorting order is relevant.
$cfg['Servers'][$i]['hide_db']       = '';          // Database name to be hidde                                                                  n from listings
$cfg['Servers'][$i]['verbose']       = 'new-db-mariaDB';          // Verbose nam                                                                  e for this host - leave blank to show the hostname

$cfg['Servers'][$i]['pmadb']         = '';          // Database used for Relatio                                                                  n, Bookmark and PDF Features
                                                   // (see scripts/create_table                                                                  s.sql)
                                                   //   - leave blank for no su                                                                  pport
                                                   //     DEFAULT: 'phpmyadmin'
$cfg['Servers'][$i]['bookmarktable'] = '';          // Bookmark table
                                                   //   - leave blank for no bo                                                                  okmark support
                                                   //     DEFAULT: 'pma_bookmar                                                                  k'
$cfg['Servers'][$i]['relation']      = '';          // table to describe the rel                                                                  ation between links (see doc)
                                                   //   - leave blank for no re                                                                  lation-links support
                                                   //     DEFAULT: 'pma_relatio                                                                  n'
$cfg['Servers'][$i]['table_info']    = '';          // table to describe the dis                                                                  play fields
                                                   //   - leave blank for no di                                                                  splay fields support
                                                   //     DEFAULT: 'pma_table_i                                                                  nfo'
$cfg['Servers'][$i]['table_coords']  = '';          // table to describe the tab                                                                  les position for the PDF schema
                                                   //   - leave blank for no PD                                                                  F schema support
                                                   //     DEFAULT: 'pma_table_c                                                                  oords'
$cfg['Servers'][$i]['pdf_pages']     = '';          // table to describe pages o                                                                  f relationpdf
                                                   //   - leave blank if you do                                                                  n't want to use this
                                                   //     DEFAULT: 'pma_pdf_pag                                                                  es'
$cfg['Servers'][$i]['column_info']   = '';          // table to store column inf                                                                  ormation
                                                   //   - leave blank for no co                                                                  lumn comments/mime types
                                                   //     DEFAULT: 'pma_column_                                                                  info'
$cfg['Servers'][$i]['history']       = '';          // table to store SQL histor                                                                  y
                                                   //   - leave blank for no SQ                                                                  L 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 prev                                                                  ents compatibility
                                                   // checks and thereby increa                                                                  ses performance.
$cfg['Servers'][$i]['AllowRoot']     = TRUE;        // whether to allow root log                                                                  in
$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 pa                                                                  ssword. Do not change the FALSE
                                    = FALSE;       // default unless you're run                                                                  ning a passwordless MySQL server
$cfg['Servers'][$i]['designer_coords']              // Leave blank (default) for                                                                   no Designer support, otherwise
                                    = '';          // set to suggested 'pma_des                                                                  igner_coords' if really needed
$cfg['Servers'][$i]['bs_garbage_threshold']         // Blobstreaming: Recommente                                                                  d default value from upstream
                                    = 50;          //   DEFAULT: '50'
$cfg['Servers'][$i]['bs_repository_threshold']      // Blobstreaming: Recommente                                                                  d default value from upstream
                                    = '32M';       //   DEFAULT: '32M'
$cfg['Servers'][$i]['bs_temp_blob_timeout']         // Blobstreaming: Recommente                                                                  d default value from upstream
                                    = 600;         //   DEFAULT: '600'
$cfg['Servers'][$i]['bs_temp_log_threshold']        // Blobstreaming: Recommente                                                                  d default value from upstream
                                    = '32M';       //   DEFAULT: '32M'
/*
* End of servers configuration
*/

/*
* Directories for saving/loading files from server
*/
$cfg['UploadDir'] = '/var/lib/phpMyAdmin/upload';
$cfg['SaveDir']   = '/var/lib/phpMyAdmin/save';

/*
* Disable the default warning that is displayed on the DB Details Structure
* page if any of the required Tables for the relation features is not found
*/
$cfg['PmaNoRelation_DisableWarning'] = TRUE;
?&gt;

我在兩台伺服器上都使用 Fedora 20。有任何想法嗎?

解決了,有罪的是SELinux

[root@pw000i rafael]# getsebool -a | grep httpd
httpd_anon_write --&gt; off
httpd_builtin_scripting --&gt; on
httpd_can_check_spam --&gt; off
httpd_can_connect_ftp --&gt; off
httpd_can_connect_ldap --&gt; off
httpd_can_connect_mythtv --&gt; off
httpd_can_connect_zabbix --&gt; off
httpd_can_network_connect --&gt; off
httpd_can_network_connect_cobbler --&gt; off
httpd_can_network_connect_db --&gt; off     &lt;----- THIS SETTING IT'S THE GUILTY 
httpd_can_network_memcache --&gt; off
httpd_can_network_relay --&gt; off
httpd_can_sendmail --&gt; off
httpd_dbus_avahi --&gt; off
httpd_dontaudit_search_dirs --&gt; off
httpd_enable_cgi --&gt; on
httpd_enable_ftp_server --&gt; off
httpd_enable_homedirs --&gt; off
httpd_execmem --&gt; off
httpd_graceful_shutdown --&gt; on
httpd_manage_ipa --&gt; off
httpd_mod_auth_ntlm_winbind --&gt; off
httpd_mod_auth_pam --&gt; off
httpd_read_user_content --&gt; off
httpd_run_stickshift --&gt; off
httpd_serve_cobbler_files --&gt; off
httpd_setrlimit --&gt; off
httpd_ssi_exec --&gt; off
httpd_sys_script_anon_write --&gt; off
httpd_tmp_exec --&gt; off
httpd_tty_comm --&gt; off
httpd_unified --&gt; off
httpd_use_cifs --&gt; off
httpd_use_fusefs --&gt; off
httpd_use_gpg --&gt; off
httpd_use_nfs --&gt; off
httpd_use_openstack --&gt; off
httpd_use_sasl --&gt; off
httpd_verify_dns --&gt; off

解決方案很簡單

[root@pw000i rafael]# setsebool -P httpd_can_network_connect_db on

引用自:https://serverfault.com/questions/583797