레이블이 mysql인 게시물을 표시합니다. 모든 게시물 표시
레이블이 mysql인 게시물을 표시합니다. 모든 게시물 표시

2016년 3월 29일 화요일

Ubuntu APM(apache2 + php5 + mysql) 설치

apache2 + php + RDS(mysql) 를 사용해야 할 일이 생겼다.

우선 Ubuntu instance 생성 후

$sudo apt-get update 

를 실행한다.

1. apache2 설치

$sudo apt-get install apache2

2. php5 설치

$sudo apt-get install php5

3. RDS 를 사용할 것이기에 mysql 은 client 로 설치한다.

$sudo apt-get install mysql-client

4. php5 + mysql 연동

$sudo apt-get install php5-mysql

3번에서 mysql-server 로 설치할 경우에는 

$sudo apt-get install mysql-server


apache2 vitualhost 설정

cp /etc/apache2/sites-available/000-default /etc/apache2/sites-available/example.com.conf

default 파일을 example.com 용으로 복사

ServerAdmin, ServerName, DocumentRoot 등의 설정 후

vi /etc/apache2/apache2.conf 

에 Directory 설정 추가

이때 유의 할 점은 apache2 버전이 2.2 일 경우에는 

Order allow, deny

Allow from all

apache2 버전이 2.4 이상일 경우

Require all granted

로 설정한다.

그렇지 않으면.... error.log 에서 'client denied by server configuration' 오류를 볼 수 있다.

vitualhost 활성화

sudo a2ensite example.com

sudo service apache2 restart


vitualhost 비활성화

sudo a2dissite example.com

sudo service apache2 restart





2014년 10월 13일 월요일

Table 'xxxx' is marked as crashed and should be repaired

mysql db 운영 중 아래와 같은 error 를 접하게 되었다.

[ERROR] /usr/local/libexec/mysqld: Table 'xxxx' is marked as crashed and should be repaired

아.. 뭐지? 해당 테이블에 접근이 안된다.

[해결방법]

1. table 을 분석하자.
analyze table `xxxx`;


2. table 을 복구하자.

repair table`xxxx`;










row 가 많을 수록 시간이 오래 걸린다.

[참고] 

2012년 10월 30일 화요일

mysql cast()

cast() 함수는 type을 변경하는 함수이다.

varchar 로 되어있는 컬럼을 정렬할 경우 예로 아래와 같이

orderval = 1,2,10 등의 값이 있을때 order by orderval 을 하면

1,10,2 로 정렬이 된다.

처음부터 orderval 컬럼의 type을 integer 생성하였다면 문제가 없었을테지만...

무튼 위와 같을때는 order by cast(orderval as unsigned) 로 정렬하면 된다.

cast(id as type)
type : binary, char, date, datetime,decimal, signed, unsigned, time

참고 :
http://dev.mysql.com/doc/refman/5.1/en/cast-functions.html#function_cast

2012년 9월 3일 월요일

mysql concat() 과 ifnull()

mysyql concat() ,ifnull()

예.)
yearday
null19
201220
2013null

day 컴럼의 값에 "일" 를 붙히고 싶을때
select concat(day, '일') from tablename

결과 >> 

19일
20일
null

그런데 concat 으로 연결할때 값이 null 이 있으면 리턴값은 null 이 된다.

select concat(year, day) from tablename

결과 >>
null
201220
null

위와 같은 결과를 방지하려면 ifnull()을 사용한다.

select concat(ifnull(year,'null대신할값'), ifnull(day,'null대신할값')) from tablename

결과 >>

null대신할값19
201220
2013null대신할값












2012년 6월 20일 수요일

mysql case

case 컬럼명 when '원본값' then '바꿀값' else '기본값' end

ex.)
select case school when 'high' then '고등학교'
when 'univ' then '대학교'
else '중학교'
end as school from ~~~


2012년 6월 12일 화요일

mysql unix_timestamp

출처 : http://mrbongdal.tistory.com/37


UNIX_TIMESTAMP 함수 사용하여 데이터 입력하기

해당 데이터 입력 컬럼 의 데이터 타입은 INT(10) 으로 셋팅

#현재 시간 으로 입력하기
INSERT INTO 테이블 (컬럼) VALUES (UNIX_TIMESTAMP());

#특정 날짜 시간 으로 입력하기
INSERT INTO 테이블 (컬럼) VALUES (UNIX_TIMESTAMP('YYYT-MM-DD HH:MM:SS'));


#YYYY-MM-DD HH:MM:DD 형태로 복구하여 SELECT 하기
SELECT DATEFORMAT(FROM_UNIXTIME(컬럼),'%Y-%m-%d %H:%i:%s')