묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
이곳에서 초보를 위한 mysql 강좌를 보고,
db 생성에 나섰는데 뜻대로 잘 안되네요
c:mysqlbinmysql mysql 엔터합니다.
라고 되어있는데, 저는 자꾸 mysql shell 로 안들어가지고
이런 에러 메시지가 뜹니다.
C:INETPUBMYSQLBIN>mysql mysql
ERROR 1045: Access denied for user: 'ODBC@127.0.0.1' (Using password: NO)
당연히 db 생성이 안되고 있습니다. 흑..
무엇이 문제인건지 잘 모르겠어요.
초고수님들의 도움 부탁드립니다.
mysql 에서 새로운 db 만드는 것에 대한 질문이요
2003.06.17 23:26
이곳에서 초보를 위한 mysql 강좌를 보고,
db 생성에 나섰는데 뜻대로 잘 안되네요
c:mysqlbinmysql mysql 엔터합니다.
라고 되어있는데, 저는 자꾸 mysql shell 로 안들어가지고
이런 에러 메시지가 뜹니다.
C:INETPUBMYSQLBIN>mysql mysql
ERROR 1045: Access denied for user: 'ODBC@127.0.0.1' (Using password: NO)
당연히 db 생성이 안되고 있습니다. 흑..
무엇이 문제인건지 잘 모르겠어요.
초고수님들의 도움 부탁드립니다.
댓글 2
-
king
2003.06.20 06:26
-
king
2003.06.20 06:31
insert into user values (
-> 'localhost,'DB명','생성한 DB를 관리할 유저아이디',
-> 'y','y','y',
-> 'y','y','y'+ '+ ',
-> 'y','y','y','y',
-> 'n','y','+ 'y','y'
);
에고....14개 맞져?
root 비밀번호가 지정된것 같은데여..
>mysql -u root -p mysql [ENTER]
password: (스페이스 한번) [ENTER]
위와 같이 접속해보시고 똑 같은 증상이면,
safe_mode 로 접속해서 mysql DB의 user 테이블을 보세요.
select * from user; [ENTER]
password 필드에 암호가 저장되어 있는지..
암호가 저장되어 있지 않다면 다른 문제인것 같네요.
safe_mode 로 접속할때는 아래와 같이 하세요.
먼저 mysql 데몬을 죽이세요.
service mysql stop <== 리눅스
(가끔 절대로 죽지않는 경우가 있습니다. 죽인후에 프로세서 확인으로 확실히 사살? 되었는지 확인하세요.)
윈도우라면 mysql 서비스를 stop 시키면 됩니다.
(운영체제에 따라서 약간씩 차이가 납니다. 2000 Server 이면 관리도구-서비스에서 mysql 서비스를 죽일수 있습니다.)
>safe_mode --skip-grant-tables &
위와 같이 안전모드로 mysql 데몬을 백그라운드로 시작 합니다.
**백그라운드란...윈도우로 말하자면 멀티태스킹과 비슷합니다. 위 명령에서 &요놈이 백그라운드로 작업하겠다는 뜻.
레드헷 리눅스 9.0 에서는 백그라운드로 잘 안되더군요.
아무튼 위와 같이 안전모드로 실행 되었다면,
이제 접속하세요.
> mysql mysql 이렇게요.
앞의 mysql은 명령어...뒤의 mysql은 접속하고자 하는 DB명입니다.
좀 더 정확한 방법은 아래와 같습니다.
> mysql -u 사용자명 -p비밀번호 DB명
(ex. mysql -u root -p1234 mysql )
비밀번호가 노출되지 않게 접속하려면..
> mysql -u root -p mysql 로 접속하시면 됩니다.
접속이 되셨다면..
user 테이블의 내용을 봅니다.
> select * from user;
참고로 비밀번호를 변경할때는 아래와 같이 합니다.
> update user set password=password('1234') where user='root';
user 테이블을 업데이트 하는데, password 필드를 암호화된 1234로...
user필드가 root 인것만...이라는 뜻
password('1234') <== 요 말은 1234를 password 라는 함수를 사용해서
1234를 암호화 하겠다는 뜻입니다.
암호화 기법에는 몇몇 종류가 있습니다.
흔히..사용하는 password, MD5 등등...
또 참고로...DB를 생성할때는 아래와 같은 순서를 따릅니다.
1. mysql root로 접속합니다.
2. DB를 생성합니다. create database DB명;
3. db 테이블에 생성한 DB를 등록합니다.
insert into db (host,db,user) values ('localhost,'DB명','생성한 DB를 관리할 유저아이디');
4. user 테이블에 생성한 DB를 관리할 유저를 등록합니다.
insert into user values (
-> 'localhost,'DB명','생성한 DB를 관리할 유저아이디',
-> 'y','y','y',
-> 'y','y','y',
-> 'n','y','y','y'
);
** desc user; <== 요 명령으로 user 테이블의 모양을 보십시요.
모두 14개의 권한을 줄 수 있습니다. 각각의 권한을 설명하기는 너무 지면이 좁구요.
Grant_priv <== 요놈만큼은 'n'를 주십시요.
다 등록되었으면 마지막으로 리플레쉬 합니다.
> flush privileges;
아침에 비몽사몽 주절주절...잘 추려서 읽으십시요.