prosource

MySQL 명령줄의 루트 사용자에 대한 액세스가 거부되었습니다.

probook 2023. 8. 16. 22:27
반응형

MySQL 명령줄의 루트 사용자에 대한 액세스가 거부되었습니다.

저는 방금 xampp를 설치했고, 명령줄을 사용하여 제 SQL을 작성하고 있습니다.을 사용하고 는 있지만 연결할 수는 .CREATE DATABASE내가 잘못 알고 있는 바로는1044 access denied for user '' @ 'localhost'다음으로 로그인했습니다.-uroot.

나는 phpMyadmin에서 내가 원하는 것을 할 수 있는 권한이 있지만 명령줄에서는 쓰기 권한이 없는 것 같습니다.저는 이 주제에 대한 다른 모든 관련 게시물을 살펴보았지만 소용이 없었습니다.어차피 권한이 없기 때문에 권한을 부여할 수 없습니다.

MySQL에 루트로 로그인하고 있습니까?MySQL 루트로 로그인하는 동안 "일반" MySQL 사용자 계정에 권한을 명시적으로 부여해야 합니다.

먼저 MySQL 데이터베이스에 대한 루트 계정을 설정합니다.

터미널 유형:

mysqladmin -u root password 'password'

MySQL에 로그인하려면 다음을 사용합니다.

mysql -u root -p

skip-grant-tables 옵션을 사용하여 서버를 수동으로 시작하려면 mysql 클라이언트를 열고 mysql.user 테이블 및/또는 mysql.db 테이블을 수동으로 업데이트합니다.하지만 이것은 지루한 작업일 수 있기 때문에 당신이 필요로 하는 것이 모든 개인 정보가 있는 계정이라면 저는 다음과 같이 할 것입니다.

사여서시로 합니다.skip-grant-tables

mysql 클라이언트 시작(사용자 이름/암호 없음)

명령 실행

flush privileges;

그러면 허가 테이블이 강제로 로드됩니다.

다음과 같은 GRANT 명령을 사용하여 새 계정을 만듭니다(사용자 이름 및 암호는 사용할 항목으로 대체).

GRANT ALL on *.* to 'username'@'localhost' identified by 'password';

일반 모드에서 서버를 다시 시작하고 새로 만든 계정으로 로그인합니다(skip-grant-tables 없이.

이 MySQL 문서를 참조하십시오.

do C:\xampp\mysql\bin\을 탐색하여 mysql.exe 파일이 해당 폴더에 있는지 확인합니다.

mysql -uroot -p

암호가 없으면 Enter 키를 누릅니다.

즉시 로 바뀌다.

mysql>

mysql 명령을 수행합니다.

기본적으로 XAMPP에는 루트 사용자에 대한 암호가 설정되어 있지 않습니다.

MySQL의 루트 사용자에 대한 암호를 설정할 수 있습니다.

다음으로 이동

localhost:80/security/index.dll

및 root 사용자의 암호를 설정합니다.

참고: Apache가 다른 포트에 있는 경우 위 URL의 포트 번호를 변경하십시오.

XAMPP 제어판을 엽니다. "Shell" 버튼을 클릭합니다.

명령 프롬프트 창이 해당 창 유형으로 지금 열립니다.

mysql -u root -p;

루트 사용자에 대해 설정한 암호를 입력하라는 메시지가 표시됩니다.

여기서 root 사용자로 로그인했습니다.D 이제 원하는 작업을 수행하십시오.P

MariaDB 10 데이터베이스 서버에 대한 액세스 권한을 얻습니다.

데이터베이스 서버를 중지한 후, 다음 단계는 데이터베이스 서버를 시작하고 네트워킹 및 권한 테이블을 건너뛰어 백도어를 통해 서버에 액세스하는 것입니다.이 작업은 아래 명령을 실행하여 수행할 수 있습니다.

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

MariaDB 루트 암호 재설정

이제 데이터베이스 서버가 안전 모드로 시작되었으므로 아래 명령을 실행하여 암호 프롬프트 없이 루트로 로그온합니다.이를 위해 아래 명령을 실행합니다.

sudo mysql -u root

그런 다음 아래 명령을 실행하여 mysql 데이터베이스를 사용합니다.

use mysql;

마지막으로 아래 명령을 실행하여 루트 암호를 재설정합니다.

update user set password=PASSWORD("new_password_here") where User='root';

여기서 new_password_를 루트 계정에 대해 만들 새 암호로 바꾼 다음 Enter 키를 누릅니다.

그런 다음 아래 명령을 실행하여 사용 권한을 업데이트하고 변경 내용을 디스크에 저장합니다.

flush privileges;

종료(CTRL + D)하면 완료됩니다.

다음에는 MariaDB를 정상적으로 시작하고 방금 만든 새 암호를 테스트합니다.

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service

아래 명령을 실행하여 데이터베이스에 로그온합니다.

sudo mysql -u root -p

출처: https://websiteforstudents.com/reset-mariadb-root-password-ubuntu-17-04-17-10/

저도 같은 문제가 있었는데, MariaDB가 unix_socket 플러그인을 통해 root만 로컬로 로그인할 수 있도록 설정되어 있었기 때문에 올바른 암호를 입력하면 명령줄에 지정된 사용자로 성공적으로 로그인할 수 있습니다.다음 답변은 Ubuntu에 문의하십시오.

저는 ODBC 커넥터 msi를 다시 설치하고 xampp와는 별도로 mySQL을 직접 다시 설치하여 작동합니다.제 생각에 그것은 커넥터 문제였습니다. SHOW Databases는 실제로 제 데이터베이스를 전혀 보여주지 않았기 때문입니다.

제 'root' 로그인이 DB에 액세스하지 않아 제한된 권한을 가진 것처럼 보였지만 실제로 제대로 연결되지 않았습니다.

서버 파일만 이름 폴더 변경

etc/mysql
rename
mysql-

이것은 Ubuntu에서 도움이 될 수 있습니다.

/etc/sys/my.cnf로 이동하여 다음 행에 주석을 달습니다.

bind-address           = 127.0.0.1

이것이 누군가에게 도움이 되길 바랍니다, 저도 이것을 오랫동안 찾고 있었습니다.

건배.

사이에 공백 문자를 사용할 수 없습니다.-u사용자 이름:

mysql -uroot -p
# or
mysql --user=root --password

언급URL : https://stackoverflow.com/questions/11760177/access-denied-for-root-user-in-mysql-command-line

반응형