programing

MariaDB 계정이 데이터베이스에 대한 로컬 및 원격 액세스 권한을 가질 수 있습니까?

minimums 2023. 9. 10. 12:07
반응형

MariaDB 계정이 데이터베이스에 대한 로컬 및 원격 액세스 권한을 가질 수 있습니까?

MariaDB 데이터베이스 사용자를 만들었습니다.user. 다음과 같습니다.

MariaDB [(none)]> select host,user,password from mysql.user;                                                                                                                                                 
+-----------+-------+-------------------------------------------+
| host      | user  | password                                  |
+-----------+-------+-------------------------------------------+
| %         | user  | ***************************************** |
+-----------+-------+-------------------------------------------+

다음과 같은 명령을 사용하여 원격 컴퓨터에서 데이터베이스에 연결할 수 있습니다.

mysql -uuser -hdevops.ok -p mydatabase

예상대로 됩니다.비밀번호로 로그인 할 수 있습니다.

데이터베이스 서버에 있을 때 연결을 시도할 때

[vagrant@devops ~]$ mysql -h127.0.0.1 -uuser -p mydatabase                                            
Enter password: 
ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES)

기대했습니다.%localhost를 포함하여 네트워크의 모든 노드에서 액세스를 허용하지만 이 방식은 아닌 것 같습니다.

이 사용자에게 로컬 액세스 권한을 부여할 수 있습니까?

물론 다른 계정을 만들 수 있습니다.

create user 'myser'@'localhost' identified by '****';

이렇게 하면 데이터베이스에 액세스할 수 있지만 이는 해결책처럼 느껴집니다.

갱신하다

이제는 계정을 두 개 만들어야 가능하다고 생각합니다.'myuser'@'localhost'그리고.'myuser'@'%'

%포함하지 않음localhost.그건 그렇고.127.0.0.1그리고.127.0.0.2결심을 굳히다localhost그리고 결과적으로 이것들 또한 일치하지 않습니다.%.

말이 안 되지만 원래 이런 식으로 작동하는 것 같습니다.

%host 필드는 모든 대상 호스트가 가능함을 의미합니다.

한가지 특별한 경우가 있는데, 데이터베이스가 다음과 같은 차이를 만드는 경우입니다.127.0.0.1(TCP 기반 연결) 및localhost로컬 유닉스 소켓에 연결됩니다.

db 설정 고려skip-networking그리고.bind-address. https://mariadb.com/kb/en/mariadb/configuring-mariadb-for-remote-client-access/ 참조

TCP 연결은 일반적으로 기본적으로 사용되지 않도록 설정됩니다. 이는 배포, 사용하는 패키지에 따라 다를 수 있습니다.

따라서 다음을 입력하면 작동합니다.

mysql -hlocalhost -uuser -p mydatabase

참조:

https://dev.mysql.com/doc/refman/5.5/en/connecting.html

유닉스에서 MySQL 프로그램은 다른 네트워크 기반 프로그램과 비교할 때 기대하는 것과 다른 방식으로 호스트 이름 localhost를 특별하게 처리합니다.로컬 호스트에 대한 연결의 경우 MySQL 프로그램은 유닉스 소켓 파일을 사용하여 로컬 서버에 연결을 시도합니다.

당신은 또한 사용할 수 있습니다.--socket선택.

언급URL : https://stackoverflow.com/questions/39745656/can-a-mariadb-account-have-local-and-remote-access-to-a-database

반응형