U E D R S I H C RSS
ID
Password
Join
모든 여성은 착하기보다 아름다움을 원한다. -독일 격언


Contents

1 root암호변경설정
1.1 /etc/my.cnf예
2 DB 생성
3 DB삭제
4 MySQL 연결
5 질의파일 실행
6 쉘프롬프트상에서 질의 실행
7 사용자 생성 & 사용자에게 DB할당
8 DB, 테이블목록보기
9 사용 DB선택
10 테이블구조
11 접속
12 버전체크
13 검색조건(where)
14 컬럼의 추가, 삭제(오라클과 동일)
15 백업 & 복구
16 테이블 검사
17 오라클 sysdate와 동일
18 유닉스 time()함수 리턴값 사용

1 root암호변경설정 #

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! This is done with:
/usr/bin/mysqladmin -u root -p password 'new-password'
/usr/bin/mysqladmin -u root -h ns.dbakorea.pe.kr -p password 'new-password'
  • 쉘에서는 mysql이 되는데 PHP에서 mysql.sock error를 내면서 MySQL이 안되는 경우 mysql.sock은 /tmp 아니면 /var/lib/mysql에 생기게 된다. 나의 경우, /var/lib/mysql에 mysql.sock파일이 있는데 PHP에서는 /tmp에서 찾으려하면서 에러를 발생했다. /usr/bin/safe_mysqld파일에서 다음과 같이 수정한다. 주석(#)이 달린 것이 원래것이고 그 밑에 있는것이 수정한 것이다.
# MYSQL_UNIX_PORT=${MYSQL_UNIX_PORT:-/var/lib/mysql/mysql.sock}
MYSQL_UNIX_PORT=${MYSQL_UNIX_PORT:-/tmp/mysql.sock}

위와 같이 하니 /usr/bin/mysql이 /var/lib/mysql/mysql.sock에서 소켓파일을 찾으려 했다. socket file을 지정하는 --socket이라는 옵션으로 다음과 같이 지정하면 된다.
mysql --socket=/tmp/mysql.sock -u dbakorea -p db_test
하지만 mysql실행시마다 이렇게 써줘야한다는 것이 상당히 귀찮다. 옵션이 바로 적용되게 설정하자. mysql은 설정사항을 다음 3가지 파일에서 검색한다.
/etc/my.cnf            global options(MySQL 전체적으로 사용되는 옵션 정의)
mysql-data-dir/my.cnf  특정 DB에 적용되는 option (/var/lib/mysql/my.cnf)
~/.my.cnf              사용자 각각의 설정('~'문자는 사용자의 홈디렉토리는 의미)

/usr/share/mysql디렉토리에 예제가 있으므로 참고한다. 소켓파일의 지정은 다음줄을 넣어주면 된다.
socket          = /tmp/mysql.sock

1.1 /etc/my.cnf예 #

# The following options will be passed to all MySQL clients
[client]
#password       = your_password
port            = 3306
socket          = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock


# root암호설정
% mysqladmin -u root password '변경암호'  root로 로그인하여 해야함

2 DB 생성 #

mysql> create database DB명
or 쉘프롬프트상에서
% mysqladmin -u root -p create DB명

3 DB삭제 #

mysql> drop database DB명

4 MySQL 연결 #

mysql -u 사용자 -p DB명
or 쉘프롬프트상에서
% mysqladmin -u root -p drop DB명

5 질의파일 실행 #

mysql>load data local infile "질의파일" into table 테이블명 ;

질의파일에서 컬럼구분은 탭문자, Null값은 /n로 입력

or 쉘프롬프트상에서
mysql -u 사용자 -p DB명 < 질의파일

6 쉘프롬프트상에서 질의 실행 #

dbakorea@lion board]$ mysql mysql -u root -pxxxx -e \
"INSERT INTO db VALUES( 'localhost', 'aaa', 'aaa', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y')"

7 사용자 생성 & 사용자에게 DB할당 #

shell> mysql --user=root -p mysql

mysql> INSERT INTO user VALUES('localhost','사용자',PASSWORD('비밀번호'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO user VALUES('%','사용자',PASSWORD('비밀번호'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

mysql> INSERT INTO db(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ('localhost','DB명','사용자','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES('%','DB명','사용자','Y','Y','Y','Y','Y','Y');

mysql> FLUSH PRIVILEGES; (or shell prompt: mysqladmin -u root -pxxxx reload)

8 DB, 테이블목록보기 #

mysql> show databases;
mysql> show tables;

9 사용 DB선택 #

mysql> use DB명

10 테이블구조 #

mysql> describe 테이블명

11 접속 #

mysql {-h 접속호스트} -u 사용자 -p 사용DB
-h로 다른 서버에 존재하는 MySQL접속시 다음과 같이 MySQL DB에 설정해줘야 한다.
mysql> INSERT INTO user VALUES('접근을 허용할 호스트ip','사용자',PASSWORD('비밀번호'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES('접근을 허용할 호스트ip','사용DB','사용자','Y','Y','Y','Y','Y','Y');
mysql> FLUSH PRIVILEGES; 
or 쉴프롬프트상에서
% mysqladmin -u root -p flush-privileges

12 버전체크 #

mysql> select version();

13 검색조건(where) #

regular expression을 지원하다니 신기하군..
mysql> select * from work where 열명 regexp "정규표현식";

14 컬럼의 추가, 삭제(오라클과 동일) #

alter table 테이블명 add 컬럼명 데이터타입;
alter table 테이블명 del 컬럼명;

15 백업 & 복구 #

mysqldump {-h 호스트} -u 사용자 -p DB명 > 백업파일
mysql {-h 호스트} -u 사용자 -p DB명 < 백업파일

mysqldump -u root -p --opt db_dbakorea > dbakorea.sql
mysqldump -u root -p --opt db_board | mysql ---host=remote-host -C database (상이한 머쉰)
mysql -u dbakorea -p db_dbakorea < dbakorea.sql       

mysqldump -u root -p --opt db_dbakorea | mysql ---host=ns.dbakorea.pe.kr -C db_dbakorea 

16 테이블 검사 #

isamchk

17 오라클 sysdate와 동일 #

insert into test values('12', now());

18 유닉스 time()함수 리턴값 사용 #

FROM_UNIXTIME(954788684) 
UNIX_TIMESTAMP("2001-04-04 :04:04:04") 

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-10-28 12:42:52
Processing time 0.9049 sec