본문 바로가기

phpmyadmin Unkown character set: 'utf8mb4' 이전에 백업해둔 데이터 .sql 파일을 phpmyadmin으로 가져오기로 복구 할랬더니 에러가 났다. 제목처럼 utf8mb4 이게 왜 났는지는 사실 중요하지 않다. 구버전이고 신버전이고 옵션이 어떻고 솔직히 몇년전이라 기억도 안나고 중요한건 해결이다. 자주 겪는 일도 아니고 sql파일을 에디터 프로그램에서 열어본다. SET NAMES utf8mb4란 문구를 찾을 수 있다. 그럼 해당 파일의 utf8mb4를 utf8로 바꾸고 저장하고 다시 불러오면 해결이 된다. 젤 위쪽에 한개가 있었다. 아래 데이터에도 있을 수 있다. 모든 경우의 수를 내가 다 겪진 못하므로 내 상황은 sql 파일 상단에 한줄 SET NAMES utf8mb4이 있어서 utf8로 변경만 해주었다. 아래쪽에 데이터 한번 훑어보고 utf8mb..
mysql 게시물 랜덤 추출 등록되어 있는 수십개의 게시물 중에서 랜덤으로 가져와야 할 경우가 자주 발생을 한다. 정렬을 해서 상위 몇개만 가져올 경우도 있고 오롯이 랜덤에서 추출할 경우도 있다. SELECT 컬럼, 컬럼... FROM 테이블이름 order by rand() limit 50 조회된 테이블에서 랜덤으로 50개만 가져온다. limit를 빼면 랜덤으로 정렬시킨다. 서브쿼리를 활용하여 하는 부분도 활용을 해서 자주 한다. 데이터 량이 많으면 고심을 해봐야 하는 문제가 발생한다. 적을 때는 신경을 안 써도 되는 부분이 SELECT JOIN 서브쿼리로 미리 랜덤 갯수를 가져와서 비교해본다.
euckr -> utf8 백업 / 복구 mysql 4.0(euc_kr) 을 5.0(utf-8)으로 이동하는 방법 콘솔에서 1.mysqldump --default-character-set=euckr db명 > backup.sql 1.1. 문제 : mysqldump: Character set 'euckr' is not a compiled character set and is not specified in the '/usr/local/mysql/share/mysql/charsets/Index' file 설명 : mysql 4.0은 euc_kr이다. 아래와 같이 바꿔준다. 참고 : 4.0은 euc_kr을 쓰고 4.1이상은 euckr이다. - mysqldump --default-character-set=euc_kr db명 > backup.sql 2.2..
[MySql]문자열 섞인 숫자 정렬 가령 디비에 아래와 같이 들어가 있다고 치자. table sample name aa 1 aa 2 aa 3 aa 4 aa 5 aa 6 aa 7 aa 8 aa 9 aa 10 aa 11 aa 12 aa 13 순서대로 소트 할려면 쿼리가. SELECT * FROM sample ORDER BY aa 하면 aa 1 aa 10 aa 11 aa 12 aa 13 으로 나열 해준다. 원하지 않는 결과지 않는가. 그래서 공백기준으로 잘라서 다시 해본다. SELECT * FROM sample ORDER BY (substring_index(name,' ',-1) 공백기준으로 뒷부분 다 짤라서 정렬하면 아래와 같이 나온다. aa 1 aa 10 aa 12 aa 13 아무래도 형변환을 해서 해야 제대로 소트가 될거 같은데 그래서! ..
[MySql]Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in 어쩌구.php 대충 찾아보니 Warning : mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in C:\Program Files\Apache Group\Apache2\ test\createmovie.php on line 8 이 경고는 MySQL 4.1에서 나는 경고입니다. MySQL 4.1에서는 사용자 패스워드 저..
[DataBase]MS-SQL 동적쿼리로 테이블명 인자로 받기 [펌]http://blog.daum.net/turnnig-pointer/16498100 최근 MS-SQL의 저장 프로시저를 쓰는일이 잦아졌다. 성능상의 문제도 그렇고, 보안상의 문제도 일반 쿼리문 전송보다는 저장 프로시저를 이용하는 것이 더욱 효과적이며, 안전하다고 알려져 있기때문이다. 물론 이제 새내기인지라 자세히는 모르지만 동적쿼리를 이용하면 일단 MS-SQL상의 실행계획이라는 것이 만들어져 계속해서 쿼리문을 날리는 것보다는 훨씬 효율적이라고 한다. 보안 문제 또한 요즘 극성인 인젝션 공격을 방어하기 위해서 저장 프로시저가 효율적이라고 한다. 자세한 내용은 "mssql 저장 프로시저 장점" 정도로 검색하면 이에 대한 정보를 찾을 수 있을것이다. 각설하고, 회사에서 계획중인 프로젝트의 샘플 게시판이 일..
[DataBase]BDE에서 DB접속 안되서 에러날떄 BDE에서 디비 추가하고 접속 시 에러가 날 경우에 혹은 ERWin에서 디비 접근시 에러날 때 ntwdblib.dll을 받아서 C:/windows/system32에 복사합니다.
[DataBase]DataBase 별 jdbc 사용법 DataBase 별 jdbc 사용법 [출처] [출처-http://frok.info/175]DataBase 별 jdbc 사용법|작성자 일홍 http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html ojdbc14.jar Class.forName("oracle.jdbc.OracleDriver"); connector = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:DB명",USERID,USERPASSWORD); MSSQL 2005 JDBC 관련 jar : http://www.microsoft.com/downloads/details.aspx?FamilyID=86212d54-8..