2016-07-30 8 views
0

Adminer을 사용하여 MariaDB 데이터베이스에 연결하려고했지만 Login 단추를 누르면 "Permission denied"오류가 발생합니다. 예를 들어 다음과 같은 경우 "Access denied"가 아닙니다. 암호가 잘못되었습니다.root @ localhost로 Adminer에서 "Permission denied"오류가 발생했습니다.

MariaDB를 사용하는 것은 이번이 처음이며, CentOS에 대한 새로운 경험이기도합니다. 여기서 잘못된 점을 잘 모르겠습니다. 내 시스템에 대한 일부 디버깅 및 설정은 다음과 같습니다.

PHP에서 MariaDB에 연결하면 문제가 해결됩니다. 이 테스트 스크립트 :

$ sudo netstat -tlpn | grep mysqld 
tcp  0  0 127.0.0.1:3306   0.0.0.0:*    LISTEN  16428/mysqld 

MariaDB 보조금 : Adminer에서

MariaDB [(none)]> show grants; 
+--------------------------------------------------------------------------------------------------+ 
| Grants for [email protected]                  | 
+--------------------------------------------------------------------------------------------------+ 
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '...' WITH GRANT OPTION | 
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION         | 
+--------------------------------------------------------------------------------------------------+ 

설정 :

<?php 
$db = mysqli_connect('127.0.0.1','root','mypassword') 
    or die(mysqli_error()); 
var_dump($db); 

콘솔도 또한 netstat 작동하고,에서 mysql -h 127.0.0.1 -u root -p를 사용 mysqld가 인식하는 것을 확인

System: MySQL 
Server: 127.0.0.1 
Username: root 
Password: mypassword 
Database: (none) 

내 시스템이에 대한

CentOS 7 
Apache 2.4.6 
PHP 5.4.16 
MariaDB 10.1.16 
Adminer 4.2.5 

답변

1

주된 이유는 잘못된 SELinux를 설정이지만,이 영향을 미치는 중요한 MariaDB 버그도 있습니다.

SELinux는 HTTP 서버 스크립트 및 모듈이 데이터베이스 서버에 연결할 수 있는지 여부를 정의하는 부울 httpd_can_network_connect_db을가집니다. off이 기본값 :

$ getsebool httpd_can_network_connect_db 
httpd_can_network_connect_db --> off 

on 켜기 및 * 아파치가 Server: 127.0.0.1 사용 Adminer에서 연결 허용 다시 시작 :

sudo setsebool -P httpd_can_network_connect_db on 
sudo systemctl restart httpd 

*) 나는 다시 시작이 정말 필요한지 여부를 모르겠어요.

흥미롭게도 Server: localhost을 사용하여 연결하려고하면 작동하지 않습니다. 이는 SELinux에 컨텍스트와 관련된 MariaDB 10.1.16에서 중요한 버그입니다 :이 버그에 대한 MDEV-10405 & MDEV-10404

주위 일은 NoNewPrivileges=true 설정을 사용하지 않도록하는 것입니다.

파일 /etc/systemd/system/mariadb.service.d/myfix.conf 만들기 :

# temporary fix for bug https://jira.mariadb.org/browse/MDEV-10404 
[Service] 
NoNewPrivileges=false 

을 그리고 실행

sudo systemctl daemon-reload 
sudo systemctl restart mariadb