MySQL 루트 비밀번호를 알 수 없습니다. 어떻게 알 수 있습니까? 이 비밀번호가 저장된 파일이 있습니까?
이 링크를 따르고 있지만 로컬에 directadmin 디렉토리가 없습니다.
MySQL 루트 비밀번호를 알 수 없습니다. 어떻게 알 수 있습니까? 이 비밀번호가 저장된 파일이 있습니까?
이 링크를 따르고 있지만 로컬에 directadmin 디렉토리가 없습니다.
답변:
@thusharaK 덕분에 이전 비밀번호를 몰라도 루트 비밀번호를 재설정 할 수있었습니다.
우분투에서 다음을 수행했습니다.
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking
그런 다음 새 터미널에서 mysql을 실행하십시오.
mysql -u root
다음 쿼리를 실행하여 비밀번호를 변경하십시오.
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;
MySQL 5.7에서는 mysql.user 테이블 필드의 비밀번호 필드가 제거되었으며 이제 필드 이름은 'authentication_string'입니다.
mysql 안전 모드를 종료하고 다음을 수행하여 mysql 서비스를 시작하십시오.
mysqladmin shutdown
sudo service mysql start
mysqladmin -u root -p shutdown
새 비밀번호로을 사용해야했습니다 .
mysql -u root
. 오류가 Access denied
해시 된 비밀번호를 볼 수 없습니다. 당신이 할 수있는 유일한 것은 그것을 재설정하는 것입니다!
MySQL 중지 :
sudo service mysql stop
또는
$ sudo /usr/local/mysql/support-files/mysql.server stop
안전 모드에서 시작하십시오.
$ sudo mysqld_safe --skip-grant-tables
(위 줄은 전체 명령입니다)
프로세스가 완료 될 때까지 계속 진행되는 명령이므로 다른 쉘 / 터미널 창을 열고 암호없이 로그인하십시오.
$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
MySQL 5.7 이상 :
mysql> use mysql;
mysql> update user set authentication_string=password('password') where user='root';
MySQL을 시작하십시오 :
sudo mysql start
또는
sudo /usr/local/mysql/support-files/mysql.server start
새 비밀번호는 'password'입니다.
mysql_secure_installation
이상 해졌고 루트는 더 이상 협력하지 않았습니다. 뭐라고합니까 authentication_string
설정은 무엇입니까?
mysqladmin -u root -p shutdown
새 암호로 시도 하십시오sudo service mysql start
mySQL을 새로 설치할 때 나를 놀라게 한 이유는 왜 기본 암호를 사용할 수 없으며 왜 재설정 방법이 작동하지 않는지 궁금합니다. 우분투 18에서 가장 최신 버전의 mysql 서버는 기본적으로 루트 사용자에 대해 암호 인증을 전혀 사용하지 않습니다. 따라서 이것은 무엇을 설정하든 상관없이 사용할 수 없다는 것을 의미합니다. 특권 소켓에서 로그인 할 것으로 예상합니다. 그래서
mysql -u root -p
올바른 비밀번호를 사용하더라도 전혀 작동하지 않습니다 !!! 입력 한 내용에 관계없이 액세스가 거부됩니다.
대신에 당신은 사용해야합니다
sudo mysql
암호없이 작동합니다. 그런 다음에 입력하면
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';
그런 다음 로그 아웃하면 피 묻은 것이 마침내 암호를 수락합니다.
찾을 수 없습니다. 액세스하려면 루트 암호가 필요한 데이터베이스에 저장되며 어떻게 든 액세스 한 경우에도 단방향 해시로 해시됩니다. http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html을 재설정 할 수 있습니다.
Windows 시스템에서 비밀번호를 재설정하려면 다음 단계를 수행하십시오.
작업 관리자에서 MySQL 서비스 중지
텍스트 파일을 만들고 아래 문장을 붙여 넣습니다.
MySQL 5.7.5 이하 :
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
MySQL 5.7.6 이상 :
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword';
다른 이름으로 저장 mysql-init.txt
하고있는 놓습니다 'C' drive
.
명령 프롬프트를 열고 다음을 붙여 넣습니다.
C:\> mysqld --init-file=C:\\mysql-init.txt
mysqld --init-file=/root/m.txt
. 위의 명령 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
을 /root/m.txt에
패키지 관리자가 설치 중에 루트 암호를 입력하도록 요청하지 않으면 기본 루트 암호는 빈 문자열입니다. 새로 설치된 서버에 연결하려면 다음을 입력하십시오.
shell> mysql -u root --password=
mysql>
암호를 변경하려면, 유닉스 쉘을 되찾아 다음을 입력하십시오 :
shell> mysqladmin -u root --password= password root
새 비밀번호는 'root'입니다. 이제 서버에 연결하십시오 :
shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
죄송합니다. 비밀번호가 변경되었습니다. 새로운 것을 사용하십시오 root
:
shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql>
빙고! 새로운 흥미로운 일을
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
모리
mysql 서버를 즉시 설치 한 후 나를 위해 일한 기본 비밀번호는 다음과 같습니다. mysql
절차는 MySql 버전에 따라 다릅니다. 해당 버전에 대해 설명 된대로 정확하게 절차를 따르십시오.
힌트-사용중인 MySql 버전의 지침 페이지를 읽기 전에 *
5 단계 : CMD를 실행하는 대신 CDM.exe를 호출하는 바탕 화면에 바로 가기를 만듭니다. 그런 다음 바로 가기를 마우스 오른쪽 버튼으로 클릭하고 "관리자로 실행"을 선택하십시오.
6 단계 : 첫 번째 제안 된 버전의 명령을 건너 뛰고 --defaults-file 매개 변수가있는 두 번째 버전을 실행하십시오.
명령을 실행 한 후 모든 것이 정상이면 CMD 창이 열려 있고 6 단계 명령이 계속 실행됩니다. 창을 닫고 ( 'x'클릭) 작업 관리자에서 MySQl을 강제로 닫습니다.
SQL 명령으로 파일을 삭제하고 MySQL을 다시 시작하십시오. 지금 비밀번호를 변경해야합니다.
5.0 http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
5.1 http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html
... 링크에서 버전을 변경하십시오 (5.5, 5.6, 5.7)
여기에 제공된 답변이 저에게 효과가없는 것처럼 보였습니다. 트릭은 다음과 같습니다. ALTER USER 'root'@ 'localhost'mysql_native_password BY 'test';
(완전한 답변 : https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/ )
체계:
순서:
하나는 Linux 루트 사용자로 로그인하고 다른 하나는 mysql
명령에 액세스 할 수있는 비 루트 사용자로 로그인하여 두 개의 쉘 세션을여십시오 .
루트 세션에서 정상 mysqld에 리스너를 중지하고 암호 인증 우회 리스너를 시작합니다 ( 참고 :이 상당한 보안 위험이 받는 액세스 할 수있는 모든 사용자로 mysql
암호없이 데이터베이스에 액세스 할 수있는 명령은 가까운 액티브 쉘 세션을 할 수 있습니다. 이 작업을 수행하기 전에 셸 액세스를 비활성화하십시오.
# systemctl stop mysqld
# /usr/sbin/mysqld --skip-grant-tables -u mysql &
비 루트 세션에서 mysql에 로그인하고 mysql 루트 비밀번호를 설정하십시오.
$ mysql
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> quit;
루트 세션에서 비밀번호없는 mysqld 인스턴스를 종료하고 일반 mysqld 리스너를 서비스로 복원하십시오.
# kill %1
# systemctl start mysqld
비 루트 세션에서 위에서 구성한 새 루트 비밀번호를 테스트하십시오.
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...
mysql>
나는 이것을 다른 방법으로 해결했다.
안전 모드에서 시작하려고 시도했지만 오류와 연결할 수 없으므로이 방법을 사용했습니다. 오류 2002 (HY000) : 소켓 '/var/run/mysqld/mysqld.sock'을 통해 로컬 MySQL 서버에 연결할 수 없습니다 (2)
내가 한 일은 정상적으로 루트로 연결하는 것이 었습니다.
$ sudo mysql -u root
그런 다음 새로운 수퍼 유저를 만들었습니다.
mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit
그런 다음 myuser로 로그인
$ mysql -u myuser -p -h localhost
암호를 변경하려고하면 오류가 발생하지 않았지만 아무것도하지 않았으므로 루트 사용자를 삭제하고 다시 만들었습니다.
mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;
루트 사용자는 이제 새로운 비밀번호로 작업하고 있습니다
phpMyAdmin> config.inc.php> $ cfg [ '서버'] [$ i] [ '암호'] = ''로 이동하십시오.
phpmyadmin
.