목록mysql (62)
세이박스
부산에서 2016년3월15일 화요일 저녁 7시~10시까지 3시간 동안 부산모바일앱개발센터 교육장에서 1차 모임을 가졌습니다. 스마트폰의 모바일 앱 개발은 이제 웹서버프로그래밍을 통한 Data 관리 환경의 필요성을 많은 분들이 필요성을 느끼셔서 본 강의를 요청하셔서 개설하게 되었습니다. 총 10분이 참여하셨구요. 끝까지 열공하셔서 좋은 결실 맺기를 바랍니다. 관리자 로그인, 회원관리, 게시판 및 자료실, 상품 관리 등의 관리 페이지 개발과 JSON 통신을 위한 DB 출력까지 진행합니다. JSON Data를 앱에서 받아서 출력만하면 끝! ^^ 출처 : http://www.androidstudy.co.kr/bbs/board.php?bo_table=B53&wr_id=127
안녕하세요! 안드로이드스터디 운영자 이경용 입니다. 요즘 개발하는 대부분은 앱들이 서버와의 통신을 기본으로 개발되고 있습니다. 하지만 대부분 모바일 앱 개발 관련 교육만 있으며, 서버 중심의 관리페이지 개발에 대해서는 잘 없기에 준비했습니다. "요기요", "배달의민족", "쿠팡"와 같은 앱의 업소 정보는 매번 바뀔때 마다 앱을 어떻게 업데이트 할까요? 업소 정보는 별도의 웹 환경에서 관리페이지를 만들고 DB와 이미지를 관리하며, JSON으로 앱과 자료를 주고 받습니다. 이러한 관리페이지를 만드는 기본 과정을 학습하고 실습을 통해 만들어 보고자 합니다. 관리페이지를 만드는 언어는 html , css, javascript, php, mysql 를 이용해서 만들니다. 해당 언어의 기초 지식이 있으면 좋지만, ..
안녕하세요! 안드로이드스터디 운영자 이경용 입니다.요즘 개발하는 대부분은 앱들이 서버와의 통신을 기본으로 개발되고 있습니다. 하지만 대부분 모바일 앱 개발 관련 교육만 있으며, 서버 중심의 관리페이지 개발에 대해서는 잘 없기에 준비했습니다. "요기요"와 같은 앱의 업소 정보는 매번 바뀔때 마다 앱을 어떻게 업데이트 할까요? 업소 정보는 별도의 웹 환경에서 관리페이지를 만들고 DB와 이미지를 관리하며, JSON으로 앱과 자료를 주고 받습니다. 이러한 관리페이지를 만드는 기본 과정을 학습하고 실습을 통해 만들어 보고자 합니다. 관리페이지를 만드는 언어는 html , css, javascript, php, mysql 를 이용해서 만들니다. 해당 언어의 기초 지식이 있으면 좋지만, 전체 구성을 이해하는것 만으로..
MySQL 설치하면서 비번을 잘못 입력(오타)하거나 기존 root 개정을 잊어 버린경우 다시 설치 하지 않고 비번만 변경할수 있습니다. 기존 MySQL 프로세스 종료하고 안전모드로 접속한후에 개정 테이블(user)에서 root 패스워드를 변경하는 방법입니다. # MySQL 프로세스 죽이기 /etc/init.d/mysqld stop killall mysqld # MySQL 안전모드 접속후 root 비번 변경 cd /usr/local/mysql/bin ./mysqld_safe --skip-grant & use mysql; update user set password=password('비밀번호') where user='root'; FLUSH PRIVILEGES; exit; # 접속확인 mysql -uroot ..
MySQL 설치후 /etc/my.cnf 수정후 MySQL을 실행 했는데, Starting MySQL. ERROR! Manager of pid-file quit without updating file. 와 같은 오류가 떠드군요. # /etc/rc.d/mysqld start # Starting MySQL. ERROR! Manager of pid-file quit without updating file. 이유는 my.cnf를 잘못 수정한 원인이었습니다. 그래서 /etc/my.cnf를 삭제하고 # /usr/local/mysql/bin/mysql_install_db --user=mysql 실행해서 데이타베이스를 새로 생성하니 잘 되더군요. 아님 my.cnf를 수정하시기 전에 백업을 하신다면 다시 원복해서 실행하면..
문자모아 솔루션 설치후 ./emma -a -d 실행 했더니 다음과 같은 MySQL 오류가 나타난다. Client does not support authentication protocol requested by server; consider upgrading MySQL client 오류 메시지를 보면 대략 client 요청이 잘못된 규칙이니 클라이언트(즉, emma)에서 요청 규칙을 업그레이드(수정)해라 대략 그런 내용입니다. 이유는 문자모아 SMS 솔루션은 MySQL 4.0 환경으로 만들어 졌지만 설치한 MySQL은 5.x 버전이라 개정 접속시 password 오류가 발생 하는 것이었다. 따라서, 별도의 개정을 추가 한뒤 password만 old_password로 지정 해주면 완료! 우선 기본 설정 방법..
Connecting DB : File '/usr/local/mysql/share/mysql/charsets/?.conf' not found (Errcode: 2) Character set '#192' is not a compiled character set and is not specified in the '/usr/local/mysql/share/mysql/charsets/Index' file PHP + MySQL 연동시 자주 발생하는 오류로써 MySQL에 문자셋 설정 오류 입니다. 오류 메시지 내용만 보면 ?.conf 문자셋 파일이 없다 그런 내용입니다. 해결 방법을 찾아서 이것저것 해보았지만 해결되지 않더군요. 그래서 오류 메시지가 알려준데로 MySQL에서 이용하는 문자셋중 latin1.xml 파일..
Aapache 2.x, PHP 5.x, MySQL 5.x 설치후 서버 이전을 끝내고 사이트 접속해보니 한글이 모두 ㅁㅁㅁ 특수기호들로 깨져 버리더군요. 원인을 알아 보니 mysql 기본 설치시 기본 문자셋이 utf8이 아니라서 생긴 문제 이더군요. 웹소스는 utf8 이며 기존 DB 자료 역시 utf8인데 mysql 기본 문자셋은 다른 문자로 되어 있어서 생긴 문제 였습니다. 다행이도 해결 방법이 mysql 다시 설치 하는 것이 아니라 /etc/my.cnf MySQL 설정 파일만 수정해 주면되었습니다. 자신의 기본 문자셋이 어떻게 되어 있는지 확인 해 보실려면 mysql 접속후 다음과 같이 확인 해 보세요! mysql> SHOW VARIABLES LIKE 'character_set%'; +---------..
어느날 갑자기 MySQL 테이블 하나를 읽을려고 할때 다음과 같은 메시지가 나타날 경우 SQL Error: Can't open file: 'sessions.MYI'. (errno: 145) 테이블이 오류가 난것입니다. 원인은 하나의 테이블에 지속적으로 접속자가 너무 많이 connection이 된 경우 혹은 MySQL 기록중에 DB서버가 강제 종료 혹은 리부팅 되는 경우 깨지는 경우가 종종 발생 합니다. 이처럼 비정상적으로 종료된 테이블인 경우 마지막 처리 과정을 복구해서 정상 동작 하도록 하는 명령어가 있습니다. 먼저 해당 테이블 DB에 접속합니다. mysql -u아이디 -p db이름 비번 : repair table tablename; 입력 혹은 그냥 엔터 또는 간단하게 한줄로 mysql -u아이디 -p..
회원가입후 비밀번호를 잊은 경우 기존 비번이 암호화 처리 되어 있어(개인정보 보호법에 의해 비밀번호 암호화 의무화) 비번을 임의로 생성후 메일로 발송해야 합니다. 문자 조합을 간단하게 해 버릴 경우 해킹 시도시 비번찾기를 이용해서 이메일로 수신된 비번을 보지 않아서 추측해서 알아 낼 수 가 있습니다. 예로 "aa1234bb" 라는 임시 비번으로 생성해서 회원에게 발송하는데, 항상 숫자 부분만 변동해서 보내 준다면 해커는 역으로 0000~9999까지 조합해서 임의로 접속 시도를 해볼수 있게 됩니다. 간혹 보안 적용이 허술한 사이트의 경우 위와 같이 비번을 발송해주는 곳이 더러 있더군요. 개인정보 유출 사고는 위와 같이 개발자의 부주의가 매우 크다고 보면 됩니다. 문자 조합을 복잡하게 하는게 복잡하지도 않습..
회원가입후 비밀번호를 잊은 경우 기존 비번이 암호화 처리 되어 있어(개인정보 보호법에 의해 비밀번호 암호화 의무화) 비번을 임의로 생성후 메일로 발송해야 합니다. 문자 조합을 간단하게 해 버릴 경우 해킹 시도시 비번찾기를 이용해서 이메일로 수신된 비번을 보지 않아서 추측해서 알아 낼 수 가 있습니다. 예로 "aa1234bb" 라는 임시 비번으로 생성해서 회원에게 발송하는데, 항상 숫자 부분만 변동해서 보내 준다면 해커는 역으로 0000~9999까지 조합해서 임의로 접속 시도를 해볼수 있게 됩니다. 간혹 보안 적용이 허술한 사이트의 경우 위와 같이 비번을 발송해주는 곳이 더러 있더군요. 개인정보 유출 사고는 위와 같이 개발자의 부주의가 매우 크다고 보면 됩니다. 문자 조합을 복잡하게 하는게 복잡하지도 않습..
기본적으로 MySQL을 설치 해본 사용자라는 것을 고려해서 간략하게 기록 해봤습니다. 따라서, 디테일한 설정은 아니므로 OS설치를 한 사용자마다 차이가 날 수 있습니다. 특히, 라이브러리가 OS설치시 제대로 설치되지 않아서 발생하는 오류가 간혹 있을수 있으니 오류가 발생할 경우 당황해 하지 마시구 오류메시지를 검색해보세요! (세이박스에서~) 1. APM 설치하기에 앞서 yum을 이용하여 관련 라이브러리들을 설치 yum -y install gcc cpp gcc+c++ flex libjpeg-devel libpng-devel freetype-devel gd-devel glibc 2. MySQL 5.0.22 다운로드 압축 풀기 wget http://ftp.superuser.co.kr/pub/mysql/mysq..
리눅스에서 MySQL을 설치하기 위해선 리눅스를 설치할때 패키지중에 개발자 도구 패키지를 반드시 설치를 해야한다. 하지만 용량을 줄이기 위해서든지 어떤 이유에서 설치를 하지 않은 경우 아래와 같은 오류가 발생하는데, 겁먹을 필요 없시 오류 뜰때 마다 하나씩 하나씩 필요한 파일을 설치 해주면 됩니다. 특히 yum 으로 설치가 편리하므로 yum 으로 설치하는것으로 설명하겠습니다. 오류1 : configure: error: C++ preprocessor "/lib/cpp" fails sanity check 해결 : yum groupinstall 'Development Tools' 'Development Libraries' 오류2 : checking for termcap functions library... c..
우체국 사업 본부 사이트인 koreapost.go.kr 에서 제공하는 우편번호 파일을 엑셀로 받아서 DB에 저장 할 수 있도록 insert 문으로 벼경 하였습니다. http://www.koreapost.go.kr/woopuns/domestic_post3_3.jsp?sc_displayflag=true 위 URL로 직접 가셔서 사용하고자 하는 용도에 맞게 이용하시면 됩니다. 제가 만든 쿼리는 제 사이트에 맞게 받은것으로 자신의 사이트에 맞는 필드로 변경해서 이용하시기 바랍니다. 우편번호는 2009년 2월 23일자 현재 최신 자료 입니다. [출처] 유포유 - http://www.uforu.net/bbs/board.php?bo_table=asp&wr_id=24
MYSQL 서비스 시작시 다음과 같은 오류 발생 후 서비스가 시작되지 않는 경우 STOPPING server from pid file /usr/local/mysql/var/서버명.pid DB Data 폴더에 있는 에러 로그를 확인해보세요! cat /usr/local/mysql/var/서버명.err (var OR data) ~~~~ 오류 내용 ~~~~~ 090406 09:16:21 mysqld started InnoDB: No valid checkpoint found. InnoDB: If this error appears when you are creating an InnoDB database, InnoDB: the problem may be that during an earlier attempt you ..
에러 메세지 Error 1016 : Can't open file: '테이블.MYI'. (errno: 145) 복구 방법 명령어 : mysqlcheck -u계정명 -p --auto-repair -B DB명 Enter password : 비밀번호 또는 mysql에 접속후 repair 테이블명; 을 해주셔도 됩니다. mysql> repair table 테이블명; +---------------------+--------+----------+----------+ | Table | Op | Msg_type | Msg_text | +---------------------+--------+----------+----------+ | 테이블명 | repair | status | OK | +-----------------..
PHP를 이용한 MYSQL 데이타 연결과 쿼리 주기 * MYSQL과 ORACLE 는 별도 접속함수를 이용 * PHP ; server side script-x 서버에서 처리후 크라이언트 결과 전송 * 에디터, vi 편집기로 작성후 ***.php (ex, bbs.php) 서버에 업로드후 실행. * PHP는 HTML과 병행하여 작성할수 있다. ----------------------------------------------------------------------------------------- 한줄 뛰기 ************************************************************************ MySQL함수 (PHP와 MYSQL연결) mysql_connect ("..
# pkill -9 mysql # mysqladmin -uroot -p shutdown # /usr/local/mysql/share/mysql/mysql.server stop (start || restart) # killall mysqld mysql 프로세서 죽이기 다양하지만 어떤게 좋은건지는 잘 모르겠다. 하지만 확실하게 프로세서를 죽이는건 역시 killall 이 빠르게 프로세스를 내려준다. ^^;
[MySQL 테이블 오류] ERROR 1016: Can't open file: '테이블이름.MYI'. (errno: 145) (복구하기) # 테이블명.MYI 파일이 있는곳에서 실행해야한다.(ex : 테이블명 - test) # DB명 : testtest # Table명 : test ex) 1. 에러난 파일 : 테이블명.MYI 2. 아래 명령어 실행위치는 /usr/local/mysql/data/testtest(오류난 테이블 DB명) 3. 명령어 실행 [root@localhost root]# /usr/local/mysql/bin/myisamchk -r 테이블명.* myisamchk: error: '테이블명.frm' is not a MyISAM-table --------- myisamchk: error: '테이..
mysql datadir 로 지정되어있는 폴더를 정확히 확인하신 후 아래와 같이 하시기 바랍니다. datadir 이 /usr/local/mysql/var 일 경우 예입니다. /usr/local/mysql/share/mysql.server stop /usr/local/mysql/var/ 디렉토리에 bin-log 파일을 삭제하시면 되는데 형식은 아래와 같습니다. -bin 패턴이 불어있는 파일을 rm 으로 삭제하시기 바랍니다. rm -f *-bin* /usr/local/mysql/share/mysql.server start 위에 있는 글중에서 /usr/local/mysql/share/mysql.server stop 부분과 /usr/local/mysql/share/mysql.server start 부분에 있는 ..
usr/local/mysql/bin/mysqlbinlog -uroot -pxxxx -r host명-bin.001 > test.txt
*-bin.* 은 mysql 의 replication 기능을 사용하기 위한 binary file 입니다. 즉 replication 기능을 사용하지 않으시다면 삭제해도 상관없습니다. 만약 이 로그들을 생성시키지 않고 싶으시다면 /etc/my.cnf 에 보시면 ----------------------------------------------------------------- # Start logging log-bin server-id = 1 ----------------------------------------------------------------- 라는 설정이 있을 겁니다. 이 2줄을 모두 주석 처리 해 주시고 mysql 을 재시작 하시면 됩니다. 3.23 에서 새로 생긴 기능이죠. MySQL R..
======================================================= MySQL 로그 파일 관리 ======================================================= Mysql 의 로그 파일은 다음과 같이 크게 3종류가 있습니다. 1. 에러로그 2. 일반적인 로그 3. UPDATE 로그 첫번째 에러 로그는 hostname.err 의 이름으로 서버 실행시 에러를 기록하는 파일입 니다. 두번째 로그파일은 mysql 에 접근하는 사용자와 그들이 파일과 관련된 쿼리를 실행할 경우에 기록되는 로그 파일로 /usr/local/mysql/var 밑에 host_name.log 으로 저장이 되어집니다. Mysql 데이터에 파일을 기록하므로 파일과 관련된 쿼리는..
/usr/local/mysql/bin/mysqld_safe -O max_connections=3000 -O table_cache=512 -O wait_timeout=300 &
SELECT * FROM 테이블명 ORDER BY rand() LIMIT 1 위 쿼리는 램덤으로 1건 받아 옵니다
SELECT * FROM 테이블명 group by 컬럼명 having count(컬럼명) > 1
HEAP 테이블이 가장 빠르다 일반적으로 가장 많이 쓰이는 테이블 타입은 MyISAM 타입 입니다. MyISAM 타입은 무자게 빠르며, 대용량에도 강합니다. 그러나 트랜잭션은 지원되지 않습니다. 이노디비(InnoDB) 는 트랜잭션이 지원 됩니다. 쇼핑몰에서는 반드시 사용해야 합니다 ^^ HEAP 테이블 타입은 가장 빠르며, 단점은 메모리에 있기 때문에, MySQL에 중지 될 경우 모두 날아 갑니다. 검색을 하고 재검색을 다시 하는 경우, 임시 검색 테이블을 만들어 놓는 것도 좋은 방법입니다. mysql>CREATE TABLE email_addresses TYPE=HEAP ( ->email char(55) NOT NULL, ->name char(30) NOT NULL, ->PRIMARY KEY(email)..
202. myisamchk(isamchk) MySql에 존재하는 실제 테이블의 데이터가 잘못되었을 경우 복구하는 유틸 테이블 하나당 3가지 파일형식 생성 *.MYD : 테이블 데이터 파일 *.MYI : 테이블 인덱스 파일 *.frm : 테이블 스키마 파일 *.ISM : isamchk로 복구(MySql 3.23이전) *.MYI : myisamchk로 복구(MySql 3.23이후-대부분) 위치 : /usr/local/mysql/bin/isamchk /myisamchk [주의] MySql종료후에 사용 myisamchk점검모드와 복구보드 -점검모드 : 에러발견시 보고, 수정작업은 하지 않음(-c, --check, 無) -복구모드 : 테이블파일을 직접 수행하여 에러부분 수정(-r, -o) op> -s : 테이블 ..
인터넷 사용자들이 많아지면서 인기있는 웹 사이트에서는 Max connections 에러가 발생되는 것을 볼 수있을겁니다. 우선, MySQL은 동시에 연결될 수 있는 클라이언트의 수가 100입니다. 이런 에러가 발생한다면 먼저 접속되어있는 클라이언트의 수를 확인하셔야겠죠. 확인방법은 아래와 같습니다. $ mysqladmin -u root -p패스워드 variables | grep max_connection | max_connections | 100 이제는, 클라이언트의 동시 접속자를 늘리는 명령입니다. 먼저 mysqld - 이 데몬을 kill 하셔야 겠죠... $ safe_mysqld -O max_connections=200 & 참고로, 리눅스나 솔라리스 계열에서는 클라이언트의 동시 접속자수가 500 ~ ..