반응형
반응형
반응형

 

MySQL 사용자 생성 시 에러가 발생했습니다.

mysql> create user 'user1'@'%' identified by 'passwd1';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

 

패스워드가 정책 요구사항에 맞지 않다는 얘기입니다.

 

 

그럼 현재 정책이 어떤지 확인을 해보겠습니다.

mysql> show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.01 sec)

 

패스워드 정책이 MEDIUM 으로 설정되어 있는 것을 확인할 수 있습니다.

| validate_password_policy             | MEDIUM |

 

 

※ 패스워드 정책은 MySQL 문서에 따르면 이렇게 정의되어 있네요.

 

 

해결책

1. 현재 설정되어 있는 정책에 맞게 패스워드를 만든다.

mysql> create user 'user1'@'%' identified by '유저1!Pw처럼';

2. 현재 설정되어 있는 정책을 바꾼다.

# MySQL 8
mysql> set global validate_password.policy=LOW;
Query OK, 0 rows affected (0.00 sec)

# MySQL 5
mysql> set global validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)

 

 

반응형

'Database > Mysql' 카테고리의 다른 글

MySQL 테이블 대소문자 구분  (0) 2024.03.08
index 생성 기준?  (0) 2021.09.24
[API] 앱 버전 체크 시 사용할 만한 쿼리  (1) 2017.10.11
mysql 에서 unix time 구하기  (0) 2015.09.23
mysql bin log 삭제.  (0) 2014.05.15
반응형



[펌] http://seongtak-yoon.tistory.com/19



MySQL 5.0과 같이 저버전을 사용하게되면, 요즘 스마트폰에 기본으로 적용된 Emoji 문자때문에 골치 아픈 경우가 많습니다.

MySQL은 기본적으로 UTF-8이 3Byte까지만 지원하기때문에 4Byte로 구성된 Emoji와 같은 문자가 저장되면 빈 값으로 저장되거나 ?? 등으로 저장됩니다.

이를 방지하기 위해서 (정확이는 utf8mb4 타입을 적용하기 전까지 임시방편으로 ..) 저장되지 않도록 애플리케이션단에서 제거할 필요가 있습니다.


# planes 1-3

# planes 4-15

# plane 16

preg_replace("/\xF0[\x90-\xBF][\x80-\xBF]{2} | [\xF1-\xF3][\x80-\xBF]{3} | \xF4[\x80-\x8F][\x80-\xBF]{2}/", "", $string);



참고된 테이블 구성 그대로 정규식으로 조합하여 4Byte UTF-8 문자를 찾아내어 ""(빈값)으로 replace합니다.


4Byte UTF-8의 first Byte는 F0~F4로 구성되어 있습니다.

 - http://docs.oracle.com/cd/E24693_01/server.11203/e10729/appunicode.htm#CACHBDGH   여기를 참고해보시면  

 - 이 정보는 1~3Byte와 중복되지 않는 값으로 일종의 Key값(?)으로 생각하면 될것 같네요.



💞💞허허허💞💞 -> 허허허가 됩니다.

⛄허허 -> ⛄허허가 됩니다. 

이 문자는 3Byte로 구성된 UTF-8로 없어지지 않는 것이 맞고, 저버전 MySQL도 문제없이 처리가능합니다.

- http://apps.timwhitlock.info/unicode/inspect?s=%E2%9B%84



참고 사이트


- 특정 문자 구성내용 보기 

http://apps.timwhitlock.info/unicode/inspect?s=%F0%9F%92%9E


- UTF-8 구성표

http://www.utf8-chartable.de/unicode-utf8-table.pl


- 도움되는 사이트.

http://stackoverflow.com/questions/16496554/can-php-detect-4-byte-encoded-utf8-chars


- getEmoji

http://getemoji.com/



반응형

'프로그래밍 > PHP' 카테고리의 다른 글

php 서버 바로 띄우기.  (0) 2020.06.03
세션 관리. session id 가 계속 갱신되는 문제.  (0) 2016.03.10
[error] date_default_timezone_set()  (0) 2012.12.11
short_open_tag 설정.  (0) 2012.08.07
파일 업로드.  (0) 2012.07.11
반응형


$host="localhost";

$user_name="";

$db_password="";

$db_name="";


$dbcon = mysql_connect($host,$user_name,$db_password) or message(mysql_error());

mysql_select_db($db_name,$dbcon) or message(mysql_error());


$result = mysql_query("SHOW TABLE STATUS", $dbcon);

$total_size = 0;


while($dbData=mysql_fetch_array($result)){

        $total_size += $dbData["Data_length"]+$dbData["Index_length"];

}

mysql_close($dbcon);


printf("%0.2f MB \n",$total_size / (1024*1024));




참조 : http://www.xpressengine.com/phpClass/20386043

반응형

'Database > Mysql' 카테고리의 다른 글

사용자 추가  (0) 2013.09.04
루트 비밀번호 설정, 변경.  (1) 2013.09.04
외래키 설정 방법.  (0) 2012.04.10
[jdbc] connection 연결시 캐릭터셋 설정.  (0) 2012.02.29
port 지정하여 접속하기.  (0) 2012.02.09
반응형

 

