MySQL에 비밀번호없이 액세스 할 수 있습니다


15

MySQL의 비밀번호를 어떻게 삭제합니까? 데이터베이스에 연결하기 위해 비밀번호를 갖고 싶지 않습니다. 내 서버가 Ubuntu를 실행 중입니다.


관심의 대상이되는 것처럼 비밀번호를 원하지 않는 이유는 무엇입니까?
John Gardeniers

예를 들어 "dpkg-reconfigure phpmyadmin"을 실행할 때 오류가 발생합니다. 액세스 거부 root @ localhost "password : no"종료와 함께 오류 1045와 함께 중지됩니다.
Lacek 2013 년

답변:


29

개인적으로 암호를 설정하고 /root/.my.cnf에 저장하는 것이 좋습니다.

먼저:

mysqladmin -u root password 'asdfghjkl'

그런 다음 루트의 .my.cnf 파일을 편집하십시오.

[client]
password = asdfghjkl

확인하십시오 chmod 0600 .my.cnf.

이제 비밀번호가 있지만 더 이상 프롬프트가 표시되지 않습니다. 내 기본 MySQL 서버 설치는 각 MySQL 서버에 대해 완전히 임의의 고유 암호이며 .my.cnf 파일에 이와 같이 저장됩니다.


1
본인 인증 환경과 비밀번호 제거 환경 설정에 크게 동의합니다.
Zoredache

2
.my.cnf에서 해당 비밀번호 주위에 따옴표가 필요할 수 있습니다. 없이는 효과가 없었습니다.
user67641

1
@ user67641 : 버전과 암호에 따라 다를 수 있습니다 ... 내 모든 영숫자 문자열 (특수 문자 없음)이며 따옴표가 필요하지 않습니다.
freiheit

2
/root/.my.cnf를 만들어야하는 경우 다른 사용자가 스누핑 할 수 없도록 명시 적으로 0600 권한을 설정하는 것이 좋습니다. 대부분의 경우 일반 사용자는 / root로 내려갈 수 없지만 여분의 편집증은 거의 항상 보증됩니다.
데일 앤더슨

누락 mv ./+%Y%m%d. $ db.sql $ OUTPUT` mysqldump에와 gzip 사이
싯다 르트 나라 얀

9

MySQL 용 비밀번호를 설정 한 경우, MySQL 루트 비밀번호 복구 의 지시 사항을 따른 후 비밀번호를 널로 설정하십시오.

5.7.6 이상

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

5.7.5 이하

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

*이를 적용하려면 DB를 다시 시작해야합니다 (링크의 지침 참조).

sudo service mysql restart

이 경우 "권한 플러시"를 잊지 마십시오.
Marco Ramos

@meyosef-문제가 해결되면 답변을 답변으로 표시하십시오 (투표 수 아래의 녹색 확인 표시를 클릭하십시오).
jneves

루프백이 아닌 유닉스 소켓에만 빈 암호를 사용할 수 있다고 생각했지만 불가능합니다. unix_socket플러그인은 약간 다른 일을한다.
분지

9

그렇습니다. 암호가 적을수록 좋습니다. 그러나 모든 사람을 위해 데이터베이스를 열지 마십시오.

unix_socket을 통해 :

grant usage on *.* to 'root'@'localhost' identified via unix_socket;

이것은 로컬로 로그인 한 루트 사용자에게 암호가없는 mysql 액세스를 제공합니다. Btw. 이것이 최근 우분투 / 데비안 릴리스의 기본값입니다.

some_user@box: mysql -u root  # denied
root@box: mysql               # good
some_user@box: sudo mysql     # good, if "some_user" has sudo rights.

설명 슬라이드 : https://www.slideshare.net/ottokekalainen/less-passwords-more-security-unix-socket-authentication-and-other-mariadb-hardening-tips .


2
SF에 오신 것을 환영합니다! 사랑스러운 첫 번째 답변 : 명확하고 좋은 요약, 추가 탐색을위한 링크 및 기존 답변 모음에 추가합니다. 나는 당신의 첫 번째 공감대가 된 것을 기쁘게 생각하며, 이와 같은 답변을 더 많이 작성하기를 바랍니다.
MadHatter

슬라이드는 괜찮지 만 실제 문서는 다음과 같습니다. mariadb.com/kb/en/library/authentication-plugin-unix-socket
JonnyJD

5

당신은 또한 할 수 있습니다 :

grant all privileges on *.* to 'root'@'localhost' identified by '';

1

관리자가 로컬로 액세스하면 기본적으로 비밀번호가없는 것이 확실합니다. 당신은 그것과 다른 것을 찾고 있습니까?

이 작동합니까?

#> mysqladmin -u root password ''
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.