레이블이 mysql인 게시물을 표시합니다. 모든 게시물 표시
레이블이 mysql인 게시물을 표시합니다. 모든 게시물 표시

2021-03-12

Mysql/MariaDB 대용량 데이터 import 하기

1. command 명령 프롬프트에서 mysql/mariadb 로그인

D:\eGov_3.6_DEV\bin\mariadb-10.2.6-winx64>bin\mysql -u root -p
Enter password: **********
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 23
Server version: 10.2.6-MariaDB-log mariadb.org binary distribution

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> help load
Many help items for your request exist.
To make a more specific request, please type 'help <item>',
where <item> is one of the following
topics:
   LOAD DATA
   LOAD INDEX


2. import 하고자 하는 DB로 변경

MariaDB [(none)]> use skb_mss;  <== 해당 db로 이동
Database changed

3. *.csv/*.log 파일의 내용을 읽어서 로딩
// 파일에서 데이터 읽어서 로딩하기.
// 아래 문장의 내용
// input 파일명 : d:\aapl2.csv  입력 테이블명 : aapl
// 컬럼 구분은 ','
// 줄 끝은 '\n'
// 첫줄은 header 이므로 무시
MariaDB [skb_mss]> load data local infile 'd:\\aapl2.csv' into table aapl columns terminated by ',' lines terminated by '\n' ignore 1 lines;
Query OK, 1243 rows affected, 2471 warnings (0.04 sec)
Records: 1243  Deleted: 0  Skipped: 0  Warnings: 2471

mysql startup, stop 파일 생성


startup_mysqld.bat 내용
.\bin\mysqld --character-set-server=utf8 --explicit-defaults-for-timestamp &


stop_mysqld.bat 내용
.\bin\mysqladmin -u root -p shutdown

2018-07-03

MySQL/MariaDB/SQL] MariaDB 10.2.16 zip 으로 설치 및 설정하기(서비스 등록 제외)

mariadb 설치 및 설정 하기.

1. https://downloads.mariadb.org/mariadb/+releases/ 에서 mariadb 10.2.16 다운로드 (x64버전, zip 파일)
2. D:\DB\mariadb-10.2.16-winx64 로 압축 파일 해제
3. 도스 명령창 실행
4. D:\DB\mariadb-10.2.16-winx64\bin 디렉토리로 이동
5. mysqld 실행
5.1 localhost 에서 접속 가능하게 설정 작업 및 비번 설정 작업
### mysql에 root 사용자로 접속
### 최초 실행이라 비번이 설정되어 있지 않음
D:\DB\mariadb-10.2.16-winx64\bin> mysql -u root

### mysql db 사용
MariaDB [(none)]> use mysql
Database changed
MariaDB [mysql]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)


### mysql db 의 user 테이블에 등록된 host, user 정보 확인
MariaDB [mysql]> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| 127.0.0.1 | root |
| ::1       | root |
| localhost |      |
| localhost | root |
+-----------+------+
4 rows in set (0.00 sec)


### root 사용자에게 모든 ip 로 부터 접속할 권한 부여 및 접속 비번 설정
MariaDB [mysql]> grant all privileges on mysql.* to 'root'@'%' identified by '사용할비밀번호';
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| %         | root |
| 127.0.0.1 | root |
| ::1       | root |
| localhost |      |
| localhost | root |
+-----------+------+
5 rows in set (0.00 sec)


### user 테이블에 등록된 사용자 정보 확인 : root 사용자의 비번이 설정되어 있지 않음
MariaDB [mysql]> select host, user, password from user;
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root |                                           |
| 127.0.0.1 | root |                                           |
| ::1       | root |                                           |
| localhost |      |                                           |
| %         | root | 인코딩된 비밀번호                         |
+-----------+------+-------------------------------------------+
5 rows in set (0.00 sec)

### user 테이블의 초기 등록된 사용자에 대한 비번 설정
MariaDB [mysql]> update user set password = PASSWORD('사용할비밀번호');
Query OK, 4 rows affected (0.02 sec)
Rows matched: 5  Changed: 4  Warnings: 0


### user 테이블의 초기 등록된 사용자에 정보 확인
MariaDB [mysql]> select host, user, password from user;
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | 인코딩된 비밀번호                         |
| 127.0.0.1 | root | 인코딩된 비밀번호                         |
| ::1       | root | 인코딩된 비밀번호                         |
| localhost |      | 인코딩된 비밀번호                         |
| %         | root | 인코딩된 비밀번호                         |
+-----------+------+-------------------------------------------+
5 rows in set (0.00 sec)

### 권한 적용.
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)


### mysql 빠져 나가기
MariaDB [mysql]> \q
Bye

### mysql 접속확인 : 비번 적용된 버전으로...
D:\DB\mariadb-10.2.16-winx64\bin>mysql -u root -p
Enter password: **********
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.2.16-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> \q
Bye

6. mysql 수동으로 실행 스크립트 생성
D:\DB\mariadb-10.2.16-winx64\ 경로에 mysqld_start.bat 파일 생성 후 아래의 명령어를 적용 후 저장 한다.

#----------------
bin\mysqld --defaults-file=my.ini --console --explicit_defaults_for_timestamp &
#----------------

7. my.ini 파일 생성
### D:\DB\mariadb-10.2.16-winx64\my-large.ini 파일을 my.ini 로 복사
D:\DB\mariadb-10.2.16-winx64> copy my-large.ini my.ini


8. my.ini 파일 내용 수정 
########
아래의 내용을 각 항목별로 추가한다. (character-set을 utf8로 설정 작업)
[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init_connect=SET collation_connection=utf8_general_ci
init_connect=SET NAMES utf8

[mysql]
default-character-set=utf8

9. 6에서 생성한 .bat 파일을 실행시켜 mysql DB server 를 실행시킨다.

10. character-set 적용과 data db 저장 디렉토리 확인

### mysql 접속
D:\DB\mariadb-10.2.16-winx64\bin>mysql -u root -p
Enter password: **********
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.2.16-MariaDB-log mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

### mysql character-set 정보 확인
MariaDB [(none)]> show variables like 'c%';
+--------------------------+----------------------------------------------+
| Variable_name            | Value                                        |
+--------------------------+----------------------------------------------+
| character_set_client     | utf8                                         |
| character_set_connection | utf8                                         |
| character_set_database   | utf8                                         |
| character_set_filesystem | binary                                       |
| character_set_results    | utf8                                         |
| character_set_server     | utf8                                         |
| character_set_system     | utf8                                         |
| character_sets_dir       | D:\DB\mariadb-10.2.16-winx64\share\charsets\ |
| check_constraint_checks  | ON                                           |
| collation_connection     | utf8_general_ci                              |
| collation_database       | utf8_general_ci                              |
| collation_server         | utf8_general_ci                              |
| completion_type          | NO_CHAIN                                     |
| concurrent_insert        | AUTO                                         |
| connect_timeout          | 10                                           |
+--------------------------+----------------------------------------------+
15 rows in set (0.00 sec)

### mysql data 관련 정보 확인
MariaDB [(none)]> show variables like 'd%';
+-----------------------------+------------------------------------+
| Variable_name               | Value                              |
+-----------------------------+------------------------------------+
| datadir                     | D:\DB\mariadb-10.2.16-winx64\data\ |
| date_format                 | %Y-%m-%d                           |
| datetime_format             | %Y-%m-%d %H:%i:%s                  |
| deadlock_search_depth_long  | 15                                 |
| deadlock_search_depth_short | 4                                  |
| deadlock_timeout_long       | 50000000                           |
| deadlock_timeout_short      | 10000                              |
| debug_no_thread_alarm       | OFF                                |
| default_master_connection   |                                    |
| default_regex_flags         |                                    |
| default_storage_engine      | InnoDB                             |
| default_tmp_storage_engine  |                                    |
| default_week_format         | 0                                  |
| delay_key_write             | ON                                 |
| delayed_insert_limit        | 100                                |
| delayed_insert_timeout      | 300                                |
| delayed_queue_size          | 1000                               |
| div_precision_increment     | 4                                  |
+-----------------------------+------------------------------------+
18 rows in set (0.00 sec)


11. mysql client 툴 다운로드 (HeidiSQL)
mysql client 툴인 HeidiSQL 을 아래 경로에서 다운로드 한다. (x64버전, portable 버전)

https://www.heidisql.com/download.php?download=portable-64

12. 다운로드 받은 HeidiSQL 을 압축 해제 및 실행
    압축 해제된 경로에서 heidisql.exe 파일을 실행 후 접속 정보 입력 후, 사용하면 된다.

2013-12-18

Mysql/Mariadb] MariaDB 5.5.34 zip 파일 설치하기.

mysql 과 쌍둥이 Database 인 MariaDB 설치하기.

1. mariadb download
   https://downloads.mariadb.org 에 접속해서 해당하는 버전을 다운로드(zip 파일)
   ** 현재 안정화 버전은 5.5.34(mysql 5.5에 대응) , 베타버전은 10.6 beta(mysql 5.6에 대응)를 테스트 중.
       
2. download 된 zip 파일을 압축해제 한다.

3. 압축이 풀린 디렉토리를 설치하고자 하는 곳으로 옮긴다.
    ex) c:\maraidb-5.5.34

4. my-innodb-heavy-4G.ini 을 my.ini로 복사

5. my.ini 파일 편집

[client]

default-character-set = utf8

[mysqld]
init_connect = SET collation_connection = utf8_general_ci
init_connect = SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci



# innodb

innodb_data_home_dir = "c:/maraidb-5.5.34/data/"


[mysqldump]
default-character-set = utf8




[mysql]
default-character-set = utf8

5. mysql 실행
c:/maraidb-5.5.34/bin/mysqld


**  mysql을 윈도우 서비스로 등록

mysqld --install 서비스명.


6. mysql 에 root user로 접속
c:/maraidb-5.5.34/bin>mysql -u root -p
Enter password:   <== 엔터키 입력하고 넘어간다

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use mysql <== db 변경
Database changed

7. mysql DB의 user 테이블의 내용 확인
MariaDB [mysql]> desc user; <== user 테이블의 구조 확인

8. root user의 비밀번호 변경 및 적용
MariaDB [mysql]> update user set password=password('변경할비밀번호') where user='root';  <== 비번 변경
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

MariaDB [mysql]> flush privileges; <== 적용
Query OK, 0 rows affected (0.00 sec)

2012-11-03

FreeBSD/MySQL]FreeBSD5.3.1R 에서 mysql4.x 설치하기

이글은 FreeBSD 5.3R 에서의 포트시스템으로의 설치를 기본으로 합니다.
1. 디렉토리 이동
# cd /usr/ports/databases/mysql41-server

--> mysql 버전이 5.x 가 있지만 proftpd포트 설치시 mysql4.x 클라이언트

를 설치하므로 버전을 맞추기 위해 4.x 를 설치하기로 합니다.

# make install clean WITH_CHARSET=euc_kr BUILD_OPTIMIZED=yes

(

mysql41-server 의 경우 WITH_CHARSET옵션의 값이 euckr로 변경됨.

mysql 4.1버전의 경우

# make install clean WITH_CHARSET=euckr BUILD_OPTIMIZED=yes

)

# /usr/local/bin/mysql_install_db

==> 처음으로 mysql을 사용하기 전에 시스템 DB를 만들기 위한 스크립트를

실행합니다.

위 명령은 mysql을 설치한 후 반드시 한번만 하시기 바랍니다.



2. 설치 확인 작업

# /usr/local/bin : mysql바이너리 파일들이 있나 확인

# /usr/local/etc/rc.d/mysql-server.sh : mysql 기동 스크립트

# /var/db/mysql : mysql 데이터베이스 파일



3. 데몬 시작및 중지하기

3.1. 시작하기

# /usr/local/etc/rc.d/mysql-server.sh start 혹은

/usr/local/bin/mysqld_safe -user=mysql &



3.2 중지하기

# /usr/local/etc/rc.d/mysql-server.sh stop 혹은

/usr/local/bin/mysqladmin -u root shutdown



4. mysql 데이터베이스를 사용하기 전에

반드시 루트 암호를 생성하고 사용하시기 바랍니다.

#/usr/local/bin/mysqladmin -u root password '새로운 비밀번호'

#/usr/local/bin/mysqladmin -u root -h 호스트명 password '새로운 비밀번호'



5. 데이터베이스 사용하기

#/usr/local/bin/mysql -u root -p

password :




** 만약 위와같이 작업시 에러발생하는 경우


4번 작업시 에러발생시에는

1. 우선 mysql서버 데몬을 죽인다.

# kill mysql_pid 혹은

/usr/local/etc/rc.d/mysql-server.sh stop



2. /usr/local/etc/rc.d/mysql-server.sh 파일을 편집해서

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

편 집내용.

/usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR}
--pid-file=${PIDFILE} --language=korean > /dev/null &

를 다음과 같이 수정합니다 .

/usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR}
--pid-file=${PIDFILE} --language=korean --skip-grant > /dev/null &



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



3. mysql서버 데몬을 다시 시작한다.

# /usr/local/etc/rc.d/mysql-server.sh start



4. 위와같이 하면 권한 테이블을 사용하고 데몬을 띄우게 됩니다.

5. mysql에 접속하여

# /usr/local/bin/mysql -u root -p

6. root의 암호를 변경합니다.

mysql> use mysql;

mysql> select * from user where user = 'root';

mysql> update user SET password = PASSWORD('newpassword');

7. 권한 테이블을 다시 읽는다.

mysql> flush privileges;

8. mysql을 종료

mysql> \q



9. mysql 서버 데몬 죽입니다.

#/usr/local/etc/rc.d/mysql-server.sh stop



10./usr/local/etc/rc.d/mysql-server.sh 파일을 편집해서

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

편집내용.

/usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR}
--pid-file=${PIDFILE} -language=korean --skip-grant > /dev/null &

를 다음과 같이 수정합니다 .

/usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR}
--pid-file=${PIDFILE} -language=korean > /dev/null &



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

다 시 원상복귀 합니다.



11. mysql 서버를 다시 시작합니다.

#/usr/local/etc/rc.d/mysql-server.sh start



12. 정상적으로 mysql을 사용가능합니다.

FreeBSD/MySQL] FreeBSD 5.4R 에서 MySQL 한글 입력 문제


FreeBSD 5.4R에서 ports 에서 mysql-server41 을 설치시 

make install clean WITH_CHARSET=euckr로 설치후

한글 입력이 안되는 문제가 발생한다 

그런경우 아래와 같이 해당 계정에서 작업을 한다. 



///////////////////////////////////////////////////////////////////////////////

MySQL 클라이언트 프로그램(mysql)에서 한글 입력에 문제가 있을 수 있습니다.

mysql은 readline 라이브러리를 사용하므로, 사용자 디렉토리의 .inputrc에

다음 내용을 넣어주면 됩니다.



set meta-flag On

set convert-meta Off

set output-meta On




///////////////////////////////////////////////////////////////////////////////

이글은 최준호님이 답해주셨습니다.

DB/MySQL] mysql 유지보수 MYD,MYI,FRM


[[[ SQL 자료의 이전과 dump ]]]
table dump (특정 테이블을 sql 문으로 저장하기)
./mysqldump -u ID -p DBname tablename > tablename.sql
-------------------------------------------------------------------------
특정 table 설치
./mysql -u ID -p DBname < table.sql

--------------------------------------------------------------------------
특정 테이블 지우기
./mysql -u DBname -p
./use DB
./drop table tablename;

---------------------------------------------------------------------------
DB 을 모두 sql Dump 백업
./mysqldump -u ID -p DBname > ***.sql
./mysql -u ID -p DB < ***.sql

***********************************************************
 [[[[[[[[[[[ 테이블의 유지 보수 ]]]]]]]]]]]]]]]]]]]]]]
전원중단,비정상종료,frm화일 삭제수정등에 의한 DB 이상
mysql 의 테이블 검사 및 오류를 수정하는 유틸리티
* myisamchk 를 사용시 mysql를 종료한다.
* 테이블은 3개 화일 : frm, MYI, MYD 파일을 검사한다.
   frm(테이블구조기록), MYI(테이블인덱스화일), MYD (데이터화일)
------------------------------------------------------------------------
myisamchk table명 (table 조회 검색)
myisamchk --recover --quick table명 (빠른복구)
myisamchk --recover table명 (복구)
myisamchk --safe-recover table명 (재오류시)

-------------------------------------------------------------------------
복 구되지 않는 경우
-테이블구조가 기록된 frm 파일이 삭제 또는 손상
-테이블 인덱스 파일은 MYI 삭제 손상된 경우
-MYD 는 데이터 파일

---------------------------------------------------------------------------
myisamchk -r table명
(테이블 파일의 빈공간등을 없에 최적화 시킨다.)
-a : 흩어진 인덱스를 모아 속도 향상
-S : 인덱스트리 소팅 검색 속도 향상
-R : 인덱스 기준 레코드 정렬 속도 향상
      myisamchk -R1 tablename
      * 1번 인덱스 기준 레코드 정렬

-----------------------------------------------------------------
[[[[[[ EXCEL 에 있는 자료 mysql로 이전하기 ]]]]]]]
1. 엑셀의 화일을 파일형식-텍스트(탭으로분리)로 선택 저장
    * sample.txt
  ex) 허정수  A  경기도
        이효진  B  구리시
2. FTP 로 전송후 LOAD DATA INFILE 명령으로 테이블 입력
    * 미리 테이블이 생성되어 있어야 한다.
    * 해당 txt 에 맞게 테이블을 만들어 주세요!
3.LOAD DATA INFILE 'sample.txt'  INTO TABLE sample
   LINES  TERMINATED BY '\r\n' ;
   * '\r\n' 줄구분차이 도스 윈도우
4. select * from sample;


----
복구하는 방법은 ...
mysql data 디렉토리에 그냥 같다가 놓는겁니다 ^^

.frm 파일은 테이블 구조가 저장되어 있는 파일입니다
.MYD 파일은 실제 데이터가 들어있는 파일입니다
.MYI 파일은 Index 정보가 들어가 있는 파일입니다


위 3개의 파일을 손상되지 않은 상태에서 가지고 계신다면
그냥 갖다가 놓는것 만으로 복구하실 수 있습니다
단, 퍼미션 조절은 해주셔야겠지요. 퍼미션 조절 안하시면 나중에 DB 파일을 읽어오지 못합니다

그리고 저 파일들을 .sql 형태로 변환하는 방법은 없습니다
적 어도 제가 알기론요..
다만
백업받으실때 .sql 형태로 백업받을 수는 있습니다

mysqldump -A -u root -p > mysql_bakup_all.sql

이렇게 하시면 모든 데이터베이스를 .sql 형태로 백업받게 됩니다
특 정 DB 만, 혹은 특정 Table 만 백업받는 방법은
Mysql 메뉴얼을 참조하시구요..
더 자세한 답변은 여기 계신 고수분들께서 해주실겁니다
그리고
database.sarang.net 사이트로 한번 들려보세요

2012-10-06

DBMS/MySQL]var_디렉토리_용량_부족시에_데이터_디렉토리_이전


1. mysql을 잠시 내리고 db 파일(/var/db/mysql 디렉토리)을 여유공간으로 이동을 하고 예전 경로에 심볼릭

링크를 걸어준다. 



예시 ) 

새로운 하드 마운팅 네임 : /usr/local/db



기존 mysql 설치 디렉토리 : 프비에서 포트로 설치시 디폴트. 아님 /usr/local/mysql



mysql 데이터 디렉토리 : /var/db/mysql 



# /usr/local/etc/rc.d/mysql-server.sh stop   <-- mysql 데몬 shutdown



# mv /var/db/mysql /usr/local/db/               <-- /var/db/mysql 디렉토리를 /usr/local/db/

밑으로 이동



# chown -R mysql:mysql /usr/local/db           <-- 소유권을 mysql:mysql로 수정

  (리눅스에서는 chown -R mysql.mysql /usr/local/db 이렇게(???) 할 것임)



# ln -s /usr/local/db/mysql /var/db/mysql       <-- 심볼릭 링크 검



# /usr/local/etc/rc.d/mysql-server.sh start     <-- 재기동

DBMS/MySQL]utf8_환경으로_자료_conversion_성공기(database.sarang.net)




utf8 환경으로 자료 conversion 성공기

http://database.sarang.net/?inc=read&aid=24971&criteria=mysql&subcrit=&id=&limit=20&keyword=unicode&page=1

DBMS/MySQL]mysqladmin_사용법



mysqladminClient for Administering a MySQL Server

1) 데이터베이스의 creating 
2) 데이터베이스의 dropping 
3) grant tables의 reload 
4) flushing tables to disk 
5) reopening log file 
6) 서버의 version, process, status에 관한 정보 

【사용법】 % mysqladmin [options] command [command-option] command ... create db_name 새 데이터베이스를 만듦, 


쉘 프롬프트
mysqladmin create db_name
mysql>프롬프트mysql> create database db_name;

 drop db_name 기존의 데이터베이스와 그 내부의 모든 테이블을 삭제 


쉘 프롬프트
mysqladmin drop db_name
mysql>프롬프트mysql> drop database db_name;
 extended-status 서버로부터 확장된 상태 메시지를 받음 


쉘 프롬프트
mysqladmin extended-status
mysql>프롬프트mysql> show status;
 flush-hosts 호스트의 캐시를 flush함(refresh의 일부임) 


쉘 프롬프트
mysqladmin flush-hosts
mysql>프롬프트mysql> flush hosts;
 flush-logs 모든 logs를 flush함(refresh의 일부임) 


쉘 프롬프트
mysqladmin flush-logs
mysql>프롬프트mysql> flush logs;
 flush-tables 모든 테이블을 flush함(refresh의 일부임) 


쉘 프롬프트
mysqladmin flush-tables
mysql>프롬프트mysql> flush tables;
 flush-privileges grant 테이블을 reload함(reload와 같음) 


쉘 프롬프트
mysqladmin flush-privileges
mysqladmin reload
mysql>프롬프트mysql> flush privileges;
 flush-status 상태변수를 초기화함(refresh의 일부임) 


쉘 프롬프트
mysqladmin flush-status
mysql>프롬프트mysql> flush status;
 kill id,id,... Mysql 스레드를 kill함 


쉘 프롬프트
mysqladmin kill id
mysql>프롬프트mysql> kill '스레드번호';
 password 비밀번호를 새로 설정함 


쉘 프롬프트
mysqladmin 사용자 password new_password
mysql>프롬프트mysql> set password=password(new_password);
 ping mysqld가 동작중인지 체크함 processlist 서버에 작동중인 스레드 목록을 보여줌 

쉘 프롬프트mysqladmin processlist
mysql>프롬프트mysql> show processlist;
 reload Grant 테이블을 다시 reload함 

쉘 프롬프트mysqladmin reload
mysqladmin flush-privileges
mysql>프롬프트mysql> flush privileges;
 refresh 작업중인 모든 테이블을 flush하고 닫은 후 다시 log files를 연다 shutdown 서버를 다운시킴 

쉘 프롬프트mysqladmin shutdown
mysql.sever stop
 slave-start slave replication 스레드를 시작함 slave-stop slave replication 스레드를 정지함 status 서버의 간단한 상태 메시지를 봄 variables 사용가능한 변수를 보여줌 



쉘 프롬프트
mysqladmin variables
mysql>프롬프트mysql> show variables;
 version 서버의 버전을 알아봄 



쉘 프롬프트
mysqladmin version
mysqladmin --version
mysql>프롬프트mysql> select version();

 【예제】 ☜ 인식가능한 단축어를 사용해도 됨 % mysqladmin proc stat +------+-------+-----------+----+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +------+-------+-----------+----+---------+------+-------+------------------+ | 1573 | jijoe | localhost | | Query | 0 | | show processlist | +------+-------+-----------+----+---------+------+-------+------------------+ Uptime: 585293 Threads: 1 Questions: 178697 Slow queries: 0 Opens: 541 Flush tables: 1 Open tables: 57 Queries per second avg: 0.305 % % mysqladmin --help grant tables에 주어지는 권한에 따른 mysqladmin에서 수행 할 수 있는 허용되는 명령어 
privilegeCommands permitted to privilege holders
RELOADreload, refresh, flush-privileges, flush-hosts, flush-logs, flush-tables
SHUTDOWNshutdown
PROCESSprocesslist
SUPERkill

DBMS/MySQL]mysql 사용자 추가 및 디비 생성



mysql > create database sms;

mysql > grant all on sms.* to smsuser@localhost identified by 'smspw' with grant option;

mysql > grant all on sms.* to smsuser identified by 'smspw' with grant option;

mysql > flush privileges;


===>사용자 추가 방법
mysql> grant all on aaa.* to abcd@localhost identified by 'abcd' with grant option;
                    ^^^^^    ^^^^^^^^^^^^^^               ^^^^^^
                     디비     계정                          비번
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

====> 비밀번호 변경
# mysqladmin abcd 'abcd' 'abcde'


DBMS/MySQL]mysql_upgrade_설명_문서(4.0 ->4.1)



이 글은 database.sarang.net 에 있는 MySQL 섹션에 있는 글 입니다.

1. 준비작업
http://database.sarang.net/?inc=read&aid=24240&criteria=mysql&subcrit=&id=&limit=20&keyword=unicode&page=1

2. db 이전
http://database.sarang.net/?inc=read&aid=24241&criteria=mysql&subcrit=&id=&limit=20&keyword=unicode&page=1

3. 4.1  버전으로 이전.
http://database.sarang.net/?inc=read&aid=24242&criteria=mysql&subcrit=&id=&limit=20&keyword=unicode&page=1

DBMS/MySQL]mysql_gui_툴._sqlyog_사용법



최근에 우리는 XAMPP에 대해 당신이 당신의 databases. 을 관리하는 것을 이용할 수 있는 디폴트 데이터베이스 고객이 phpMyAdmin below: 의 screenshot을 보아서 당신이 아파치를 시작하는 방해와 PHP와 어느 mySQL.  XAMPP이 phpMyAdmin와 더불어 싸서 온다을 썼다.
이미지
더 많은 스텝에게 오퍼레이션에게 . 을 내리라고 요구한다 그리고 즉 기능적인 마우스 오르쪽 버튼 클릭 지름길이지 않은 phpMyAdmin이 많은 특징을 가지지만 그것이 웹에 기초를 둔 고객이기 때문에 당신이 그것의 인터페이스의 능력으로 제한된다.
SQLyog 일은 오라클 database. 을 위해 그것이 당신을 mySQL 데이터베이스 어떤 서버도 연결하게 하고 전통적인 그래픽 사용자 인터페이스를 잘 알고 있는 사용자가 쌓은 그래픽 사용자 인터페이스의 왼쪽 부분(위)에 데이터베이스 고객이 그럴 것이다 확실하게 디스플레이 데이터베이스가 objects 당신이 www.webyog.com으로부터 자유로운 버전을 얻을 수 있다 L SQL 개발자 appreciate.  나이 많은 MS SQL 기업 매니저와 P을 좋아한다.
이미지
보아라 클릭이 되 만들어 낸다 뛰어나고 미리이어라 정하고 있다 만들어 내 지고 나타나라 저축해라 편집해라 있다 두고 남겨지고 갈라져라 위에 언제 비슷하게 더 lower 또한 자동적으로 더 쉽게 hey as 그리고 또한 직관적으로 당신 예 그것 나 테이블 그것 뷰 권리(정의)사이드 window.  컬럼 가치관 변경 dropdown field.  위치 버튼 위 테이블 할 수 있다.
이미지
물건 탭을 찰깍 소리가 나는 것은 테이블 SQL을 만들고 똑바로이어라 팔 원하는 사람들을 위해 매우 편리하게 이것이 들어오는 컬럼 information.  뿐만 아니라 테이블을 만들어 내는 데 이용된 질문을 보여 줄 것이다:
이미지
테이블을 마우스 오른쪽 버튼으로 클릭하는 것은 Novice process.  SQL을 따르기 위해 쉽게 개발자가 확실하게 이들 지름길을 사랑할 것이다 이것이 일이 컬럼과 인덱스를 바꾸는 것을 좋아하게 하는 table. 을 위한 문맥 민감한 많은 오퍼레이션을 보여 줄 것이다.
이미지
그래픽 사용자 인터페이스에 기초를 둔 고객과 함께 SQLyog을 좋아해라,사용자는 테이블에(게)간단한 인덱스 command.  A 마우스 오르쪽 버튼 클릭을 만들면 찰깍 소리가 나는 것이 인덱스 의지 방해를 관리해라 드물게 사용된 queries.  창조적인 일을 하는 약간의 인덱스가 예를 들면 당신을 필요로 하지 않을 것이라는 것을 기억해서 당신이 즉시 인덱스를 만든다 이슈에(게)걱정해야 할 것이지 말아라:
이미지
질문 에디터 field. 에 의하여 창에서 위의 왼쪽 부분에(서)녹색 버튼이 런 역할을 하고 모든 버튼을 수행한다 당신의 자신의 SQL 명령을 수행하는 것을 지지한다.
이미지
기초적인 로그인 information. 을 꽉 채우는 as 쉽게 당신이 패스워드와 함께 커넥션을 구할 수 있다 그래서 당신이 next. 에 대한 1 커넥션으로부터 쉽게 바꿀 수 있다을 때와 경영하는 데이터베이스 커넥션은 또한 그대로이다.
이미지
가져라 있다 세워 지고 있다 할 수 있다 편집해라 할 수 있다 떨어져라 로그인해라 한다 부담을 주어라 취한다 평균 되고 같이이어라 안에 같이(위)에 같이 같이 강력하게 그렇지 않으면 또한 건방지게 또한 as 유일하게 about 나의 당신 mySQL 매니저 응용 SQLyog very much recommended.  1 일(물건)그것 이것 도구 그것 당신 얼룩 텍스트 그래픽 mode.  당신 과정 다른 사람(것)사용자 그것 당신 이것 privilege.  그것 원인 랩탑 그것 18MB 램 자원 질문 약간 100 완전히 바로 필요로 하지 않는다.

DBMS/MySQL]mysql_5.0.41_소스_컴파일_해서_설치하기



The basic commands that you must execute to install a MySQL source
distribution are:
     shell> groupadd mysql
     shell> useradd -g mysql mysql
     shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
     shell> cd mysql-VERSION
     To change both the character set and the collation, use both the
     `--with-charset' and `--with-collation' options. The collation
     must be a legal collation for the character set. (Use the `SHOW
     COLLATION' statement to determine which collations are available
     for each character set.)
     shell> ./configure --prefix=/usr/local/mysql --with-charset=utf8
     shell> make
     shell> make install
     shell> cp support-files/my-medium.cnf /etc/my.cnf
     shell> cd /usr/local/mysql
     shell> chown -R mysql .
     shell> chgrp -R mysql .
     shell> bin/mysql_install_db --user=mysql
     shell> chown -R root .
     shell> chown -R mysql var
     shell> bin/mysqld_safe --user=mysql &

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/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h test.nchannel.net password 'new-password'
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr/local/mysql ; /usr/local/mysql/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/local/mysql/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

[DBMS/MySQL]가입자에게_mysql을_사용할_수_있도록_path_설정하기


1. 가입자에게 mysql을 사용할 수 있도록 PATH설정하기

/etc/skel 의 .bash_profile에 mysql을 실행시킬수 있도록 다음과 같이 설정한다.

# .bash_profile

# Get the aliases and functions
# 사용자 정의 앨리어스와 함수 정의 포함
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs
# 사용자별 환경 변수, 시작 프로그램 설정

PATH1=$PATH:$HOME/bin <- 설정부분
PATH=$PATH1:/usr/local/mysql/bin <- 설정부분
BASH_ENV=$HOME/.bashrc
USERNAME=""

export USERNAME BASH_ENV PATH1 PATH <- 설정부분

[DBMS/MySQL]too_many_connections_에러_해결책


mysql을 설치하여 사용하다보면, 서버부하가 없음에도 불구하고 "Warning...too many connections...."라는 메시지와 함께 MySQL 이 뻗어버리는 경우가 있습니다.
원인은 Mysql의 실행환경변수 설정에 있다 .
우선 Mysql설치홈의 bin디렉토리에서 "./mysqladmin -u -p variables"라고 해보시면 다음과 유사한 결과를 얻으실수 있다.
http://tfile.nate.com/download.asp?FileID=5161247

위의 결과에서

max_connections            | 1000
wait_timeout               | 300  

와 같은 것을 볼수 있습니다 .

max_connections는 mysql에 connect할수 있는 최대 갯수를 지정해 둔것이다.
"too many connections"라는 메시지는 이 갯수를 초과해서 connect하려고 할때 발생하는 메시지이다.

결론부터 말씀드리자면 이 갯수를 적절히 조절해야한다고 말씀드릴수 있다.
하지만, max_connections 아래에 있는 wait_timeout이란 variable은 connect된 후에 몇초간 지속적으로 연결을 유지할 것인가를 지정해 둔 것이다.

이를 설명하기 위해서는 mysql_connect()와 mysql_pconnect의 차이점 그리고, mysql_close()함수에 대한 정확한 이해가 필요하다.

간단히 설명해 보자면, mysql_connect()함수로 DB connect를 했다면 해당스크립트가 종료됨과 동시에 mysql_close()함수를 호출하지않아도 자동으로 연결이 종료된다.

하지만, mysql_pconnect()함수는 해당스크립트가 종료된후 mysql_close()함수가 호출되었더라도 연결이 끊어지지않은채로 계속 연결을 유지하고 있다.

따라서, 얼핏보기에는 "too many connections"라는 에러메시지는 mysql_pconnect()라는 함수의 사용때문에 발생하는 것 같지만, 그런 이유도 있을수 있지만, 직접적인 이유는 그것이 아니라 MySQL의 메뉴얼을 보면 mysql_connect()함수를 사용하면 해당스크립트의 종료와 함께 연결이 종료된다고 되어있지만
./mysqladmin -u -p processlist"라는 명령어를 통해서 살펴보면 그대로 살아 있음을 알수 있다.

http://tfile.nate.com/download.asp?FileID=5161248

맨위에서 살펴보았던 "mysqladmin -u -p variables"의 결과로서 볼수 있는 여러가지 시작옵션들중 "wait_timeout"의 값만큼 서버에 그대로 연결을 유지한채로 남아 있는 것이다.

따라서, 이것이 "too many connections"의 직접적인 이유인 것이다.

그렇다면 문제의 해결은 간단하다.

실행옵션을 주어서 이들 값들을 자기가 운용하고 있는 서버의 성능과 용도에 알맞게 수정해 주면 되는 것이다.

MySQL실행시에 주는 실행옵션값은 다음과 같다.

./safe_mysqld -O max_connections=1000 -O table_cache=256 -O wait_timeout=300 &

일반적으로 실행시킬때에는 기본옵션을 그대로 사용하는 "./safe_mysqld"라는 옵션을 사용했다.

이렇게 실행하면 36개의 MySQL시작옵션중에서 위의 3가지 옵션들만 값들을 임의로 지정하여 실행시킨 것이다.
이렇게 실행시킨후에 다시 "mysqladmin -u -p variables"로 옵션들값을 확인해 보면 변경되어 있음을 알수 있을 것이다.

그리고, 참고로 리눅스 실행시에 mysql을 자동으로 시작하도록 설정해둔 /etc/rc.d/rc.local파일에도
위와 같이 옵션을 함께 주어서 실행하도록 설정하는 것을 잊지말기 바란다

[DBMS/MySQL]root_패스워드_잊어_버린_경우_새로_설정하는_방법


mysql을 오랫동안 사용하지 않았을 경우에 간혹 root패스워드가 기억나질않아서 당황할 때가 있습니다.
특히, 여러대의 시스템을 관리할 경우에는 시스템의 root패스워드와 일반계정 및 MySQL의 root계정과 일반계정등 기억해야할 암호가 수십개씩 되는 경우가 흔히 있습니다.
필자의 경우에도 관리하는 서버가 많은 편에 속하기 때문에 패스워드를 전혀 바꾸지 않을 수는 없고 해서 변경한 후에는 메모하여 잘 보지 못하는 곳에 블랙박스로 보관합니다.
시스템의 root암호를 잊어 버린 경우도 있었으며, MySQL의 root사용자의 암호를 잊어 버린 경험도 많이 있었습니다.
경험있는 시스템관리자라면 시스템의 root나 MySQL의 root의 암호를 잊어 버렸을 때를 대비해서 패스워드를 새로 설정하는 방법을 반드시 숙지하고 있어야 할 것입니다.





 

1. 실행중인 msyql 종료

[root@kebia_1 bin]# ps -ef | grep mysqld
root956710 Mar16 ?00:00:00 sh ./safe_mysqld
root957695670 Mar16 ?00:00:00 /usr/local/mysql/libexec/mysqld
root957895760 Mar16 ?00:00:00 /usr/local/mysql/libexec/mysqld
root957995780 Mar16 ?00:00:00 /usr/local/mysql/libexec/mysqld
[root@kebia_1 bin]#
[root@kebia_1 bin]# killall mysqld
[root@kebia_1 bin]#


 

2. grant-table 미사용모드로 mysql시작

[root@kebia_1 bin]# ./safe_mysqld --skip-grant-tables&
[1] 12084
[root@kebia_1 bin]# Starting mysqld daemon with databases from /usr/local/mysql/data

[root@kebia_1 bin]#
[root@kebia_1 bin]# ./mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.22.24

Type 'help' for help.

mysql>


 

3. update문으로 root사용자 패스워드 변경


mysql> update user set password=password('12345') where user = 'root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3Changed: 3Warnings: 0

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

mysql> exit
Bye


 

4. 실행중인 mysql 다시 종료

[root@kebia_1 bin]# ps -ef | grep mysqld
root12084 115580 20:10 pts/200:00:00 sh ./safe_mysqld --skip-grant-ta
root12090 120840 20:10 pts/200:00:00 /usr/local/mysql/libexec/mysqld
root12092 120900 20:10 pts/200:00:00 /usr/local/mysql/libexec/mysqld
root12093 120920 20:10 pts/200:00:00 /usr/local/mysql/libexec/mysqld
[root@kebia_1 bin]#
[root@kebia_1 bin]# killall mysqld
mysqld daemon ended
[1]+Done./safe_mysqld --skip-grant-tables
[root@kebia_1 bin]#


 

5. 일반모드로 Mysql 재시작

[root@kebia_1 bin]# ./safe_mysqld&
[1] 12102
[root@kebia_1 bin]# Starting mysqld daemon with databases from /usr/local/mysql/data

[root@kebia_1 bin]#
[root@kebia_1 bin]# ps -ef | grep mysql
root12102 115580 20:13 pts/200:00:00 sh ./safe_mysqld
root12108 121020 20:13 pts/200:00:00 /usr/local/mysql/libexec/mysqld
root12110 121080 20:13 pts/200:00:00 /usr/local/mysql/libexec/mysqld
root12111 121100 20:13 pts/200:00:00 /usr/local/mysql/libexec/mysqld
[root@kebia_1 bin]#

DBMS/MYSQL]_하드디스크_이상으로_디비_용량이_초과_시



할당된 하드디스크 이상으로 디비 용량이 초과 되었을때 처치 방법.1. /usr/local/mysql/var 의 로그 파일로 용량을 줄일 수 있다.
- localhost-bin.index 파일을 보면 현재의 로그 파일에 대한 정보가 있다.
- 그 로그파일은 DB의 UPDATE 내역이 기록하는 파일이다. Replication(일종의 백업)을 위해 생성된다.
- localhost-bin.index 에서 확인한 파일을 제외하고 다른 파일은 지워도 된다.
- 한가지 더 확인하자면 marster-slave 에서 show slave status 인가하는 명령으로 현재의 master 의 로그파일을 확인할수 있으니 나머지는 지워도 된다.
- /etc/my.cnf 에서 log-bin 옵션을 주석처리 해주면 로그 파일이 생성되지 않는다.

2. 하드디스크를 설치 하는 방법으로 용량 충당
- MySQL은 데이터를 디렉토리에 보관한다. 다른 파티션으로 이동할 경우 데이타 디렉토리를 이동하면 된다.
1. 기존의 데이타 디렉토리로 이동한다.
$ cd /usr/local/mysql/var
2. 기존의 데이터 파일들을 묶어서 새로운 디렉토리로 옮긴다.
$ tar cvf /usr2/local/mysql/var/backup.tar * 3. 새로운 디렉토리로 이동한다.
$ cd /usr2/local/mysql/var
4. 새로운 디렉토리에 기존의 데이타들의 압축을 푼다.
$ tar xvf backup.tar
5. 새로운 디렉토리의 권한을 mysql 사용자만 접근할 수 있도록 해 주어야 한다.
$ chmod 700 /usr2/local/mysql/var
$ chown mysql.mysql /usr2/local/mysql/var

6. MySQL 데몬을 실행시키는데 이때 --datadir=/usr2/local/mysql/var 옵션을 주어 새로운 데이터 디렉토리를 지정해 주어야 합니다.
이와 같은 방법으로 MySQL의 데이터 디렉토리를 다른 곳으로 옮길 수 있다.

- 뭐 간단하게 말해서 기존에 데이터 있던 데이터들을 압축해서 다른곳에 옮겨놓고 그디렉토리는 새로운 하드로 마운트 시키시고 다시 풀어놓으시면 된다.

3. 하드용량 초과로 트렌젝션중 파일이 손상되었을때 치료- myisamchk --safe-recover 테이블명.myi

DBMS/MySql]_character_set_(encoding)_변경하기




디비 서버 기동시 character set 변경
./bin/mysqld_safe --user=mysql --default-character-set=원하는 언어 타입 &
                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
                                               이부분을 변경하고자 하는 언어타입으로 설정
               Client characterset:    latin1   +
               Db     characterset:    latin1  ==> 이부분이 "원하는 언어 타입"으로 바뀝니다.


디비의 character set 변경
mysql> ALTER DATABASE DB명 DEFAULT CHARACTER SET 변경할 언어 타입;

연결시 character set 변경
mysql> SET character_set_connection = 언어 타입;
       Conn.  characterset:    euckr ==> 이부분이 설정한 "언어타입"으로 변합니다. (\s 명령으로 확인시)
Server characterset:    euckr
 변경하는 방법은 아직 찾지 못했음...

[DBMS/MySQL/FreeBSD]proftp와_mysql연동하기



이글은 www.godisgreen.com/wikix/index.php 에서 인용한 글을 기초로 작성된것입니다.



OS : FreeBSD 5.3R

System : intel P3-850 dual

Memory : 512M

HDD : Ultra SCSI 9G*2



FreeBSD(이 하 프비)5.3R의 설치가 되었다고 가정하고 시작합니다.

데몬이나 어플리케이션의 설치는 PORTS 설치를 기본으로 합니다.




Proftp설치



1.proftp를 설치합니다.

# cd /usr/ports/ftp/proftpd-mysql

=> 포트 디렉토리에 보면 proftp와 proftp-mysql이 있습니다. 저는 proftp-mysql을 기준으로 설명합니다.

# make install

(만 약 proftpd에서 설치시

make install clean WITH_MYSQL

과 같이 WITH_MYSQL 옵션을 줘야 한답니다.)


MYSQL설치



2. mysql을 설치합니다.

# cd /usr/ports/databases/mysql40-server

--> mysql 버전이 5.x 가 있지만 proftpd포트 설치시 mysql4.x 클라이언트

를 설치하므로 버전을 맞추기 위해 4.x 를 설치하기로 합니다.

# make install clean WITH_CHARSET=euc_kr BUILD_OPTIMIZED=yes

(

mysql41-server 의 경우 WITH_CHARSET옵션의 값이 euckr로 변경됨.

mysql 4.1버전의 경우

# make install clean WITH_CHARSET=euckr BUILD_OPTIMIZED=yes

)

# /usr/local/bin/mysql_install_db

==> 처음으로 mysql을 사용하기 전에 시스템 DB를 만들기 위한 스크립트를

실행합니다.

위 명령은 mysql을 설치한 후 반드시 한번만 하시기 바랍니다.



3. 설치 확인 작업

# /usr/local/bin : mysql바이너리 파일들이 있나 확인

# /usr/local/etc/rc.d/mysql-server.sh : mysql 기동 스크립트

# /var/db/mysql : mysql 데이터베이스 파일



4. 데몬 시작및 중지하기

4.1. 시작하기

# /usr/local/etc/rc.d/mysql-server.sh start 혹은

/usr/local/bin/mysqld_safe -user=mysql &



4.2 중지하기

# /usr/local/etc/rc.d/mysql-server.sh stop 혹은

/usr/local/bin/mysqladmin -u root shutdown



5. mysql 데이터베이스를 사용하기 전에

반드시 루트 암호를 생성하고 사용하시기 바랍니다.

#/usr/local/bin/mysqladmin -u root password '새로운 비밀번호'

#/usr/local/bin/mysqladmin -u root -h 호스트명 password '새로운 비밀번호'



6. 데이터베이스 사용하기

#/usr/local/bin/mysql -u root -p

password :




** 만약 위와같이 작업시 에러발생하는 경우


5번 작업시 에러발생시에는

1. 우선 mysql서버 데몬을 죽인다.

# kill mysql_pid 혹은

/usr/local/etc/rc.d/mysql-server.sh stop



2. /usr/local/etc/rc.d/mysql-server.sh 파일을 편집해서

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

편 집내용.

/usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR}
--pid-file=${PIDFILE} --language=korean > /dev/null &

를 다음과 같이 수정합니다 .

/usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR}
--pid-file=${PIDFILE} --language=korean --skip-grant > /dev/null &



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



3. mysql서버 데몬을 다시 시작한다.

# /usr/local/etc/rc.d/mysql-server.sh start



4. 위와같이 하면 권한 테이블을 사용하고 데몬을 띄우게 됩니다.

5. mysql에 접속하여

# /usr/local/bin/mysql -u root -p

6. root의 암호를 변경합니다.

mysql> use mysql;

mysql> select * from user where user = 'root';

mysql> update user SET password = PASSWORD('newpassword');

7. 권한 테이블을 다시 읽는다.

mysql> flush privileges;

8. mysql을 종료

mysql> \q



9. mysql 서버 데몬 죽입니다.

#/usr/local/etc/rc.d/mysql-server.sh stop



10./usr/local/etc/rc.d/mysql-server.sh 파일을 편집해서

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

편집내용.

/usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR}
--pid-file=${PIDFILE} -language=korean --skip-grant > /dev/null &

를 다음과 같이 수정합니다 .

/usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR}
--pid-file=${PIDFILE} -language=korean > /dev/null &



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

다 시 원상복귀 합니다.



11. mysql 서버를 다시 시작합니다.

#/usr/local/etc/rc.d/mysql-server.sh start



12. 정상적으로 mysql을 사용가능합니다.




proftpd 를 위한 mysql설정하기



1.mysql설정을 한뒤 'proftp'데이터베이스 생성합니다.

#/usr/local/bin/mysqladmin -u proftp -p create proftp

==> 왠일인지 mysqladmin 이 mysql서버에 접근을 못하게 되어있다. 그래서 직접 mysql로 서버에 접속을 한다음 쿼리문장으로 처리



1.1 db유저 생성

1.1.1 db테이블에 proftp사용자 등록

mysql> insert into db values('%', 'proftp', 'proftp', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');



1.1.2 user테이블에 proftp사용자의 권한 추가

mysql>INSERT INTO user VALUES('localhost','proftp',PASSWORD('proftpdeamon'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','','0','0','0');


mysql>INSERT INTO user VALUES('lnx68.thesoft.co.kr','proftp',PASSWORD('proftpdeamon'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','','0','0','0');


mysql>INSERT INTO user VALUES('%','proftp',PASSWORD('proftpdeamon'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','','0','0','0');



mysql>INSERT INTO host VALUES('localhost','proftp','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql>INSERT INTO host VALUES('lnx68.thesoft.co.kr','proftp','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');



1.1.3 proftp DB생성

mysql> create database proftp;

mysql> flush privileges;









2. DB생성 후에 테이블 구조를 해당 DB(proftp DB)에 만들어 줍니다.



##테이블 groups



##################
# 테이블 groups
##################


Create Table groups(
gname varchar(12) NOT NULL default ''
, gid int(10) unsigned default NULL
, members text
, primary key (gname)
) TYPE=MyISAM;



##################
# 테이블 users
##################


Create Table users(
userid varchar(12) NOT NULL default ''
, uid int(10) unsigned NOT NULL auto_increment
, gid int(10) unsigned default '1000'
, passwd varchar(63) default NULL
, shell varchar(255) default '/bin/sh'
, homedir varcahr(255) default '/home/data'
, count int(10) unsigned NOT NULL default '1'
, valid int(10) unsigned default '0'
, email varchar(50) default NULL
, name varchar(30) binary NOT NULL default ''
, reg_date datetime default NULL
, ip varchar(17) default NULL
, primary key(userid)
, key uid_primary(uid)
, key index_name(name)
) TYPE=MyISAM;






** mysql은 탭을 구분하지 못하므로 스페이스로 구분하여 입력하기 바랍니다.