[MySQL]사용자 계정 생성 및 삭제

 Mysql  Comments Off on [MySQL]사용자 계정 생성 및 삭제
Oct 312011
 
MySQL에 root로 접속 한 뒤
use mysql;
select host,user from user;
현재 생성된 db의 사용자 계정들을 확인할 수 있다.

사용자 계정 생성
GRANT USAGE ON [database명].[table명] TO [user명]@[server명] IDENTIFIED BY [‘패스워드’];
ex) grant usage on database.* to user1@localhost identified by ‘user1’;

생성된 사용자 계정 권한 설정
GRANT ALL ON [database명].[table명] TO [user명]@[server명];    =>  모든 권한을 준다
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON [database명].[tabel명] TO [user명]@[server명];   => 특정 권한을 준다
ex) grant all on database.* to user1@localhost;
grant select,insert,update,delete,create,drop.index,alter on database.* to user1@localhost;

REVOKE ALL ON [database명].[table명] FROM [user명]@[server명];    =>  모든 권한을 삭제한다
REVOKE DROP ON [database명].[table명] FROM [user명]@[server명];    => 특정 권한(drop)을 삭제한다
ex) revoke all on database.* from user1@localhost;
revoke drop,index on database.* from user1@localhost;

계정 권한을 새로 로드
FLUSH PRIVILEGES;
flush privileges;

사용자 계정 삭제
DROP USER [user명]@[server명];
ex) drop user user1@localhost;

 

 

* 사용자등록 *
– insert into user (host,user,password) values(‘localhost’,’kyoe’,password(‘1234’));
사용자 주소와 아이디 패스워드를 설정해 mysql데이터베이스의 user테이블에 등록
등록하기전에 use mysql; 명령어로 mysql 데이터베이스를 선택해주자.
(여기서 주의 할것은 띄어쓰기를 잘해야한다.! insert into user() 이렇게 user와 ()붙여쓰면 안된다 띄어쓸것)

– insert into db values (‘localhost’,’mydb’,’kyoe’,’y’,’y’,’y’,’y’,’y’,’y’,’y’,’y’,’y’,’y’,’y’,’y’);
mydb라는 데이터베이스의 사용권한을 ‘kyoe’라는 사용자에게 준다.  보통12가지 권한이 있는데 혹 17개인것 도있으니까 desc db; 명령을 사용해 확인해보도록하자.

* 계정 삭제 *
– drop database mydb;
drop 명령을 사용해서 mydb라는 데이터베이스를 지운다.
– delete from user where user = ‘kyoe’;     //사용자 계정삭제
– delete from db where user = ‘kyoe;       //db권한 삭제

 Posted by at 8:44 PM

워드프레스 DB 에러난 경우 해결방법

 Mysql, 워드프레스  Comments Off on 워드프레스 DB 에러난 경우 해결방법
Sep 292011
 

How to fix a WordPress site when the database corrupts on you.

mysqlcheck db_wordpress –auto-repair 명령 수행

http://chrisadams.me.uk/2010/05/16/how-to-fix-a-wordpress-site-when-the-database-corrupts-on-you/

 Posted by at 1:48 PM

MySQL 사용자 추가 및 DB 권한 주기

 Mysql, 리눅스  Comments Off on MySQL 사용자 추가 및 DB 권한 주기
Sep 062010
 

ID, pass, DB 부분을 필요한 정보로 바꿔주면 됩니다.

1. root로 mysql에 로그인하여

USE mysql;

INSERT INTO user (host, user, password) VALUES (‘localhost’,’ID’,password(‘pass’));

INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv) VALUES (‘%’, ‘DB’, ‘ID’, ‘Y’, ‘Y’, ‘Y’, ‘Y’,’Y’,’Y’);

GRANT ALL on DB.* TO ID;

FLUSH PRIVILEGES;

2. ID로 mysql에 로그인하여 DB를 생성
create database DB;

 Posted by at 6:59 PM

Mysql Initial message

 Mysql, 리눅스  Comments Off on Mysql Initial message
Sep 062010
 

MySQL 데이타베이스를 초기화하고 있습니다: Installing MySQL system tables…
OK
Filling help tables…
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password ‘new-password’
/usr/bin/mysqladmin -u root -h crisftp.joongbu.ac.kr password ‘new-password’

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
[ OK ]
MySQL (을)를 시작합니다: [ OK ]

 Posted by at 2:11 PM

