MySql Workbench 6.1 Tunneling 문제 및 대안

사용법은 데이터베이스 개념만 있다면 다른 설명이 필요없을 정도니 생략하고

한가지 문제가 있는데 터널링시에 성능이 굉장히 저하된다.
socket을 이용할 경우 이런 문제가 없는 것으로 봐서 이 프로그램의 터널링 모듈의 성능 자체가 떨어지는 것으로 추정된다.
이 경우 대안은?

다른 프로그램을 이용해 터널링을 처리해주면 된다.
리눅스나 mac이라면 터미널을 열어서 하면 되고

ssh -N -D <localPort> <user@server-domain.com> -p <remotePort>

윈도우라면 putty를 사용한다. publicKey를 서버에 등록해놓으면 매번 비밀번호 입력하지 않아도 원터치로 열 수 있어서 더 편하다.

tunnel_1

 

터널링 정보 입력.
SourcePort : 로컬서버에서 접근할 포트
Destination : 리모트 서버에서 접속할 주소.

리모트 서버의 8080포트가 막혀있는 경우 로컬의 브라우저에서 8080으로 접근하면 리모트 서버의 8080주소로 접근이 가능하게 된다.

Mysql의 경우 3306포트를 사용하는데 외부에서의 접근이 막혀있는 경우에 이 방법을 사용하면 ssh 권한으로 mysql workbench를 이용해서 로컬서버에 접속하는 것처럼 원격 서버의 디비에 접근할 수 있게된다. 서버의 계정도 root@%이 아닌 root@localhost 로 사용할 수 있게 된다.

tunnel_2

 

터널링을 셋팅해줬으면 save를 눌러주자. 바로 open을 누르면 정보가 저장되지 않고 창이 열린다.

 

데이터베이스 MSSQL,SYBASE, MYSQL, Postgresql, cubrid 용량제한 대충 비교..

mssqlhttp://msdn.microsoft.com/en-us/library/ms143432.aspx











File size (data)


16 terabytes


16 terabytes


File size (log)


2 terabytes


2 terabytes

....어쨌든 크다.
내가 용량한계 걱정할필요없을만큼







Rows per table


Limited by available storage


Limited by available storage


oracle ............
모르겠다. mysql보다는 좋겠지뭐... 비싸고 라이센스 구할길이 없어서 제외... 어차피 어둠의 경로가 되긴하지만 그래도
mysql-------------------------------------------------------------------
http://forums.mysql.com/read.php?21,25724,224521#msg-224521
약간의 제한... innoDB로 하면 된다는건데..... 따로 깔아야되나 모르겠다
* 16TB of data for InnoDB table (maybe more). 
* _Default_ limit of 4G bytes or rows in MyISAM table -- See CREATE TABLE and ALTER TABLE for increasing that limit. 
* MyISAM hard limit is perhaps 2**56 bytes -- you won't hit that in my lifetime. 
* key_buffer_size (cache for MyISAM indexes) -- hard limit of 4GB (even on 64-bit machines), but you can have more than one. 
* innodb_buffer_pool_size -- more than 4GB, suspect at least 8TB. 
* 32-bit OS limits -- depends on OS -- ram-related things are limited to somewhere between 1.6GB and 3GB. 
* Number of rows -- might be 4G limit if compiled for 32-bit. 
* Various stats -- silently wrap at 4G if compiled for 32-bit. 
* File sizes -- mostly OS limit, which (today) tends to be plenty huge. 
* Query Cache -- don't know; probably not efficient to come anywhere near 4GB. 
* Number of databases/tables/files -- no hard limit, but millions will cause trouble. 
* Number of connections open at once (cf Max_connections) -- OS will stop you from opening more than RAM can handle (hundreds, maybe thousands). 
* One column of table -- 4GB (LONGTEXT, LONGBLOB) 
* InnoDB row size -- 8K? (*TEXT and *BLOB count for only 768 bytes until InnoDB "plugin") 
* Index size -- 1000? 
* VARCHAR/VARBINARY -- used to be 255, now 65535 bytes(?) 
* Number of views, stored procedures, etc -- ? 
* Length of db/table/view/sp/column names 
* Columns per table: 4K; possibly fewer if their names are lengthy. 
* Columns per table (InnoDB): 1000. 
* Index prefix: MyISAM: 1000, InnoDB: 767 
* GRANTs: Unlimited except by MyISAM table limits? 
* JOINs, including implicit ones in Views: 61 
* Integer (BIGINT): 0-2**64 (UNSIGNED) or +/- 2**63 (SIGNED) 
postgresql -------------http://www.postgresql.org/about/


























