programing

MySQL Workbench에서 Mariadb(Centos 7)에 액세스할 수 없음

goodsources 2023. 1. 13. 19:53
반응형

MySQL Workbench에서 Mariadb(Centos 7)에 액세스할 수 없음

설치 완료MariadbCentos 7접속을 시도하고 있습니다.MYSQL Workbench.

다음 작업을 수행했습니다.

MariaDB를 기동하여 다음 명령을 실행합니다.

 systemctl start mariadb.service

자동 시작 MariaDB는 다음 명령을 실행합니다.

 systemctl enable mariadb.service

MariaDB를 시작한 후(이 작업은 한 번만 수행) 다음 명령을 실행합니다.

  /usr/bin/mysql_secure_installation

이 작업을 실행할 때 익명 사용자 로그인을 삭제했습니다.

포트 /etc/my.cnf.d/server.cnf #Mariadb 네트워크 설정도 변경해야 합니다.

[mysqld]
# comment out the bind address
#bind_address=127.0.0.1 

이제 에러가 납니다.

[root@localhost ~]# mysql -u root -p mcellblock -h 192.168.159.163 -P 3306
Enter password:
ERROR 1130 (HY000): Host '192.168.159.163' is not allowed to connect to this MariaDB server

다음으로 접속 권한을 유효하게 했습니다.

  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
  GRANT ALL PRIVILEGES ON *.* TO 'mcb'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
  FLUSH PRIVILEGES;

  MariaDB [mcellblock]> select User, Host, password from mysql.user where Host <> 'localhost';
  +------+-----------------------+-------------------------------------------+
  | User | Host                  | password                                  |
  +------+-----------------------+-------------------------------------------+
  | root | localhost.localdomain | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
  | root | 127.0.0.1             | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
  | root | ::1                   | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
  | root | %                     | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
  | mcb  | %                     | *A071D903A1ABA9752B05C16C573A095C80A7AFAD |
  +------+-----------------------+-------------------------------------------+
  5 rows in set (0.00 sec)

이제 터미널을 통해 접속하려고 하면 다음과 같이 동작합니다.

  $ mysql -u mcb -p mcellblock -h 192.168.159.163 -P 3306
  Enter password:
  Welcome to the MariaDB monitor.  Commands end with ; or \g.
  Your MariaDB connection id is 28
  Server version: 5.5.47-MariaDB MariaDB Server

그러나 MySQL Workbench를 통해 액세스하려고 하면 다음과 같은 오류가 발생합니다.

 Please check
  1) Check that mysql is running on server 192.168.159.163  ** IT IS
  2) Check that mysql is running on port 3306 ** I can connect to it via the terminal so I assume it is
  3) Check mcb has the rights to connect to 192.168.159.163 from your address ** It should as its setup for %
  4) Make sure you are both providing a password if needed and using the correct password for 192.168.159.163 ** the passwords are the same

MySQL Workbench를 로컬로 설치하면 작동하지만 원격으로 작동하지는 않습니다.

내가 뭘 놓쳤는지, 이걸 어떻게 찍는지 아는 사람?

알고 보니 센토스 머신의 방화벽 문제였어요.Telnet IP_ADDRESS 3306으로 확인한 후.다른 VM 또는 Windows를 통해 액세스할 수 없었습니다.방화벽을 비활성화하면 동작합니다.

@Alex 포트도 이전에 확인했는데 올바르게 리슨하고 있었습니다.의견을 주셔서 감사합니다.

말씀하신 내용이 모두 맞다면 네트워킹 문제에 가깝기 때문에 다음을 수행하십시오.

netstat -punta | grep LISTEN

mariadb가 사용하고 있는 포토를 찾아, 다음과 같은 포토를 확인합니다.

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      18137/mysqld

여기서 정말 중요한 것은 세 번째 열입니다.그렇게 되면 문제가 하나 적어집니다.그렇지 않다면 기본적으로 mysql 서버가 로컬에서 리슨하고 있다는 것을 의미합니다.

네트워크 문제에 계속 대처할 경우 방화벽이 연결을 차단할 수도 있으므로 모든 작업이 중단되었는지 확인하십시오.

다른 비슷한 질문(https://serverfault.com/questions/240015/how-do-i-allow-mysql-connections-through-selinux)에서 mysql에 접속할 수 없는 것도 SELinux 때문일 수 있다는 것을 알게 되었습니다.원격 연결에서 mysqld에 액세스할 필요가 없는 경우 방화벽 포트를 열지 마십시오.SEL에서 MySQL에 대한 액세스를 허용하는 명령은 다음과 같습니다.

SELinux를 확인하려면

sestatus

mysql 프로세스에 설정되어 있는 플래그를 확인하려면

getsebool -a | grep mysql

SELinux를 통해 Apache가 원격 데이터베이스에 연결할 수 있도록 하려면 다음과 같이 하십시오.

setsebool selinuxuser_mysql_connect_enabled 1 

[ Use - P ]옵션을 사용하면 변경이 영속적으로 됩니다.이 옵션이 없으면 재부팅 시 부울이 0으로 리셋됩니다.

setsebool -P selinuxuser_mysql_connect_enabled 1

언급URL : https://stackoverflow.com/questions/36775649/unable-to-access-mariadb-centos-7-with-mysql-workbench

반응형