MySQL의 기본 명령어 정리

 Mysql, 리눅스  Comments Off on MySQL의 기본 명령어 정리
Aug 312010
 

MySQL의 기본 명령어와 SQL문 정리. 내가 RDBMS에 완전 문외한이기 때문에 기본 SQL쿼리까지…
Redhat Linux 7.3, MySQL 3.23.58 에서 테스트함.
설치는 Redhat 기본 제공 RPM으로 했다.

데이터베이스 접속

$ mysql -u 사용자명 -p dbname

설치 직후에는 root 사용자에 비밀번호가 없으므로 다음과 같이 접속하여 MySQL을 관리할 수 있다.

$ mysql -u root mysql

비밀번호 변경
MySQL을 설치한 직후에는 root 계정에 암호가 지정되어 있지 않다.
다음 세가지 방법으로 비밀번호를 변경 할 수 있다.

  • mysqladmin이용

    $ mysqladmin -u root password 새비밀번호

  • update문 이용

    $ mysql -u root mysql

    mysql> UPDATE user SET password=password(‘새비밀번호’) WHERE user=’root’;
    mysql> FLUSH PRIVILEGES;

  • Set Password 이용

    SET PASSWORD FOR root=password(‘새비밀번호’);

일단 root 비밀번호가 설정된 상태에서는 mysql이나 mysqladmin 명령을 실행할 때 -p 옵션을 붙여주고 기존 비밀번호를 입력해야만 한다.

사용자 추가/삭제

mysql> GRANT ALL PRIVILEGES ON dbname.* TO username@localhost IDENTIFIED BY ‘password’;

username 이라는 사용자를 password라는 비밀번호를 갖도록 하여 추가한다. username은 dbname이라는
데이타베이스에 대해 모든 권한을 가지고 있다.
username 사용자는 로칼 호스트에서만 접속할 수 있다. 다른 호스트에서 접속하려면

GRANT ALL PRIVILEGES ON dbname.* TO username@’%’ IDENTIFIED BY ‘password’;

위를 또한 번 실행한다. ‘%’에서 홑따옴표를 주의한다.
추가 : ‘%’를 호스트네임으로 지정해도 모든 호스트에서 접속할 수 없었다. 각 호스트별로 다 지정해야 했다.
아래 댓글에서 rukikuki님이 알려주셨습니다.
GRANT ALL PRIVILEGES ON testdb.* TO ‘username’@’%’ IDENTIFIED BY ‘password’ ;
처럼 ‘username’ 이런식으로 홑따옴표를 username 에도 붙여야 하더군요..

불필요한 사용자 삭제는

mysql> DLETE FROM user WHERE user=’username’;
mysql> FLUSH PRIVILEGES;

데이터베이스 생성/보기

  • 데이터베이스를 생성하고,

    mysql> CREATE DATABASE dbname;

  • 현재 존재하는 데이터베이스 목록을 보여준다.

    mysql> SHOW DATABASES;

  • 특정 데이타베이스를 사용하겠다고 선언한다.

    mysql> USE dbname;

  • 쓸모 없으면 과감히 삭제한다.

    mysql> DROP DATABASE [IF EXISTS] dbname;

    IF EXISTS 옵션은 비록 데이타베이스가 없더라도 오류를 발생시키지 말라는 의미이다.

테이블 생성/보기

  • 테이블을 생성하고,

    mysql> CREATE TABLE tablename (
    column_name1 INT,
    column_name2 VARCHAR(15),
    column_name3 INT );

  • 현재 데이타베이스의 테이블 목록을 보고

    mysql> SHOW TABLES;

  • 테이블 구조를 살펴본다.

    mysql> EXPLAIN tablesname;
    혹은
    mysql> DESCRIBE tablename;

  • 이름을 잘못 지정했으면 이름을 변경할 수도 있다.

    mysql> RENAME TABLE tablename1 TO tablename2[, tablename3 TO tablename4];

  • 필요 없으면 삭제한다.

    mysql> DROP TABLE [IF EXISTS] tablename;

현재 상태 보기

mysql> status

————–
mysql Ver 11.18 Distrib 3.23.58, for pc-linux (i686)

