E D R , A S I H C RSS

MySQL (rev. 1.1)

MySQL

ZeroPage에서 사용하고 있는 데이터 베이스
MySQL 도움말 : ZeroPage 내부에 두었으며, MySQL의 완전한 도움말
MySQL 설치메뉴얼

~cpp 
jdbc:mysql://localhost/database?user=user&password=xxx&useUnicode=true&characterEncoding=KSC5601

1. 백업 방법

ZeroPage Server의 경우 MySQL의 자료 저장 디렉토리가 ~cpp /var/lib/mysql 이므로 해당 디렉토리 내의 자료를 복사 하는 것으로 가능하다. 복사중 mysql을 정지 시키는 것을 권장한다.

개인이 자신의 자료만을 백업하기를 원할때에는 위에 언급된 디렉토리에서 자신의 데이터 베이스에 해당하는 디렉토리를 복사 하는 것으로 백업이 가능하다.
-- 이건 사용자가 root일 때만 되는거 아닌가요? 권한이 없는걸로 알고있는뎅 ^^ -jeppy
읽기 가능하게 해 놓는다. 좋은것을 지적했구만 --상민


~cpp 
자신의 DB 전체 백업하기
mysqldump -p암호 -u사용자 --database DB명 > mysqlbackup.sql

일부 테이블만 백업하기
mysqldump -p암호 -u사용자 DB명 TABLE명 > tablebackup.sql

복구
mysql -p암호 -u사용자 --database db명 < mysqlbackup.sql

2. 개인 암호 변경 방법 ( 전자가 안될 경우 후자로 변경)

  1. mysql> SET PASSWORD FOR 자신아이디@'%' = PASSWORD('바꿀 암호');
  2. mysql> SET PASSWORD FOR 자신아이디@'localhost' = PASSWORD('바꿀암호');

3. 관리자의 경우

  • Database mysql의 user 테이블을 변경후 ~cpp flush privileges를 수행한다.
  • 중지 : myadmin shutdown -p
  • 시작 : safe_mysqld * MySQL/root암호분실시

4. DB권한 관련 (관리자용)

~cpp 
insert user values('localhost', 'jeppy', password('암호'), 'y','y','y','y','y','y','y','y','y','y','y','y','y','y'); 
insert user values('%', 'jeppy', password('암호'), 'y','y','y','y','y','y','y','y','y','y','y','y','y','y'); 

FLUSH PRIVILEGES; 

CREATE DATABASE jeppy;

REVOKE all PRIVILEGES on *.* from jeppy@'localhost'; 
REVOKE all PRIVILEGES on *.* from jeppy@'%'; 

FLUSH PRIVILEGES; 

GRANT all on jeppy.* to jeppy@'localhost'; 
GRANT all on jeppy.* to jeppy@'%'; 
FLUSH PRIVILEGES; 

5. 기타 의문 요구 사항

  • ZeroPage 회원 상민(99,neocoin)에게 해 주십시오.
  • 위 회원은 ZeroPage 서버 관련 요청만 협조할 의무가 있습니다.

6. Thread

~cpp 
mysql> select * from addressbook order by name asc;
+-----------+---------------+
| name      | phone         |
+-----------+---------------+
| 이희진    | 011-9143-8841 |
| 이경아    | 011-9364-7855 |
| 장재니    | 016-9583-1017 |
| 조순영~^^ | 011-9908-0299 |
| 김영호    | 011-9115-8338 |
| 박경숙    | 011-9808-5075 |
+-----------+---------------+
6 rows in set (0.00 sec)
재니가 오늘 물어보는데, ORDER BY name (스트링) 을 하는데, 가나다순으로 정렬이 안된다고 해서.

혹시나 해서 다음의 일을 해봤는데
~cpp 
mysql> select ('강' > '이');
+---------------+
| ('강' > '이') |
+---------------+
|             1 |
+---------------+
1 row in set (0.00 sec)

현재 MySQL status 보면
~cpp 
Client characterset:    latin1
Server characterset:    latin1

웬지 저 문제가 아닐까 하는 생각을 해보는중. (아니면 내가 삽질중인거고;) --1002
앗 탄로 났다. 드뎌 영문으로 설치한 부작용이 다들 영어 써요 ~ 와~~;; 오호 통재라 모든것은 시험끝나고 이루어질것이니.. --neocoin

MySQL에서 한글이 들어간 문자열을 제대로 정렬하려면 char 타입이 아닌 char binary 타입을 쓰면 됩니다. 하지만 이미 char 타입으로 되어있다면 ORDER BY BINARY 필드명 을 사용하면 됩니다. MySQL에서 char 타입은 순수한 아스키(0~127) 값에서만 제대로 동작합니다. 물론 char 타입을 쓴다고 해서 한글이 저장되지 않거나 하는건 아니지만, 검색이나 정렬등에서 제대로 작동하지 않는 경우가 있습니다. --상규
Thanks.~ --1002
ㅎㅎ 형 고마워요~^^ --재니

~cpp 
mysql> desc addressbook; 
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name  | char(10) |      |     |         |       |  <-- name 이 char 타입입니다.
| phone | char(15) |      |     |         |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)
~cpp 
mysql> select * from addressbook ORDER BY BINARY name;
+-----------+---------------+
| name      | phone         |
+-----------+---------------+
| 김영호    | 011-9115-8338 |
| 박경숙    | 011-9808-5075 |
| 이경아    | 011-9364-7855 |
| 이희진    | 011-9143-8841 |
| 장재니    | 016-9583-1017 |
| 조순영~^^ | 011-9908-0299 |
+-----------+---------------+
6 rows in set (0.00 sec)

7. MySQL & Transaction

MySQL과 Transaction 테이블 생성시 InnoDB 나 BSDDB 를 사용하면 Transaction 을 이용할 수 있다. (InnoDB 추천)

8. MySQL Password 함수

MySQL 에서 다른 데이터베이스로 데이터를 옮길 경우 기존 데이터중 문제가 되는 것이 바로 내장함수인 PASSWORD 를 이용해서 암호화를 한 부분이다. 다른 데이터베이스에서 이 데이터를 쓸 방법이 없기 때문이다. 이 경우, 로직 단에서 MySQL의 Password 함수를 대신 구현해줌으로서 해결을 할 순 있다.


단, 3.23 버전대에서만 동작함. MySQL 이 4.1 이 되면서 PASSWORD 함수의 구현이 바뀌었다.

다음은 자바 & 파이썬 버전(그대로 포팅한 것)
MySQL/PasswordFunctionInPython
MySQL/PasswordFunctionInJava

위의 PHP 버전은 어떻게 만들었을까? 바로.. MySQL 코드를 보고 만들었다고 한다.- UseTheSourceLuke --1002


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:49
Processing time 0.0633 sec