방금 Kubuntu 15.10에 MariaDB를 설치했습니다. 운영 체제에서 사용자를 인증하는 플러그인을 통해 루트로 로그인할 수 있습니다. (이것은 나에게 새로운 것이므로 대부분의 튜토리얼에서 제안하는 것처럼 플러그인 인증을 제거하는 대신 배우고 있습니다.)
이제 루트가 아닌 사용자를 생성하고 해당 사용자에게 모든 권한을 부여하고 사용자가 비밀번호 없이(플러그인을 사용하여) mysql(localhost에서)에 로그인할 수 있도록 허용하고 싶습니다. 어떻게 해야 합니까? 그래도 사용자에게 비밀번호를 제공해야 합니까?
답변1
답을 찾았습니다. 필요한 부분은 다음과 같이 "IDENTIFIED VIA unix_socket"입니다.
MariaDB [(none)]> CREATE USER serg IDENTIFIED VIA unix_socket;
MariaDB [(none)]> GRANT ALL PRIVILEGES on mydatabase.* to 'serg'@'localhost';
MariaDB [(none)]> select user, host, password, plugin from mysql.user;
+--------------+-----------+----------+-------------+
| user | host | password | plugin |
+--------------+-----------+----------+-------------+
| root | localhost | | unix_socket |
| root | mitra | | unix_socket |
| root | 127.0.0.1 | | unix_socket |
| root | ::1 | | unix_socket |
| serg | localhost | | unix_socket |
+--------------+-----------+----------+-------------+
5 rows in set (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
그런 다음 셸에서 다음을 수행합니다.
sudo service mysql restart
사용자 "serg"로 로그인하려면 sudo를 사용하지 마십시오. 그냥 사용하세요 mysql -u serg
.
답변2
이 사용자에게 비밀번호를 할당하고 이를 my.cnf 파일에 입력할 수 있습니다.
- mydatabas에 모든 권한을 부여합니다."비밀번호"로 식별되는 user@localhost로 전송됩니다.
편집하다내 cnf
[마이SQL]
사용자=사용자
비밀번호=비밀번호
[mysql 관리]
사용자=사용자
비밀번호=비밀번호
sudo service mysql restart
mysql -h localhost -u user
답변3
~에 따르면문서:
SQL_MODE가 NO_AUTO_CREATE_USER를 설정하지 않은 경우 GRANT를 통해 사용자 계정을 생성할 수도 있습니다. 예를 들어:
그럼 이것으로 충분합니다:
GRANT SELECT ON db.* TO username@hostname IDENTIFIED VIA unix_socket;