실수로 mysql의 root 권한을 삭제해 버렸는데요... 정보
실수로 mysql의 root 권한을 삭제해 버렸는데요...
본문
['root'@'localhost' (using password: NO)
기존 패스워드를 입력하면 다음과 같은 메세지가 뜹니다.
이럴땐 어떻게해야하나요 ㅜㅜ
기존 패스워드를 입력하면 다음과 같은 메세지가 뜹니다.
이럴땐 어떻게해야하나요 ㅜㅜ
댓글 전체
1.MySQL 데몬 실행 중지
# /usr/local/etc/rc.d/mysql-server.sh stop
(또는 # killall -9 mysqld )
2.인증제외한 MySQL 데몬 실행
# /usr/local/bin/mysqld_safe --skip-grant &
3. 비번없이 접속후 mysql DB의 user 테이블에서 root 패스워드 변경
# /usr/local/bin/mysql -u root mysql
mysql> update user set password=password('new password') where user='root';
mysql> flush privileges;
mysql> quit
# _
4. 정상적인 MySQL 데몬 실행
# /usr/local/etc/rc.d/mysql-server.sh start
(또는 # /usr/local/bin/safe_mysqld --user=mysql &)
# /usr/local/etc/rc.d/mysql-server.sh stop
(또는 # killall -9 mysqld )
2.인증제외한 MySQL 데몬 실행
# /usr/local/bin/mysqld_safe --skip-grant &
3. 비번없이 접속후 mysql DB의 user 테이블에서 root 패스워드 변경
# /usr/local/bin/mysql -u root mysql
mysql> update user set password=password('new password') where user='root';
mysql> flush privileges;
mysql> quit
# _
4. 정상적인 MySQL 데몬 실행
# /usr/local/etc/rc.d/mysql-server.sh start
(또는 # /usr/local/bin/safe_mysqld --user=mysql &)
mysql> update user set password=password('1234') where user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
이렇게 하는데 OK 떨어졌는데도 불구하고 바로 아래줄의 매칭되서 변경된게 없네요.
flush privileges; 적용후에 재 접속해보면 마찬가지에요 ㅜㅜ
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
이렇게 하는데 OK 떨어졌는데도 불구하고 바로 아래줄의 매칭되서 변경된게 없네요.
flush privileges; 적용후에 재 접속해보면 마찬가지에요 ㅜㅜ
인증부분 테이블에 아이디가 완전히 삭제된듯 보입니다.
mysql 의 설치 디렉토리에 테이블명으로 폴더가 있을 것입니다.
이 부분을 압축하시고 (혹시 모르니까 그 상위 폴더까지 압축하세요)
mysql을 새로 설치한 다음에 필요한 테이블명으로 된 폴더부터 원래 있던 위치에 압축해제 바랍니다.
솔직히 리눅스를 자유자재로 못하신다면, 조금 어려운 답변이 될수도 있겠네요 --;
mysql 의 설치 디렉토리에 테이블명으로 폴더가 있을 것입니다.
이 부분을 압축하시고 (혹시 모르니까 그 상위 폴더까지 압축하세요)
mysql을 새로 설치한 다음에 필요한 테이블명으로 된 폴더부터 원래 있던 위치에 압축해제 바랍니다.
솔직히 리눅스를 자유자재로 못하신다면, 조금 어려운 답변이 될수도 있겠네요 --;
mysql만 재 설치하면 될까요?
>>>>재설치하기 전에 꼭 백업 바랍니다. <<<<<
그리고 필요한 테이블부터 생성하시고, 해당 사용자를 생성해서.. 해당 데이터베이스를 붙여주시면 됩니다.
단 주의할점이 mysql 테이블명은 카피 안하시는게 ;;
그리고 필요한 테이블부터 생성하시고, 해당 사용자를 생성해서.. 해당 데이터베이스를 붙여주시면 됩니다.
단 주의할점이 mysql 테이블명은 카피 안하시는게 ;;
# yum -y remove mysql
# yum -y remove mysql-server
이게 안되신다면 rpm 으로 설치하시거나, 소스컴파일하셔서 설치하신 것입니다.
일단, mysql 서비스를 중지 하시고 나서 자동실행을 없애고 (레드헷이라면 setup로 설정 가능) yum으로 깐 다음에... yum을 깐 폴더에다가 설정하고 나서 소스컴파일된 부분을 삭제 하시면 될듯 하네요.
# yum -y remove mysql-server
이게 안되신다면 rpm 으로 설치하시거나, 소스컴파일하셔서 설치하신 것입니다.
일단, mysql 서비스를 중지 하시고 나서 자동실행을 없애고 (레드헷이라면 setup로 설정 가능) yum으로 깐 다음에... yum을 깐 폴더에다가 설정하고 나서 소스컴파일된 부분을 삭제 하시면 될듯 하네요.
저도 설치하는걸 보고한거라... 설명하신 내용을 다 할 수가 없을꺼 같아요.
백업은 할께 없어서 괜찮은데 설치자체는 yum으로 한다고 하더라도 소스컴파일 문제는 어떻게 하는지 잘 모르겠네요. ;;;
백업은 할께 없어서 괜찮은데 설치자체는 yum으로 한다고 하더라도 소스컴파일 문제는 어떻게 하는지 잘 모르겠네요. ;;;
오래된 질문이지만 혹시 또 어려움 겪으시는 분들 계실까봐 추가합니다.
저도 좀전에 황당한 실수로 root계정까지 삭제해버리는 바람에 검색하다가 이 페이지에 들어오게 되었는데요.
1. ps -ef | grep mysqld 하셔서 실행중인 mysqld 프로세스 종료
2. mysql --skip-grant & 로 인증정차 없이 로그인 가능하게 실행
3. mysql -u root mysql 로 mysql 콘솔 접속
-- 이하 mysql 콘솔
4. insert into user (Host, User, Password) values ('localhost', 'root', password('사용할 패스워드'));
5. grant all privileges on *.* to root@localhost with grant option;
6. flush privileges;
이렇게 입력한 후 exit으로 빠져나와서 다시 정상적으로 mysqld를 실행 시켜주면 mysql 재설치 없이
root 계정을 복구할 수 있습니다.
도움 되시길...^^
저도 좀전에 황당한 실수로 root계정까지 삭제해버리는 바람에 검색하다가 이 페이지에 들어오게 되었는데요.
1. ps -ef | grep mysqld 하셔서 실행중인 mysqld 프로세스 종료
2. mysql --skip-grant & 로 인증정차 없이 로그인 가능하게 실행
3. mysql -u root mysql 로 mysql 콘솔 접속
-- 이하 mysql 콘솔
4. insert into user (Host, User, Password) values ('localhost', 'root', password('사용할 패스워드'));
5. grant all privileges on *.* to root@localhost with grant option;
6. flush privileges;
이렇게 입력한 후 exit으로 빠져나와서 다시 정상적으로 mysqld를 실행 시켜주면 mysql 재설치 없이
root 계정을 복구할 수 있습니다.
도움 되시길...^^