Limit Value
Maximum Database Size Unlimited
Maximum Table Size 32 TB
Maximum Row Size 1.6 TB
Maximum Field Size 1 GB
Maximum Rows per Table Unlimited
Maximum Columns per Table 250 - 1600 depending on column types
Maximum Indexes per Table Unlimited
Sybase...우리나라에서는 많이 안쓰는것같다.------------------------------------------------------
유룐가보다.제외...

더 조사할것도 없이....

cubrid----------------
일단 사용자층이 얇고 아직 버그도 꽤 많은 것 같다
리눅스보다는 윈도우에서 더 안정적으로 돌아가는 것 같고
아직 64비트환경에서 설치도 잘 안되고 안되는게 많다
(안된다는건..우분투10.10 64에 한정...)
centos나 우분투 9.04에서는 패키지도 지원된다.

결국 우분투에서 시냅틱설치가 되면서 성능도 좋은 postgresql이나 mysql로....
둘중에서 라이브러리같은거 지원 더 잘 되는것으로 선택하면 될 것 같다.

APM설치 방법

http://linuxex.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%84%9C%EB%B2%84%EC%9A%A9-%ED%95%84%EC%88%98%EC%84%A4%EC%B9%98-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8
클릭
위에것들을 먼저 한 다음에

apm이 리눅스 기본 설치할 때 다 설치가 되긴 하는데 작동이 잘 안된다.
뭐 어떻게 하는건지 더 어렵다. 그래서 수동으로 설치하는게 더 편하다.

rpm -qa httpd php mysql
깔려있는것을 확인하고

yum remove -y httpd php mysql
지운다.

그리고 수동으로 다시 깔기 위해 다운로드
cd /usr/local/src
mkdir apm
cd apm

www.apache.org ( httpd라고 된거 안정화 버전 다운로드 )
www.mysql.net ( 무료안정화버전 다운로드 )
www.php.net ( 안정화 버전 다운로드 )

wget 명령으로 다운로드
ls -al로 파일명을 확인 후
tar -zxvf 압축풀기

pwd
cd /usr/local/src/(mysql 압축푼폴더)

useradd -M -s /bin/false mysql (mysql 실행할 계정 생성)

./configure --prefix=/usr/local/server/mysql --with-charset=utf8 --with-extra-charsets=all (./configure \를 써넣으면 분할입력 가능, ./configure --help 가능 )

termcap 라이브러리 없다고 컴파일이 안됨..
configure: error: No curses/termcap library found
망할 rpm -qa로 검색하면 깔려있다.
termcap , libtermcap, libtermcap-devel
이 세개가 깔려있어야된다. 나는 세번째가 안 깔려있었다. centos 5.4
yum install libtermcap-devel ( 설치 )

make && make install (make와 make install 실행)

환경설정 시작
cp support-files/my-huge.cnf /etc/my.cnf (my-small, my-medium, my-large, my-huge 중에 메모리에 따라 선택 64m, 64~256m, 512m, 1g~)

db생성 및 디렉토리 권한

cd /usr/local/server/mysql (설치경로)
chown -R mysql .
chgrp -R mysql .
bin/mysql_install_db --user=mysql
chown -R root .
chown -R mysql var

cd /usr/local/server/mysql (설치경로)
(안되면 ./bin/mysql_install_db)
groupadd mysql
useradd -g mysql mysql
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/data
chgrp -R mysql /usr/local/mysql
chown -R root /usr/local/mysql/bin
cd /usr/local/mysql
./bin/mysqld_safe --user=root &

ps -ef | grep mysql (mysql설치를 확인)

vi ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/server/mysql/bin (으로 수정)

source ~/.bash_profile (변경한 환경변수 재시작 전에 바로 적용)

cp share/mysql/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list | grep mysqld

mysql 실행 접속
/etc/init.d/mysqld start
mysql
   exit
mysqladmin -u root password (암호)
mysql (에러남.. 거부)
mysql -u root -p (암호 입력)

