mysql workbench 에 새로운 커넥션을 추가하려 할 때, 위와 같은 에러와 함께 연결 또는 Test Connection 에 실패하는 경우가 있다.

 

해결 방법

 

Advanced -> Others 에다가

useLegacyAuth=1

이 한줄을 추가해 주면 끝.

주로 outfile 로 테이블 내용을 파일로 추출 (export) 할 때 발생한다.

말 그대로 파일을 생성하고 쓰기 작업을 못한다는 건데,

 

주로 리눅스 계열의 운영체제에서 해당 위치에 쓰기 권한이 없거나

윈도우 계열의 운영체제에서 계정상의 문제로( 관리자 권한이 필요한 폴더에 만드려고 한다던지.. )

발생한다.

 

딴데다 만들면 된다. ㅎ

 

 

 

 

 

주로 테이블 내용을 파일로 추출 (export) 시 발생한다.

말 그대로,

outfile 로 지정한 위치에 같은 이름의 파일이 존재해서 발생하는 에러다.

해당 위치로 가서 파일 이름을 바꿔주던지, 지워버리던지 하면 된다.

 

 

 

 

 

 

 

 

 

 

 

 

여러가지가 있다.

1. cmd 에서 접속하는 방법

시작 - 실 을 누른다. 윈도우 8 같은 경우는 윈도우키+R 을 눌러준다.

실행 창에 cmd 를 입력하고 엔터를 친다.

mysql -u (사용자명) -p (사용할 데이터베이스 명)    입력 후 엔터를 친다.

혹시나 다른 곳에 존재하는 db에 연결하려면

mysql -h (아이피 또는 주소) -u (사용자명) -p (사용할 데이터베이스 명)    

라고 입력한다.

Enter Password:     라고 뜰텐데 비밀번호를 입력해 준다.

 

입력한 데이터베이스로 연결이 되었다!

혹시나 한글이 깨진다면

set names euckr; 혹은

set names utf8; 을 입력해 캐릭터 셋을 정해주면 된다.

 

2. mysql console 로 직접 접속하는 방법

mysql 이 설치된 폴더로 들어가면

(일반적인 경우 C:\Program Files\MySQL\MySQL Server 5.6\bin 에 위치한다)

mysql.exe 파일이 있을 것이다. 실행하자.

경우에 따라서 비밀번호를 물어볼 수 있는데 입력하자.

 

이 경우는 데이터베이스가 선택되지 않은 상태일 것이다.

use (데이터베이스 명);

이렇게 입력해 사용할 데이터베이스를 선택해 주자.

 

입력한 데이터베이스로 연결이 되었다!

혹시나 한글이 깨진다면

set names euckr; 혹은

set names utf8; 을 입력해 캐릭터 셋을 정해주면 된다.

 

 

일단 mysql 콘솔로 접속한다.

mysql 콘솔 접속 방법 (클릭)

아래의 명령어를 입력한다.

select * into outfile 'c:/test/myFile.csv'
fields terminated by ','
optionally enclosed by '"'
lines terminated by '\n'
from member;

## c:/test/myFile.csv... 라고 되어 있는 부분에 추출된 파일이 저장될 경로를 입력한다.

    리눅스 계열의 운영체제라면 '/home/myAccount/myFile.csv'

요런 식으로 적어주면 된다.

## member... 라고 되어 있는 부분에 추출하고 싶은 테이블의 이름을 입력한다.

 

@@ 혹시나 발생할 수 있는 에러 @@

ERROR 1086 (HY000): File 'c:/test/myFile.csv' already exists

---> 저 파일이 이미 존재하는 경우이다.

ERROR 1 (HY000): Can't create/write to file 'c:\hello.csv' (Errcode: 13 - Permis
sion denied)

---> 리눅스 계열의 운영체제에서, 저 위치에 쓰기 권한이 없을 때 발생한다.

 

 

이제 아무 스프레드시트 프로그램(엑셀..등등) 이나 텍스트 편집기로 열어서 사용하면 된다.

홈페이지를 만드는 프로젝트가 있었다.

내 pc에서 웹 전자앨범 바슷한 것을 만들었는데, 이걸 이제 서버에 이관을 했다.

소스 중에, ajax를 사용해서 2단 콤보박스를 구현해 놓은데가 있었는데, 아니, 얘가 갑자기

한글을 출력을 안하는 것이다;;

내부에 iconv 함수가 있었는데, 처음에는 이게 문제인 줄 알고 libiconv 랑 glibc 를

재설치 하려고 애를 먹었었다;; (근데 서버가 AIX 인지라... 수차례의 시도 끝에 포기했다 ㅠㅠ)

 

근데 알고보니 ajax 에서는 기본적으로 캐릭터셋이 utf-8 로 넘어간댄다.. 근데 db에서 넘겨받은 걸

계속 set names euckr; 이런 쿼리가 앞에 붙어있었다;; -___________- ;;; 아나;;;

저것을 바꿔주니 제대로 출력됐다 ㅎㅎ

4달 전쯤인가, sqlite db 에 있는 자료들을 mysql 로 옮겨야 해서,

sqlite 의 자료를 export 하는 방법을 찾고 있었다.. 일단 내 pc가 윈도우 였으므로

sqlite3.exe 를 다운받았다.

 

1. export

cmd - exe 실행

sqlite>.mode csv

sqlite>.output (출력될 csv 파일명)

sqlite>select * from (테이블명);

sqlite>.quit

.mode insert 로 하면 파일이 insert... 이런 식으로 나온다.

테이블 명을 지정하려면 .mode insert (테이블명) 이렇게 하면 된다.

 

더 자세한 내용은 .help 때려보기

 

2. 덤으로 import

sqlite>.separator

sqlite>.import (csv파일명) (테이블명)

또는 커맨드 에서 아래와 같이 실행하여 입력할 수 있다.

$sqlite3 -separator , (db 파일명) ".import (csv 파일명) (테이블명)"