database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Tutorials 17063 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 17063
MySQL 의 간단한 설명서
작성자
정재익(advance)
작성일
2002-09-09 09:22
조회수
33,138

원본출처 : http://php.pe.kr/install/mysql/info1.mysql.html

 

MySQL 관련 

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


== /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로 로그인하여 해야함
 
DB생성
mysql> create database DB명
or 쉘프롬프트상에서 
% mysqladmin -u root -p create DB명

DB삭제
mysql> drop database DB명

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

질의파일 실행
mysql>load data local infile \질의파일\ into table 테이블명 ;
질의파일에서 컬럼구분은 탭문자, Null값은 /n로 입력

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

쉘프롬프트상에서 질의 실행
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\)\


사용자 생성 & 사용자에게 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)


DB, 테이블목록보기
mysql> show databases;
mysql> show tables;

사용 DB선택
mysql> use DB명

테이블구조
mysql> describe 테이블명

접속
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

버전체크
mysql> select version();

검색조건(where)
regular expression을 지원하다니 신기하군..
mysql> select * from work where 열명 regexp \정규표현식\;

컬럼의 추가, 삭제(오라클과 동일)
alter table 테이블명 add 컬럼명 데이터타입;
alter table 테이블명 del 컬럼명;


백업 & 복구
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 

테이블 검사
isamchk

오라클 sysdate와 동일
insert into test values(\12\, now());

유닉스 time()함수 리턴값 사용
FROM_UNIXTIME(954788684) 
UNIX_TIMESTAMP(\2001-04-04 :04:04:04\) 




==============================================================================
MySQL 특성정리
==============================================================================
primary key지원
index 지원(15개컬럼, 256byte까지)
foreign key, check, refereces기능 지원하지 않음(형식상 있음)

mysql> CREATE TABLE test (
        id INT NOT NULL,
        last_name CHAR(30) NOT NULL,
        first_name CHAR(30) NOT NULL,
        PRIMARY KEY (id),
        INDEX name (last_name,first_name));
        
MySQL에서의 Stored Script개념 => SQL server language
commit-rollback개념 => lock tables

이 글에 대한 댓글이 총 1건 있습니다.

엄연히 내가 쓴 글인데..원본출처가 php.pe.kr이라니.. 꽤씸죄 추가.

강명규님이 2003-02-10 20:14에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
20259[MySQL] time out(wait_timeout) 계산과 설정 (김칠봉님)
문태준
2003-10-19
14059
18411MySQL 기능 최대한 이용하는 방법
정재익
2003-01-26
26339
17235Using MySQL with ASP and MyODBC [1]
정재익
2002-10-02
14539
17063MySQL 의 간단한 설명서 [1]
정재익
2002-09-09
33138
17062too many connections 에러 해결책
정재익
2002-09-09
14034
16728MySQLmodule-1.4 설치/사용법
정재익
2002-08-05
12948
16726MySQLmodule-1.4 문서
정재익
2002-08-05
10185
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다