APACHE설치
cd httpd폴더
./configure \
--prefix=/usr/local/server/apache \
--enable-mods-shared=all \
--enable-so \
--enable-rewrite (\는 줄바꿔서 치게 도와줌 ./configure --prefix=/usr/local/server/apache --enable-mods-shared=all --enable-so --enable-rewrite )

make && make install
pwd (현재폴더확인 httpd 압축파일 폴더)
cp /usr/local/server/apache/bin/apachectl /etc/init.d/httpd

chkconfig --add httpd ( 자동실행 등록 안되면 밑에거 따라감)

vi /etc/init.d/httpd
2째줄부터 등록
#chkconfig: 2345 90 90
#description: init file for Apache server daemon
#processname: /usr/local/server/apache/bin/apachectl
#config: /usr/local/server/apache/conf/httpd.conf
#pidfile: /usr/local/server/apache/logs/httpd.pid

chkconfig --add httpd
chkconfig --list | grep httpd

vi /usr/local/server/apache/conf/httpd.conf
<IfModule !mpm_netware_module>
User nobody (nobody로 변경)
Group nobody
</IdModule>
ServerName 127.0.0.1(서버가 있으면 서버명)

/etc/init.d/httpd start

vi /etc/sysconfig/iptables (포트 개방 해 놨으면 넘어가면 됨)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCETP
/etc/init.d/iptables restart

PHP설치
(잘못쓴게 아니고 이게 다 옵션이다)
./configure \
--prefix=/usr/local/server/php \
--with-apxs2=/usr/local/server/apache/bin/apxs \
--with-mysql=/usr/local/server/mysql \
--with-config-file-path=/usr/local/server/apache/conf \
--disable-debug \
--enable-safe-mode \
--enable-track-vars \
--enable-sockets \
--with-mod_charset \
--with-charset=utf8 \
--with-xml \
--with-language=korean \
--enable-mailparse \
--enable-calender \
--enable-sysvsem=yes \
--enable-sysvshm=yes \
--enable-ftp \
--enable-magic-quotes \
--enable-gd-native-ttf \
--enable-url-includes \
--enable-trans-id \
--enable-illine-optimization \
--enable-bcmath \
--with-jpeg \
--with-png \
--with-zlib \
--with-jpeg-dir=/usr \
--with-png-dir=/usr/lib \
--with-freetype-dir=/usr \
--with-libxml-dir=/usr \
--enable-exif \
--with-gd \
--with-ttf \
--with-gettext \
--enable-sigchild \
--enable-mbstring

libxml2-config 인가 때문에 에러가 난다.
configure: error: xml2-config not found. Please check your libxml2 installation.
(xm12라고 검색하는 경우도 있겠지...xm12-config, xm12,xm12-devel)
이것들을 최신으로 설치
yum install libxmli libxml2 libxml-devel libxml2-devel
설치된건 업데이트도 되고 알아서 된다.

make && make install

설치폴더 /usr/local/sever/php
환경설정 /usr/local/server/apache/conf

cp php.ini-dist /usr/local/server/apache/conf/php.ini

vi /usr/local/server/apache/conf/httpd.conf

<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php
</IfModule>
<IfModule mime_module>
   AddType application/x-httpd-php .php
   AddType application/x-httpd-php-source .phps
</IfModule>

/etc/init.d/httpd restart

chcon -t texrel_shlib_t
/usr/local/server/apache/modules/libphp5.so

php의 정보를 보여주는 함수
vi /usr/local/server/apache/htdocs/phpinfo.php
<? phpinfo(); ?>
   ecs :wq

웹페이지로 사용할 때 설정파일을 손봐서 htdocs폴더를 이동하면 된다.

vi /usr/local/server/apache/conf/httpd.conf

extra/httpd-userdir.conf (일반 사용자 홈디렉토리 설정)
extra/httpd-vhosts.conf (여러개 계정 쓸때)

<VirtualHost 000.000.000.000:80> (도메인이 아닌 ip를 쓰는칸)
   ServerName first.naver.com
   DocumentRoot /usr/local/server/apache/htdocs
</VirtualHost>
<VirtuallHost 000.000.000.111:80>
   ServerName second.naver.com
   DocumentRoot /home/second/public_html
</VirtualHost>

이외에는 보면 알기 쉽게 돼 있다 패스