MariaDB 루트 비밀번호를 재설정할 수 없습니다

MariaDB 루트 비밀번호를 재설정할 수 없습니다

내가 뭐하는 거지:

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

그런 다음 추가

승인 양식 건너뛰기

그 다음에

$ sudo service mysqld restart

그 다음에

$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 30
Server version: 10.1.47-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> update user SET PASSWORD=PASSWORD('sa') WHERE USER='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> exit
Bye

그 다음에

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

그런 다음 삭제

skip-grant-tables

그 다음에

$ sudo service mysqld restart

그 다음에

$ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

왜?

만약 내가 원한다면

MariaDB [mysql]> SET PASSWORD FOR root = PASSWORD('sa');
ERROR 1290 (HY000): The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement

답변1

mysql.user 테이블을 업데이트하여 MySQL 자격 증명을 관리할 수 없습니다.

사용자의 비밀번호를 변경하려면 다음 스크립트를 실행하세요.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

관련 정보