'Server-Dev/DataBase'에 해당되는 글 3

  1. 2011/08/18 zziuni Mysql Procedure를 command 에서 작성하기.
  2. 2011/01/26 zziuni Mac OSX에서 MySQL를 스타트업에서 제거할때.
  3. 2010/07/20 zziuni MySQL-Export to CSV

프로시저 생성을 해야 하는데, 쉐어웨어로 쓰던 툴이 기간이 다되었다. 회사는 툴을 안사준다. 그래서 mysql Command tool를 사용중.

Command Tool 인 mysql로 로그인을 하면 사실 안되는건 없다. 불편할 뿐. 로컬에서 테스트를 다하고 실행만 해주면 되는 Create Procedure 구문을 Mysql Command에서 실행을 했더니 에러가 났다.

ERROR 1064 (42000): You have an error in your SQL syntax; 

에러의 원인은 쿼리명령어 구분자인 콜론(;)이다. MYSQL의 명려어구분자가 콜론인데, MySQL Command 의 라인 구분자도 콜론(;)이기 때문에 발생하는 오류이다.

여러줄로 되어있는 Create Procedure 문안에 있는 ; 를 만날때 이것을 MySQL Command 라인 실행 구분자 ; 로 착각해서 오류가 난다.

이럴때는 프로시저 문을 실행하는 동안 구분자를 잠시 다른걸로 바꿔주면 된다.

DELIMITER //
CREATE PROCEDURE someProcedure()
BEGIN
   SELECT count(some) as someCnt
   FROM someTable;
END //
DELIMITER ;

DELIMITER // 구문으로 구분자를 // 으로 변경한다. 그리고 END // 로 실행문을 완료시킨후 다시 DELIMITER ;구문으로 구분자를 ; 로 바꿔주면 된다.

이러면 컴멘드 라인에서 프로시저를 생성 할 수 있다.

2011/08/18 16:36 2011/08/18 16:36

Comments List

Write a comment.

[로그인][오픈아이디란?]
환경 OS X 10.6.6

어떤 절차로 설치했는지는 잘 생각나지 않지만, Mysql를 설치하고 나서 ,
리부팅시 권한이 없어 MySQLCOM을 실행할 수 없다는 에러가 뜬다. 난 MySql이 자동실행되길 원치 않는다.
이는 스타트업 항목이 같이 설치 되었기 때문인데, /Library/StartupItems/MySQLCOM 에 설치되며,
자동실행은 비활성화 할려면 /etc/hostconfig 에서 MYSQLCOM=-YES-를 MYSQLCOM=-NO-로 바꿔주면 된다.
vim으로 설정파일을 열어 값을 바꿔주면 된다.

> sodu vim /etc/hostconfig



스타트업 아이템이 설치되어있으면 아래 명령어로 MySQL를 관리 할 수 있다.


>sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
>sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
>sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart



스타트업 아이템이 설치 되어있지 않다면 다음 명령어를 순차적으로 입력 한다.


> cd /usr/local/mysql
> sudo ./bin/mysqld_safe
(Enter your password, if necessary)
(Press Control-Z)
> bg
(Press Control-D or enter "exit" to exit the shell)




p.s
이걸로 해결이라고 생각했는데 착각이였군요.
여전히  disable 이 안되서 http://support.apple.com/kb/TS3493?viewlocale=ko_KR 로 해결. ㅡㅡ;
2011/01/26 01:59 2011/01/26 01:59

Comments List

Write a comment.

[로그인][오픈아이디란?]

MySQL-Export to CSV

Server-Dev/DataBase | 2010/07/20 17:04 | zziuni
관리메뉴가 없거나, 일회성일경우.
DB에서 바로 데이터를 추출해서 엑셀로 주시면 되요~~ 같은 업무가 있다.
RDBMS 툴로 접속이 가능하면 툴에서 하면 되겠지만, 라이센스, 보안상의 이유등으로
콘솔로 데이터를 받아야 할 때가 있다.

# mysql -u userid -p DataBaseName
Enter password: ********
mysql> SELECT * INTO OUTFILE '/usr/local/apache/htdocs/result.csv'
    -> FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    -> LINES TERMINATED BY '\n'
    -> FROM Table_Name ;
Query OK, 3902 rows affected (0.14 sec)

mysql>exit
2010/07/20 17:04 2010/07/20 17:04

Comments List

Write a comment.

[로그인][오픈아이디란?]