# 다운로드.

http://www.phpmyadmin.net/home_page/downloads.php

 

# wget 을 이용해서 다운로드 방법.
wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.5.4/phpMyAdmin-3.5.4-all-languages.tar.gz

 

# 압축 해제.
tar xvfz phpMyAdmin-3.5.4-all-languages.tar.gz

 

# 디렉토리 이름 변경.
mv phpMyAdmin-3.5.4-all-languages phpMyAdmin

 

# config 파일 수정.
cd phpMyAdmin

vi config.sample.inc.php
 - $cfg['blowfish_secret'] = '쿠키명'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

 

mv config.sample.inc.php config.inc.php

 

반응형

'OS > Linux' 카테고리의 다른 글

탭 자동완성 설정.  (1) 2013.11.14
[Cent OS] mysql 설치.  (0) 2013.08.16
32bit / 64bit 인지 확인.  (1) 2012.11.26
root 로 ssh 로그인 막기.  (0) 2012.02.13
[쉘프로그래밍] 파일명 또는 확장자 일괄 변경  (1) 2011.12.22
반응형

jdbc 를 이용한 mysql 접속 시 캐릭터셋 설정 방법.


jdbc:mysql://host/dbname?characterEncoding=utf8&characterSetResult=utf8

반응형

'Database > Mysql' 카테고리의 다른 글

[php] db 사용량 구하기.  (1) 2012.12.13
외래키 설정 방법.  (0) 2012.04.10
port 지정하여 접속하기.  (0) 2012.02.09
캐릭터셋 환경 변수  (3) 2010.12.01
[Link] Managing Hierarchical Data in MySQL  (0) 2010.11.09
반응형

mysql-5.5.12

## mysql 설치

$ groupadd mysql
$ useradd -g mysql mysql

$ wget http://downloads.mysql.com/archives/mysql-5.5/mysql-5.5.12.tar.gz
$ tar -xvf mysql-5.5.12.tar
$ cd mysql-5.5.12
$ chown -R mysql .
$ chgrp -R mysql .
$ cmake .
$ make
$ make install

# 소유권 설정.
$ cd /usr/local/mysql
$ chown -R mysql .
$ chgrp -R mysql .

# DB 생성.
$ scripts/mysql_install_db --user=mysql
$ chown -R root .
$ chown -R mysql data

# mysql 구동
$ cp support-files/my-medium.cnf /etc/my.cnf
$ bin/mysqld_safe --user=mysql &

# init.d 에 등록.
$ cp support-files/mysql.server /etc/init.d/mysql.server


---------------- cmake 설치가 안됐을 경우 설치해야 함. ---------------
## cmake 설치

$ wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
$ tar -xvf cmake-2.8.4.tar.gz
$ cd cmake-2.8.4
$ ./bootstrap
$ make
$ make install

반응형

'OS > Linux' 카테고리의 다른 글

[APM] 3. php 설치.  (2) 2011.06.15
[APM] 2. apache 설치.  (2) 2011.06.15
awk 기본  (0) 2011.05.20
date 명령어  (0) 2011.05.20
[vi] ^M 제거  (0) 2011.05.04
반응형

데이터베이스 환경 설정.
 - show variables like 'char%';

테이블 환경 설정.(Collation 확인)
 - show table status from [데이터베이스 명] like '[테이블명]%';


환경 변수 설명.
character_set_client
 - 클라이언트로부터 전달되는 명령문용 문자 셋.
 - 클라이언트에서 문장이 떠날 때 해당 문장은 어떤 문자셋으로 이루어져있는가의 문제.

character_set_connection
 - 클라이언트에서 넘어온 문장을 서버에서는 어떤 문자셋을 기준으로 해석해야하는가의 문제.
 - 문자 셋 인트로듀서 (introducer)를 갖고 있지 않는 리터럴 (literal) 및 숫자-문자 (number-to-string) 변환을 위해 사용되는 문자 셋.
모든 문자 스트링 리터럴은 문자 셋과 콜레션을 가지고 있다.
문자 스트링 리터럴은 하나의 문자 셋 인트로듀서 (introducer)와 COLLATE 구문을 옵션으로 가질 수도 있다:
[_charset_name]'string' [COLLATE collation_name]

예문:
SELECT 'string';
SELECT _latin1'string';
SELECT _latin1'string' COLLATE latin1_danish_ci;
간단한 명령문 SELECT 'string'의 경우, 스트링은 character_set_connection 과 collation_connection 시스템 변수가 정의하는 문자 셋과 콜레션을 갖는다.
_charset_name 수식은 일반적으로 인트로듀서 (introducer)라고 불린다. 이것은 파서 (parser)에게 “뒤에 따라오는 스트링은 문자 셋 X를 사용한다”라고 전달한다. 과거에는 이로 인해 사용자들이 혼란이 있었기 때문에, 인트로듀서는 어떠한 변환 (conversion)도 일으키지 않는다는 점을 강조한다; 엄밀히 말한다면, 이것은 스트링 값을 변경하지 않는 신호 (signal)이다. 또한, 인트로듀서는 표준 헥스 리터럴 (hex literal)과 헥스 리터럴 표기법 (x'literal' 및 0xnnnn) 보다 앞선 규칙이다.

