Mysql (MariaDB 10.0.29) :루트 패스워드를 설정해도 패스워드를 묻지 않고 로그인할 수 있습니까?
root 비밀번호를 설정하여 mysql을 보호하고 싶습니다.루트 암호를 재설정했습니다.
MariaDB [(none)]> select Host, User, Password from mysql.user;
+-----------+------+-------------------------------------------+
| Host | User | Password |
+-----------+------+-------------------------------------------+
| localhost | root | *58319282EAB9E38D49CA25844B73DA62C80C2ABC |
+-----------+------+-------------------------------------------+
1 row in set (0.00 sec)
단, 플래시 권한을 가진 후 Mysql을 재시작하면 비밀번호를 입력하지 않고도 (로컬호스트의) mysql에 로그인할 수 있습니다.
root@myhost:/# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.0.29-MariaDB SLE 12 SP1 package
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
접속할 때 mysql에게 패스워드를 물어보는 방법을 알려주세요.감사합니다!
MySQL 테이블에는 plugin이라는 열이 있습니다.
MariaDB [(none)]> SELECT host, user, password, plugin FROM mysql.user LIMIT 0,1;
+-----------+------+-------------------------------------------+--------+
| host | user | password | plugin |
+-----------+------+-------------------------------------------+--------+
| localhost | root | * | |
+-----------+------+-------------------------------------------+--------+
1 row in set (0.00 sec)
mariaDB 설치를 위한 기본 플러그인은 'console' 또는 'unix_socket'이며, 이 플러그인은 콘솔에서 비밀번호 없이 입력할 수 있습니다.다만, 패스워드를 사용한 인증도 무효로 해, 다른 클라이언트로부터는 접속할 수 없습니다.
플러그인 필드를 빈 (') 값으로 업데이트하고 FLUSH PRIVALY PRIVALES를 사용합니다.
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
UPDATE mysql.user SET plugin = '' WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;
이것으로 문제를 해결할 수 있습니다.
나는 이것을 바꿀 필요가 있다는 것을 알았다.
UPDATE mysql.user SET plugin = 'auth_socket' WHERE user = 'root' AND host = 'localhost';
로.
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND host = 'localhost';
이 플러그인은 AFAICT 비밀번호 플러그인입니다.
이 질문이 오래된 것은 알지만, 같은 문제가 있어서 다음 절차로 문제를 해결했습니다.
Linux 터미널에서 다음 명령을 실행하여 root 사용자의 새 암호를 설정합니다. root 암호가 이미 설정되어 있는 경우 이 단계를 건너뜁니다.
mysqladmin --user=root password "newpassword"
mysql 로그인
mysql -uroot -p
'root' 사용자 비밀번호 입력
MariaDB 콘솔에서 다음 쿼리 실행
MariaDB [(none)]> select host,user,password from mysql.user;
'user' 열 값이 ''(빈)인 레코드가 있을 수 있습니다. 다음 쿼리를 사용하여 해당 레코드를 삭제하십시오.
MariaDB [(none)]> delete from mysql.user where user='';
MariaDB [(none)]> flush privileges;
Query OK, 2 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
#$ mysql
ERROR 1045 (28000): Access denied for user ''@'localhost' (using password: NO)
위의 절차를 수행한 후 비밀번호 없이 mysql에 로그인할 수 없습니다.
이건 나한테 효과가 있었어.
설치 후
sudo mysql
로그인 할 수 있습니다.
그리고나서
alter user root@localhost identified via '';
flush privileges;
\q
이제 기본 동작과 마찬가지로 localhost에서 패스워드를 사용하지 않고 root으로 로그인할 수 있습니다.
mysql -uroot
언급URL : https://stackoverflow.com/questions/44298160/mysql-mariadb-10-0-29-set-root-password-but-still-can-login-without-asking-p
'source' 카테고리의 다른 글
| 오브젝트 필드의 Python 사전 (0) | 2022.10.23 |
|---|---|
| Response:: download를 사용하여 파일 다운로드 (0) | 2022.10.23 |
| 일정한 값으로 데이터 프레임에 열 추가 (0) | 2022.10.23 |
| pip의 --no-cache-dir는 어떤 장점이 있습니까? (0) | 2022.10.23 |
| 모달 열 때 BODY 스크롤 방지 (0) | 2022.10.23 |