세이박스

[클래스] MySQL 테이블 복구 repair 명령어, SQL Error: Can't open file: 'sessions.MYI'. (errno: 145)

데이타베이스

어느날 갑자기 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비번 db이름 repair table 테이블명


  최신영화 보러가기... 


html table height=100% 안먹을 경우

웹프로그램
간혹 테이블 높이를 100%로 하고 싶을 때 있을겁니다.
그런데, 어떨땐 먹고 어떨땐 안먹고 왜그럴까요.
html 타입을 설정이 답입니다.
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<table height=100%>
 <tr>
  <td>a</td>
 </tr>
</table>
 
이렇게 할 경우 a라는 글자가 맨위로 가버리죠 원인은..
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
이부분입니다.
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
이렇게 고치면 짜잔 정상으로 100%로 나올겁니다.
 
적용예 :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>table 100%</title>
</head>
<body style="margin:0px;" oncontextmenu="return false;">
<TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" border=0>
 <TR>
    <TD width="100%" height="25">a</TD>
  </TR>
 <TR>
   <TD height="100%">d</TD>
  </TR>
 <TR>
   <TD height="30">b</TD>
  </TR>
</TABLE>
</body>
</html>

MYSQL Table 복사

데이타베이스

CREATE TABLE 새테이블 SELECT * FROM 이전테이블

MYSQL Table 수정 위한 alter 용법

데이타베이스
0. 개요
ALTER TABLE에는 다음 세가지 형식이 있습니다.
ALTER TABLE table_name ADD ( ... ) ;
ALTER TABLE table_name MODIFY( ... ) ;
ALTER TABLE table_name DROP PRIMARYKEY ;

1. 필드 추가
ALTER TABLE table_name ADD ( ... ) ;
# ALTER TABLE diary ADD addr char(20);
diary 테이블에 속성이 char(20)인 'addr' 칼럼 추가
# ALTER TABLE diary ADD addr char(20) AFTER d;
diary 테이블에 속성이 char(20)인 'addr' 칼럼을 'd' 칼럼 뒤에 추가
# ALTER TABLE diary ADD INDEX (d), ADD PRIMARY KEY (a);
컬럼 d에 새로운 인텍스를 생성 컬럼 a에 primary key 생성.
# ALTER TABLE diary ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (c);
diary 테이블에 c라는 컬럼을 새로 생성시키는데
INT (INTEGER) : 정수
UNSIGNED : 양수
NOT NULL : 아무데이타가 없으면 '0'
AUTO_INCREMENT : 데이타가 자동적으로 입력됨...
ADD INDEX (c) : 컬럼 c에 대해서 인텍스 생성
 
2. 필드 수정
ALTER TABLE table_name MODIFY( ... ) ;
# ALTER TABLE test MODIFY (age NUMBER NULL );
NOT NULL을 NULL로 바꾸기
# ALTER TABLEtest MODIFY (name VARCHAR2( 20 ) );
열의 폭 늘이기
 
3. 필드 삭제
ALTER TABLE table_name DROP PRIMARYKEY ;
# ALTER TABLE ddiass DROP COLUMN c;
컬럼 c를 삭제
 
4. 기타
# ALTER TABLE t1 RENAME t2;
테이블 이름을 t1에서 t2로 바꿈
# ALTER TABLE t2 CHANGE a a TINYINT NOT NULL, CHANGE b c CHAR(20);
테이블 내의 컬럼 속성을 바꿈. 원래 컬럼 a는 INTEGER였는데 TINYINT로,
컬럼b는 CHAR(10)이었는데 컬럼이름은 c로 이타 타입은 CHAR(20)으로 수정

CSS table 고정

웹프로그램
table을 고정시키시려면,,
style의 width,height,table-layout 속성을 주시면 됩니다.
 
예)   <table style="width:480;height:320;table-layout:fixed;">