[root@blackbelt ~]# mysql -u root -p
1. mysql 설치후 접속이 안될 때,
방화벽을 점검한다.
2. mysql root 로 접속하여, New user 를 추가하고, 권한을 부여한다.
** 이때, database 가 이미 존재해야하므로, root 계정으로 접속하여 일단 database 생성부터한다.
그런다음에,
- localhost 권한도 부여하고,
- ‘%’ 외부 접속권한도 부여한다.
mysql> grant all privileges on ems_db.* to ems@localhost identified by'ems';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on ems_db.* to ems@'%' identified by'ems';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
3. mysql -u xxxx -p 로 콘솔접속이 가능한지를 본다.
-------------------------------------------------------------------------------------------
GRANT문을 사용해 사용자를 추가하거나 권한을 부여할수도 있습니다.
GRANT ALL ON TO @ IDENTIFIED BY '비밀번호';
사용자 권한 삭제는 REVOKE문을 사용하시면 됩니다.
REVOKE ON FROM ;
1) user1에 모든 db의 권한을 줄때 ( root를 제외한 super user : dba )
localhost의 권한
grant all privileges on *.* to user1@localhost identified by 'pass1';
%의 권한
grant all privileges on *.* to user1 identified by 'pass1';
2) user1에 db1의 사용권한을 줄때
localhost의 권한
grant all privileges on db1.* to user1@localhost identified by 'pass1';
%의 권한 (모든 권한)
grant all privileges on db1.* to user1@'%' identified by 'pass1';
3) user1에 db1의 tb1의 권한을 줄때
localhost의 권한
grant all privileges on db1.tb1 to user1@localhost identified by 'pass1';
%의 권한
grant all privileges on db1.tb1 to user1@'%' identified by 'pass1';
권한 삭제는
REVOKE all on *.* from user1
--------------------------------------------------------------------------------------------------------------------------
출처 : http://msgzoro.egloos.com/3274111
--------------------------------------------------------------------------------------------------------------------------
보통 기본설치만 한 상태면 localhost로만 접속이 가능하도록 설정이 되어있는데, 외부에서 접속이 가능하도록 설정을 바꿔보자.
여기서는 root계정을 예로 들어 설명한다.
1. mysql 접속 후 mysql database 선택
mysql> use mysql;
2. user 테이블 살펴보기
mysql> select host, user, password from user;
root 의 host 값들은 localhost, 127.0.0.1 등으로 기본 등록되어 있지만, 외부접속을 나타내는 값이 없다. 특정 아이피로 지정할 수도 있지만 여기선 % 기호로 어디서든 접속 가능하게 만든다.
3. 권한 설정
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root의 패스워드';
Query OK, 0 rows affected (0.03 sec)
4. 등록확인하기
mysql> select host, user, password from user;
root 계정의 host 필드에 % 가 등록되었는지 확인한다.
5. refrash (모든 변경 사항을 적용시키기)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
여기까지 간단한 과정을 통해서 mysql외부접속이 가능해진다.
외부접속 권한 :
mysql> grant all privileges on ems_db.* to ems@'%' identified by 'ems';
-------------------------------------------------------------------------------------------------------------------------
[ user 추가 ][
Database 선택
mysql> use mysql
User 추가
mysql> insert into user(Host, User, Password)
->values('localhost', 'userName', 'userPassword');
User 권한 database 및 권한 설정
mysql> insert into db
->values ('localhost', 'userDatabase', 'userName', 'y', 'y', 'y', 'y', 'y', 'y',
'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y');
변경 사항 적용
myql> flush privileges;
위의 것을 방법으로 user를 등록 한 후 등록한 user로 로그인을 하려면 ERROR 1045 (28000): Access denied for user 'userName'@'localhost' (using password: YES) 라는 오류 메시지가 뜹니다. 해결하는 방법은 간단합니다.
$ select * from user;
명령어로 등록되어 있는 모든 user를 확인하면, password가 암호화 되지 않은 것을 알 수 있습니다. 아주 사소한 실수...user의 password를 등록할때는 암호화를 해줘야 합니다.
User 추가 부분의 소스를 조금 바꿔보겠습니다.
User 추가
mysql>insert into user(Host, User, Password)
->values('localhost', 'userName', password('userPassword));
이렇게 password를 암호화 해주면 추가 등록한 user가 password로 로그인이 됩니다.
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[coway@localhost ~]$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.1.61 Source distribution
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql>
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> insert into user ( Host, User, Password )
-> values ( 'localhost', 'wems', 'wems' );
Query OK, 1 row affected, 3 warnings (0.00 sec)
'데이타베이스' 카테고리의 다른 글
[ Oracle ] 오라클 테이블스페이스/유저추가 (0) | 2016.01.05 |
---|---|
[ MSSQL ] Lock 에대한 구체적정리 (2013.0325) (2) | 2016.01.05 |
[ MSSQL ] Lock 관련명령 (2013.0325) (0) | 2016.01.05 |
[ DB ] ALTER 명령 (0) | 2016.01.05 |
[ ORACLE ] SQL DB 상태조회 (0) | 2015.01.09 |
댓글