2011년 8월 29일 월요일

[Mysql] DB 계정 생성 후 계정 사용시 오류 해결

질문 :
mysql db생성후 db에 계정 링크시킬려고 하는데요 ;ㅁ;
mysql> insert into db(host,db,user,select_priv,insert_priv,update_priv,delete_pr
iv,create_priv,drop_priv)
-> values ('%','testsql','tester','Y','Y','Y','Y','Y','Y')
-> ;
ERROR 1046: No Database Selected
mysql> show databases
-> ;
+----------+
| Database |
+----------+
| mysql |
| test |
| testsql |
+----------+
3 rows in set (0.00 sec)

mysql> use test
Database changed
mysql> insert into db(host,db,user,select_priv,insert_priv,update_priv,delete_pr
iv,create_priv,drop_priv)
-> values ('%','testsql','tester','Y','Y','Y','Y','Y','Y')
-> ;
ERROR 1146: Table 'test.db' doesn't exist

위에 있는 것처럼 test.db가 없다고 나오네요... sql 자료실에 있는거 보고 따라서해본 건데요... 그 자료에는 바로 생성이 되던데 저는 안되네요;;;
버전 문제인지... 고수님들 좋은 답변 부탁드립니다.


답변 :
사용자 계정에 대한 관리는 mysql database 에서 합니다.

mysql>use mysql;

후에 user와 db 테이블에 원하는 정보를 입력하면 됩니다. test db에서 생성을 하려고 해서 문제가 발생한 것입니다.

위의 방법은 사용하기만 불편합니다. 저는 아래의 방법을 사용합니다.

-- 생성

mysql> create database test2;
mysql> grant all privileges on test2.* to smson@localhost
identified by 'smson' with grant option;
mysql> FLUSH PRIVILEGES;

test2 는 database 명이고 smson : id, 'smson' : 비밀번호입니다. 님의 경우는 아래와 같이하면 사용자 계정을 생성할수 있습니다.

mysql> grant all privileges on testsql.* to tester@'%'
identified by 'tester에 해당하는 비밀번호' with grant option;

================================================================

table만들어서 질문과 같이 해서 안된다고 울고 불고 해도 소용없습니다.
답변과 같이 직접 생성하는게 백배편하고 시간벌고 일찍 퇴근할 수 있습니다.

댓글 없음:

댓글 쓰기