programing

MariaDB on Debian:구문 오류:unix 소켓 인증을 패스워드 베이스로 되돌리는 방법

goodsources 2022. 11. 10. 20:53
반응형

MariaDB on Debian:구문 오류:unix 소켓 인증을 패스워드 베이스로 되돌리는 방법

저는 방금 Mariadb를 새로운 unix 시스템에 설치했습니다(Mariadb 서버 버전 10.1.37 Debian 9.6).사용자는 다음과 같습니다.

+------------+-----------------------+-------------+-----------+
| user       | authentication_string | plugin      | host      |
+------------+-----------------------+-------------+-----------+
| root       |                       | unix_socket | localhost |
| phpmyadmin |                       |             | localhost |
+------------+-----------------------+-------------+-----------+

(unix_socket 플러그인을 사용하지 않고) 패스워드를 사용하여 'root'로 로그인할 수 있도록 하고 싶습니다.ALTER USER 명령어를 사용하여 패스워드 기반 인증으로 변경하려고 했습니다.루트 계정에서 "sudo mysql"을 사용하여 MariaDB를 입력합니다.그런 다음 다음 각 명령을 시도했습니다.

MariaDB [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED WITH
mysql_native_password BY 'mypassword';

MariaDB [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED VIA
mysql_native_password BY 'mypassword';

MariaDB [(none)]> ALTER USER root@localhost IDENTIFIED VIA 
mysql_native_password;
SET PASSWORD = PASSWORD('mypassword');

MariaDB [(none)]> ALTER USER root@localhost IDENTIFIED WITH 
mysql_native_password;
SET PASSWORD = PASSWORD('mypassword');

MariaDB [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED WITH 
mysql_native_password;
SET PASSWORD = PASSWORD('mypassword');

어느 경우든 ERROR 1064(42000):SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 설명서에서 1행의 '...' 근처에서 사용할 올바른 구문을 확인하십시오.

루트 로그인을 소켓에서 패스워드 기반으로 변경하는 올바른 구문 및 방법은 무엇입니까?어떤 도움이라도 주시면 감사하겠습니다.

MariaDB 또는 MySQL을 새로 설치한 것 같습니다.

설치 후 root에서 다음 명령을 실행하면 됩니다.

mysql_secure_install

또는 다음과 같이 입력합니다.

sudo mysql_secure_install

자세한 내용은 이쪽


설명서를 읽으면서 마리아DB는 auth socket 기능을 만들었습니다.

따라서 플러그인을 제거해 보십시오.

UNINSTALL SONAME 'auth_socket';

및/또는 네이티브 비밀번호 인증으로 전환:

ALTER USER root@localhost IDENTIFIED VIA mysql_native_password;


이 경우에도 동작하지 않는 경우는, 유저 테이블의 플러그인 필드를 비우고, 권한을 플래시 해 주세요.

USE mysql; 
UPDATE user SET plugin='' WHERE user ='root'; 
FLUSH PRIVILEGES; 

사파리, 탐색, 검색 및 검색 세션이 끝나면 다음 3가지 명령을 사용하여 다음 질문에 언급된 MariaDB 사례를 확인할 수 있습니다.

mysqld_safe --skip-grant-tables --skip-networking &

UPDATE user SET plugin='' WHERE user ='root'; 

UPDATE mysql.user SET 
    authentication_string = PASSWORD('UNCOMPROMISABLE_STRONGHOLD_PASSWORD') 
    WHERE User = 'root' AND Host = 'localhost';

언급URL : https://stackoverflow.com/questions/54394618/mariadb-on-debian-syntax-error-how-to-switch-unix-socket-authentication-back-t

반응형