[우창호]님이 남기신 글:
>다음과 같은 에러가 뜹니다.
>[root@www /root]# mysql
>Welcome to the MySQL monitor. Commands end with ; or \g.
>Your MySQL connection id is 21 to server version: 3.22.24
>
>Type 'help' for help.
>
---------->
헙 mysql 버전이 꽤 오래되었군요..
최신 버전으로 업그레이드 해 보는것이 더 낫을 것 같군요....
>mysql> use mysql
>Database changed
>mysql> show tables;
>ERROR 1044: Access denied for user: '@localhost' to database 'mysql'
>mysql>
>
-------------->
user: '@localhost' 이 부분을 보니
user가 없군요...
# mysql -u root -p mysql
위와 같이 접속해 보세요...
>이전 까지 잘 되었었거든요
>제가 무엇을 건드렸나 하면요
>
>create database guestbook;해서 db를 하나 만들고요
>
>mysql 데이타베이스 db 테이블에 user를 등록했습니다.
>
>insert into db values
>('%','guestbook','skyfly','y','y','y','y','y','y',..);
>
>이렇게 guestbook라는 db를 skyfly가 사용하도록 해주고요
>
>
>user테이블에 다음과 같이 했습니다.
>
>insert into user(host,user,password) values('localhost','skyfly','skyfly99');
>이렇게 해서 user에 skyfly를 등록했구요
>
>가만히 생각해보니
>외부에서도 접근해야 될것 같아서(제 생각이 틀렸나요?)
>update user set host='%' where user='skyfly'
>이렇게 했거든요
>
>host를 localhost로 안하고 %로 했는데 이게 문제인가요?
------------->
상당히 위험한 설정을 했군요...
만약 password를 알고 있다면 어느 호스트에서도
접근할 수 있으므로 위험한 설정입니다.
일단 localhost만 설정해 주고
나중에 원격에서 접속해도 무방한 호스트를 따로 추가해 주는것이
좋습니다.
예를들어
192.168.10.%
위와같이 설정하면 192.168.10.0 ~ 192.168.10.255
의 호스트를 의미합니다. * 가 아님...
또는
직접 호스트 이름이나 IP 주소를 설정해는것이 좋음.
아...
암호는
values ('localhost','skyfly',password('skyfly99'))
함수를 이용해서 집어넣는게 좋습니다.
일단 암호가 이미 설정되어 있기 때문에
update user set password=password('skyfly99') where
user='skyfly';
이렇게 암호를 암호화해서 바꾸어 보세요....
>
>이렇게 해두고 일이 생겨서 컴퓨터를 모두 끄고
>볼일보러 갔다와서
>
>다시 접속하니까
>어찌 된일인지 아무것도 안먹히는군요
>맹세코 다른것은 건드린게 없는데......
>
>고수님들 좀 도와 주세요
========================================
일단...
mysql 버전이 오래된점이 맘이 걸리는군요..
최신 버전으로 업그레이드할 것을 권합니다.
기존의 DB data 디렉토리를 몽땅 다른 위치에 복사해 놓고
새로운 mysql을 설치하고 DB data를 다시 교체 복사해 두면 됩니다.
.....
위의 경우는 참이상하군요...
root 권한으로 접속했으므로.... 그 유저는 root가 되어야하는데
공백 유저로 나오는군요....
다른 방법도 있을 수 있습니다.
예를 들어(등록된 유저를 모두 알고 있거나 별로 없다면)
일단 DB를 몽땅 다른 위치에 복사해 놓고
기초테이블을 다시 만들어 유저를 등록하는 방법입니다.
# mysql_install_db |