character_set_database
 - 디폴트 데이터 베이스가 사용하는 문자 셋. 서버는 디폴트 데이터 베이스가 변할 때 마다 이 변수를 설정한다.
   디폴트 데이터 베이스가 없다면, 이 변수는 character_set_server와 같은 값을 가지게 된다.

character_set_filesystem
 - 파일 시스템 문자 셋.
   이 변수는 LOAD DATA INFILE 과 SELECT ... INTO OUTFILE 명령문 그리고 LOAD_FILE() 함수와 같은 파일 이름을 참조하는 스트링 리터럴을 해석하는데 사용된다.
   이러한 파일 이름은 파일을 오픈 하려는 시도가 있기 전에 character_set_client에서 character_set_filesystem으로 변환된다. 디폴트 값은 binary인데, 이것은 이무런 변환이 없다는 것을 의미한다. 멀티 바이트 파일 이름을 사용할 수 있는 시스템에서는 서로 다른 값을 사용하도록 한다. 예를 들면, 시스템이 UTF-8를 사용해서 파일 이름을 표시한다면, character_set_filesytem을 'utf8'로 설정한다. 이 변수는 MySQL 5.1.6에서 추가 되었다.

character_set_results
 - 쿼리 결과를 클라이언트에 리턴하기 위해 사용되는 문자 셋.
 - 서버에서 클라이언트로 응답을 넘겨줄때 어떤 문자셋으로 넘겨야하는가의 문제.

character_set_server
 - 서버의 디폴트 문자 셋

character_set_system
 - T 식별자 (identifier)를 저장하기 위해 서버가 사용하는 문자 셋. 그 값은 항상 utf8이 된다.

character_sets_dir
 - 문자 셋이 설치되어 있는 디렉토리.



문자 셋이란....
문자 셋이란 심볼과 인코딩 (encoding)을 의미한다. 콜레션은 하나의 문자 셋에 있는 문자들을 비교하기 위한 규칙 셋을 의미한다. 가상의 문자 셋을 사용해서 설명을 보다 명확히 하도록 하자.
 
4개의 문자를 사용하는 알파벳이 있다고 가정하자: ‘A’, ‘B’, ‘a’, ‘b’. 각각의 문자에 숫자를 하나씩 부여한다: ‘A’ = 0, ‘B’ = 1, ‘a’ = 2, ‘b’ = 3. 문자 ‘A’는 심볼이고, 숫자 0 은 ‘A’에 대한 인코딩이며, 네 개의 문자를 각각의 인코딩과 결합한 것이 문자 셋이 되는 것이다.
 
두 개의 스트링 값을 비교하는 경우를 가정하자: ‘A’ 와 ‘B’. 가장 간단하게 비교하는 방법은 각 문자의 인코딩을 살펴 보는 것이다: ‘A’의 0 과 ‘B’의 1. 0 이 1보다 작기 때문에, ‘A’가 ‘B’보다 작다고 말할 수 있다. 이와 같은 방법이 문자 셋에 대해서 콜레션을 적용한 것이다. 콜레션은 규칙 셋이다 (이와 같은 경우에는 한 가지 규칙만 있음): “인코딩을 비교한다.” 위와 같이 콜레션 방법 중에 가장 간단한 방법을 우리는 바이너리 콜레션이라고 부른다.

반응형
반응형
반응형

'Database > Mysql' 카테고리의 다른 글

port 지정하여 접속하기.  (0) 2012.02.09
캐릭터셋 환경 변수  (3) 2010.12.01
MySQL Start, Stop  (0) 2010.10.29
[MySQL] java 에서 사용시 한글 깨짐현상 해결하기  (0) 2010.06.21
mysql reload.  (0) 2009.04.08
반응형
MySQL Start, Stop 명령
- Start : mysql/bin/mysqld_safe &
- Stop : mysql/bin/mysqladmin --user=userid --password=pwd shutdown
(root권한을 가진 user계정으로 실행)
반응형

'Database > Mysql' 카테고리의 다른 글

캐릭터셋 환경 변수  (3) 2010.12.01
[Link] Managing Hierarchical Data in MySQL  (0) 2010.11.09
[MySQL] java 에서 사용시 한글 깨짐현상 해결하기  (0) 2010.06.21
mysql reload.  (0) 2009.04.08
between  (0) 2009.02.11
반응형
root 에서 user 추가나 DB 추가 후 적용시킬때 사용.


flush privileges;



반응형

'Database > Mysql' 카테고리의 다른 글

MySQL Start, Stop  (0) 2010.10.29
[MySQL] java 에서 사용시 한글 깨짐현상 해결하기  (0) 2010.06.21
between  (0) 2009.02.11
UNIQUE KEY  (0) 2009.02.11
트리거 간단하게 구현한것.  (0) 2009.02.11

+ Recent posts