포럼
mysql 5.5 버전에서요~ innodb 설정을 어떤식으로 하나요..
2011.10.21 15:01
댓글 17
-
Community
2011.10.21 15:11
모든 테이블 형태를 InnoDB로 변경하는 질의가 있나요.. 하나하나 변경하려니 참 힘드네요 ㅠ 100개나 되는데 ㅜㅜ
-
코뿔소2020
2011.10.21 16:00
저는 centos 6.0 사용하는데요. 서버 설치때 mysql 5.1 자동 설치했습니다.
쓰시는 서버가 우분투로 알고 있는데 설치 경로가 조금 틀릴 뿐 리눅스 계열에선 노벨의 오픈수세 빼고 거의 같은 것 같습니다.
저도 우분투, 소라리스, 프리BSD...거의 저의 서버(델 파워에지, intel Xeon 3.4GHz/2mb, two cpu. memory 12Gb)에서 테스트해 봤습니다. 저는 사용하기가 편하고 하드웨어 호환성 측면에서도...., 에러없이 설치되고 제일 골치 아프지 않는게 레드햇 계열인 centos라 편하더라구요.
만약 mysql을 자동설치하셨다면, innodb도 엮시 자동 활성화되었을 것입니다.
확인 방법: root 계정으로 mysql 들어가신 후,
mysql>SHOW VARIABLES LIKE 'have_innodb';
// have_innodb | yes 글이 뜨면은 활성화된 것입니다.
my.cnf에 위의 문구를 삽입하면 에러가 납니다. 그 문구는 무시하시고요.
# vi /etc/my.cnf
default-storage-engine=innodb
저장 후, mysql을 재가동하시면 서버에서 자동으로 서버사양에 따라 디폴트 값으로 설정합니다.
XE를 재 설치하실 때 innodb로 설치하시면 됩니다.
-
Community
2011.10.21 16:06
# vi /etc/my.cnf
default-storage-engine=innodb <<< 이것만 넣어주면 디폴트 값으로 자동 셋팅 되는건가요.. 정말 답변 감사합니다.....
-
銀童
2011.10.21 16:06
모든 테이블을 innodb 로 변경하는것은 없습니다.
하나씩 하셔야되요.
저도 왜 없는진 모르겠는데
아니면 프로그램이나 매크로를 짜셔도 되는데
한 100개 정도면 프로그램 짜는 시간이나 그거나 비슷하니
그냥 노가다 뛰셔도 됩니다.
-
Community
2011.10.21 16:18
감사합니다!!! 답변정말 감사합니다 은동님 덕분에 mysql 5.5버전이 5.1보다 빠른걸 알게 되고 이노db가 빠르다는걸 알게 되었습니다 감사합니다.
-
코뿔소2020
2011.10.21 16:13
올소!!! 노가다, 아픔만큼 성숙.
-
Community
2011.10.21 16:16
mysql에 들어가서.. mysql > SHOW VARIABLES LIKE 'have_innodb' 이걸 쳐야하는데 mysql에 들어가는 법을 모르겠습니다...ㅜㅜ
너무 다 물어봐서 죄송합니다. 그런데 정말 모릅니다 ㅠㅠ 얻어가는게 너무 많습니다 감사합니다 서버 운영이 처음이라 질문이 많네요
답변 정말 감사합니다!!
-
코뿔소2020
2011.10.21 16:34
이렇게 하시면 됩니다.
#sudo mysqladmin -u root -p //엔터
EnterPassword: //패스워드 //엔더
mysql>SHOW VARIABLES LIKE 'have_innodb'; 엔터 // 세미클론 꼭 삽입하시고 엔터 치시야 됩니다.
have innodb | yes
mysql>\quiet 엔터 // 끝내기
-
Community
2011.10.21 17:07
have innodb | yes 콘솔에서 이명령어 입력후 계속 y만 출력합니다 놔두어도 되는거겠지요??? 감사합니다!
-
코뿔소2020
2011.10.21 17:18
네, "have innodb | yes" 는 입력어가 아니고요 출력 화면입니다.
my.cnf 을 수정 후 저장하시고 mysql 서버를 재시작하셨을때 mysql이 정상 가동되면 innodb가 활성화되었습니다.
그러면 아무런 문제없이 innodb로 운영하시면 됩니다. 즐거운 하루되세요.
-
코뿔소2020
2011.10.21 17:28
mysql 시작과 재시작 방법
# sudo /etc/init.d/mysql start // 시작하기
# sudo /etc/init.d/mysql stop // 정지하기
# sudo /etc/init.d/mysql restart // 재 시작하기
혹은
# sudo /etc/init.d/mysqld restart // 재 시작하기..이런 방법도 있습니다.
-
Community
2011.10.21 17:33
아.. 재시작은 아는대요.. ㅠㅠ 셋팅을 먼가 잘못했나봐요..
-
Community
2011.10.21 17:44
첨부파일이 제 셋팅 파일이거든요 잘못된곳좀 봐주세요 ㅠㅠ 은동님 코뿔소님!!!
그리고 mysql 재시작시 Checking for tables which need an upgrade, are corrupt or were
not closed cleanly 이런 맨트가 떠요 ㅠㅠ -
코뿔소2020
2011.10.21 17:57
[mysqld]
## * Basic Settings
default-storage-engine=innodb //이 부분에 삽입하고 저장하신 후 mysql 재시작하세요.
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
## Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
-
Community
2011.10.21 18:06
감사합니다!!!!
-
코뿔소2020
2011.10.21 18:19
당황하지 마시고 제가 방금 올린 댓글처럼 my.cnf 파일을 수정 후 재시작 했는데도 같은 현상이 일어나면 기존 mysql에 테이블이 myisam이기 때문입니다. innodb로 설정하면 기존에 설치된 myisam 테이블이 깨어집니다. myisam으로 생성된 테이블을 innodb의 테이블로 바꿀려면 여기서는 설명드리기가 조금 복잡합니다. 저는 지금 미국이고요. 새벽 3시 반이 넘었네요.
우선 my.cnf에,
#default-storage-engine=innodb //이 부분에 삽입하고 저장하신 후 mysql 재시작하세요.
#user = mysql
위의처럼 #주석처리하시고 재시작하면 정상가동됩니다.
-
GPMz
2011.10.21 18:35
5.5에서는 설치하면 자동으로 디폴드 값이 innodb로 됩니다. 특별히 myisam으로 선택하지 않는다면 자동으로 innodb로 만들어집니다. 저는 이렇게 이동했습니다. 일단 지금사용하는 xe에서 디비를 내보내기를 통해서 백업해 둡니다. xe를 innodb로 설치합니다. 그리고 모든 테이블 innodb가 맞는지 확인하고 나서 테이블을 모두 선택해서 empty눌러서 다 비웁니다. 그 다음에서 import를 눌러서 이미 백업된 디비를 불러오기합니다. 그럼 간단히 innodb로 변경되던군요. 혹 반영이안된 테이블이 있다면 수동으로 선택해서 해주면 되고요. 이렇게 한 것이 제대로 된 것인지 몰라도 일단 디비 테이블을 보면 모두 innodb로 되어있어요. 그리고 사용에도 아무런 오류도 없고 잘 돌아가고있습니다.
innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:256M:autoextend:max:200M
innodb_log_group_home_dir = /usr/local/mysql/data
innodb_log_arch_dir = /usr/local/mysql/data
innodb_buffer_pool_size = 2G
innodb_additional_mem_pool_size = 16M
innodb_log_file_size = 512M
innodb_log_buffer_size = 2M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
innodb_flush_method = O_DSYNC
/etc/mysql/my.cnf 에 다적어줘야하나요... 저의 my.cnf 에는 저런 문구가 없네요... mysql 5.5.13 설치 하였습니다!