sudo 없이 mysql 서버에 연결
명령어는 다음과 같습니다.
mysql -u root -p
에러가 표시됩니다.
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
그러나 sudo 권한을 실행하면 다음과 같이 작동합니다.
sudo mysql -u root -p
sudo 요건을 없애면 intelij에서 데이터베이스를 열 수 없기 때문에 해제가 가능한가요?이 질문에 대한 답변에서 다음을 시도했습니다. "Connect to local MySQL server without sudo" (sudo 없이 로컬 MySQL 서버에 연결)
sudo chmod -R 755 /var/lib/mysql/
도움이 안 됐어요위 질문에서는 다른 오류가 발생하였습니다.
mysql에 로그인하기 위해 필요한 것은 루트 사용자뿐입니다.이 문제를 해결하려면 새 사용자를 만들고 필요한 데이터베이스에 대한 액세스를 허용해야 합니다.
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';
지금이다newuser
는 sudo 요건 없이 로그인할 수 있습니다.
mysql -u newuser -p
알고리즘을 변경해야 합니다.제 일을 따라다니면서
mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
mysql > FLUSH PRIVILEGES;
동일한 ROOT 사용자 또는 NEW_USER를 사용하여 SUDO 권한을 제거할 수 있습니다.다음으로 SUDO를 사용하지 않고 ROOT를 사용하여 연결을 삭제하는 예를 나타냅니다.
SUDO를 사용하여 MY-SQL에 연결
sudo mysql -u root
사용자 테이블에서 현재 루트 사용자 삭제
DROP USER 'root'@'localhost';
새 ROOT 사용자를 만듭니다(필요에 따라 다른 사용자를 생성할 수 있습니다).
CREATE USER 'root'@'%' IDENTIFIED BY '';
새 사용자에게 권한 부여(ROOT)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
권한을 플러시하여 Grant 테이블을 즉시 새로고침합니다.(특권을 플래시할 필요가 있는 이유는 무엇입니까?)
FLUSH PRIVILEGES;
이제 다 괜찮아.만약을 위해 새 루트 사용자가 생성되었는지 확인합니다.
SELECT User,Host FROM mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | % |
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
mysql을 종료합니다(CTRL + Z를 누릅니다).SUDO를 사용하지 않고 MySQL에 연결
mysql -u root
이게 도움이 되길 바라!
먼저 sudo를 사용하여 mysql에 로그인합니다.
그런 다음 이 코드를 사용하여 루트 사용자의 "coloumn" 값을 "coloumn" 또는 "auth_password"에서 "coloumn_password"로 변경합니다.
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin IN ('unix_socket', 'auth_socket');
FLUSH PRIVILEGES;
마지막으로 mysql 서비스를 재시작합니다.바로 그겁니다.
자세한 내용은 이 링크를 참조하십시오.
갱신:
mysql 또는 mariadb의 새로운 버전에서는 다음을 사용할 수 있습니다.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password USING PASSWORD('your-password');
FLUSH PRIVILEGES;
저는 다음 명령어를 사용하여 이 문제를 해결했습니다.
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'username'@'localhost';
FLUSH PRIVILEGES;
여기서,username
= 원하는 사용자 이름.
그리고.password
= 원하는 암호입니다.
다음 쿼리를 사용할 수 있습니다.
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
이 쿼리로 충분합니다.
이 답변은 mysql 대신 mariaDB용으로 약간 수정해야 합니다.
sudo를 사용하여 루트로 처음 로그인:
$ sudo mysql -uroot
다음으로 mariadb 루트 사용자를 변경합니다.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password USING PASSWORD('mypassword');
FLUSH PRIVILEGES;
이제 sudo는 더 이상 필요하지 않습니다.
$ mysql -uroot -p
사용 버전: mysql Ver 15.1 Readline 5.1을 사용한osx10.15(x86_64)용 Distributed 10.4.13-MariaDB
sudo를 사용하여 mysql에 로그인합니다.sudo mysql -u root -p
그 후 현재 root@localhost 계정을 삭제합니다.
~ MariaDB [(none)]> DROP USER 'root'@'localhost';
~ MariaDB [(none)]> CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';
~ MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
~ MariaDB [(none)]> FLUSH PRIVILEGES;
당신이 언급한 질문의 코멘트에는 다음과 같은 내용이 있습니다.
네, 소켓 파일 경로에 있는 모든 디렉토리를 분석하려고 하면 o+rx와 sock 파일도 필요합니다(다른 사용자가 수정할 수 있도록 하는 것은 좋지 않습니다).
mysql.sock을 삭제하고 mysqld를 재시작할 수도 있습니다.이 파일은 적절한 권한을 가진 데몬에 의해 작성되어야 합니다.
이 질문(당신이 봤다고 말한 질문)에 효과가 있는 것 같기 때문에 당신에게도 효과가 있을 수 있습니다.
오류 메시지:
"ERROR 1698 (28000):사용자 'root'@'localhost'에 대한 액세스가 거부되었습니다."
는 서버가 이 사용자에 대한 연결을 허용하지 않으며 mysql이 소켓에 액세스할 수 없음을 의미합니다.
문제를 해결하려면 다음을 수행하십시오.
DB 로그인
sudo mysql -u root -p
다음에, 다음의 변경을 실시합니다.
MariaDB []>use mysql;
MariaDB [mysql]>update user set plugin=' ' where User='root';
MariaDB [mysql]>flush privileges;
MariaDB [mysql]>exit
sudo를 사용하지 않고 다시 로그인 시도
언급URL : https://stackoverflow.com/questions/37239970/connect-to-mysql-server-without-sudo
'programing' 카테고리의 다른 글
문자열의 마지막 문자를 가져오려면 어떻게 해야 합니까? (0) | 2022.12.29 |
---|---|
강조 표시된 날짜 게시물이 먼저 정렬된 데이터베이스에서 뉴스 게시물 선택 (0) | 2022.12.29 |
Python MySql 삽입이 작동하지 않음 (0) | 2022.12.29 |
오류 UnicodeDecodeError: 'utf-8' 코덱이 0의 바이트 0xff를 디코딩할 수 없습니다. 잘못된 시작 바이트입니다. (0) | 2022.12.29 |
JavaScript 루프에 지연을 추가하려면 어떻게 해야 하나요? (0) | 2022.12.29 |