2014-06-09 2 views
0

패스워드를 모르는 상태에서 권한이있는 사용자 루트 mysql에 액세스 할 수있는 방법이 있습니까?패스워드없이 mysql에 접근하여 OS 루트로 실행

나는 PostgreSQL을에 전문가없이, 더 익숙해, 나는 기본 데비안 후자의 설치와 난 그냥 입력 할 수 있다는 것을 알고 :

# su - postgres 
$ psql 

내가 서버 I에 대한 루트 액세스 권한이 작업 중이지만 관리자가 나를 위해 MySQL 계정을 만들지 않았으며 연결할 수 없습니다.

MySQL 파일을 아주 쉽게 변조 할 수 있다고 생각하면 로그인 할 수있는 방법이 있어야한다고 생각하지만 아직 찾지 못했습니다.

이 MySQL의 사용자가, 그러나 그것은 포스트 그레스 사용자와 마찬가지로 작동하지 않는 것 같다 :이 좋은 연습이 아니라고 지적하고있다

# su - mysql 
# whoami 
root 
# mysql 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 
+0

내가 알고하지 않는 것이. 그건 안전하지 않니? "탬퍼"를 원하셨습니까? – duffymo

+0

@duffymo 맞춤법 정정을 보내 주셔서 감사합니다. 필자는 실제로 데이터베이스 파일에 액세스 할 수있는 사람에게 데이터베이스에 대한 액세스 권한을 부여하는 것은 안전하지 않다고 생각하지만 실제로 전문가는 아닙니다. 걱정이된다면 PostgreSQL과 같이 작동하지 않을 것이라고 생각합니까? – scozy

+0

자격 증명이없는 경우 데이터베이스에 액세스 권한을 부여해야한다고 생각하지 않습니다. 내가 아는 모든 사람들이 그렇게 일한다. 당신의 감정은 데이터베이스 벤더에 의해 공유되지 않습니다. 가장 좋은 해결책은 관리자와 대화하고 적절히 분류하는 것입니다. 그것이 나라면, 나는 당신에게 루트 액세스를 제공하지 않을 것입니다. 나는 너를 너의 데이타베이스 및 너 밖에 제한하지 않을 것이다. – duffymo

답변

0

,하지만 난을 발견했다 방법.

mysqld에는 서버 시작시 실행되는 SQL 명령이 들어있는 파일을 나타내는 --init-file이라는 명령 줄 스위치가 있습니다.

그래서 나는 그 명령을 자신을 위해 사용자를 생성 할 수 있었다 :

# echo CREATE USER 'scozy'@'localhost' IDENTIFIED BY '****'; > /root/init.sql 
# /etc/init.d/mysql stop 
# mysqld --init-file=/root/init.sql 
# /etc/init.d/mysql restart 
관련 문제