Connection id: 26
Current database: study
Current user: study@localhost
Current pager: stdout
Using outfile: ”
Server version: 3.23.58
Protocol version: 10
Connection: Localhost via UNIX socket
Client characterset: latin1
Server characterset: euc_kr
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 2 hours 9 min 59 sec

Threads: 1 Questions: 160 Slow queries: 0 Opens: 28 Flush tables: 1
Open tables: 1 Queries per second avg: 0.021
————–

INSERT

mysql> INSERT INTO tablename VALUES(값1, 값2, …);

혹은

mysql> INSERT INTO tablename (col1, col2, …) VALUES(값1, 값2, …);

SELECT

mysql> SELECT col1, col2, … FROM tablename;

컬럼명을 *로 하면 모든 컬럼 의미.

mysql> SELECT col1 AS ‘성명’, col2 AS ‘국어점수’ FROM grade;

컬럼의 이름을 바꿔서 출력.

mysql> SELECT * FROM tablename ORDER BY col1 DESC;
mysql> SELECT col1, korean + math english AS ‘총점’ FROM tablename ORDER BY ‘총점’ ASC;

DESC는 내림차순 ASC는 오름차순.

mysql> SELECT * FROM grade WHERE korean < 90;

조건줘서 SELECT.

mysql> SELECT * FROM grade LIMIT 10;

결과중 처음부터 10개만 가져오기

mysql> SELECT * FROM grade LIMIT 100, 10;

결과중 100번째부터 10개만 가져오기. 첫번째 레코드는 0번 부터 시작한다.

UPDATE

mysql> UPDATE tablename SET col1=새값 WEHER 조건

DELETE

mysql> DELETE FROM tablename WEHRE 조건

mysql에서 쿼리 결과 세로로 보기
-E 옵션을 줘서 실행한다.

$ mysql -E -u root -p mysql

mysql에서 발생한 오류나 경고 다시 보기

mysql> show errors;
mysql> show warnings;

 Posted by at 1:50 PM

Mysql 비밀번호 변경 방법

 Mysql, 리눅스  Comments Off on Mysql 비밀번호 변경 방법
Aug 312010
 

## 1. root 비밀번호를 분실했을 경우

1) 암호 초기화
# killall mysqld (데몬을 모조리 죽입니다)

# cd /usr/local/mysql (mySsql 설치된 폴더 이동)
※ mysql 데몬이 죽었기 때문에, 의외로 이거 모르시는 분이 많은데 sql 명령을 넣으려면 sql이 설치된 디렉토리로 가야합니다.

# ./bin/safe_mysqld –skip-grant &
여기까지 진행하면 root 비밀번호가 초기화됩니다. 즉 root 비밀번호가 삭제되는거죠.

2) 새 암호 넣기

2.1) MySQL 3.x ~ 4.01

# ./bin/mysql (mysql 실행)

mysql>use mysql  <- mysql 데이타베이스 연결

mysql>update user set password=password(‘새암호’) where user=’root’;
Query OK, 2 rows affected (0.05 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> FLUSH PRIVILEGES;    <- 끝에  ;  를 꼭 입력해야합니다.
Query OK, 0 rows affected (0.00 sec)

mysql> exit (끝내기)

2.2) MySQL 4.1 ~ MySQL 5.x
MySQL 4.1 이상 버전에서는 비밀번호를 해쉬알고리즘을 기반으로한 인증 프로토콜을 사용합니다.
그리고 해당 기능이 하위버전의 Client와 호환이 되지 않기에 서버를 4.1이상으로 업그레이드를 한 후에는 다음과 같은 명령어를 사용하여 인증이 가능토록 해야 합니다.

# ./bin/mysql (mysql 실행)

mysql>use mysql  <- mysql 데이타베이스 연결

mysql> update user set password=OLD_PASSWORD(‘새암호’) WHERE user = ‘root’;
Query OK, 2 rows affected (0.05 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

## 2. 유저 로그인 경우 비밀번호 변경

$ mysql -u디비아이디 -p 디비이름
Enter password:

mysql>set password = password(‘새암호’);    <== 새로운 비밀번호로 저장하기
<추가설명>set password = old_password(‘새암호’);  <== 기존 비밀번호로 저장하기
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit  <== MySQL 빠져나올 때