Search Results for '프로그래밍/리눅스 & MY-SQL'


206 posts related to '프로그래밍/리눅스 & MY-SQL'

  1. 2019/03/12 특정 페이지만 리다이렉트 하기.
  2. 2018/08/19 MySql - update의 그누보드5 활용
  3. 2018/08/04 Windows and Linux pscp 파일 복사
  4. 2018/08/03 리눅스에서 <?php 는 작동하는데 <? 로 시작하면 파일 깨질때
  5. 2018/07/30 우분투에 sendmail 설치 설정
  6. 2018/07/29 멀티 도메인 멀티 루트의 Letsencrypt 인증서 만들기
  7. 2018/07/25 마리아DB(RDBMS)에서 NoSQL처럼 유동적인 필드만들기
  8. 2018/07/25 SSL 보안서버 적용시 fa아이콘 사용자 깨짐현상 해결 방법
  9. 2018/07/25 letsencrypt 추가 및 갱신 방법 - 우분투
  10. 2017/12/01 Mysql .frm 과 .idb파일만 남았을때 테이블 구조 및 데이터 복구
  11. 2017/05/21 How to Install PHP 7 on Ubuntu 15.10, 15.04 & 14.04 using PPA
  12. 2017/05/21 How to Install PHP 5.4 or PHP 5.5 or PHP 5.6 on Ubuntu 16.04, 14.04 or…
  13. 2017/05/21 Ubuntu 16.04 : Nginx, PHP 7, MySQL 5.7 설치
  14. 2017/04/18 [DBMS] mysql 접속자 많아서 버벅일때 팁입니다.
  15. 2017/04/18 [DBMS] 그누보드 databas 튜닝
  16. 2017/03/18 Nginx에서 모든 요청을 https non-www로 돌리는 방법
  17. 2017/03/10 리눅스 우분투 계정생성 및 폴더 상위 접근 제한 하기
  18. 2017/03/03 XPEnology(헤놀로지) DSM 6.0 설치하는법
  19. 2017/02/28 MYSQL SELECT 위력을 보여드리죠.
  20. 2017/02/27 우분투 계정 관리
  21. 2012/11/01 Secure CRT 유니코드 한글 설정
  22. 2012/08/06 SQL에서의 기본적인 Join문 설명
  23. 2012/02/07 파일생성 권한 초기화 시키기
  24. 2012/02/07 특정 파일(ex: mp3,avi,mpg)만 찾아서 자동으로 삭제하기!
  25. 2012/02/07 리눅스에서 쓰레드 최대 생성 갯수 확인
  26. 2012/02/07 리눅스 하위 디렉토리의 문자열 검색
  27. 2012/02/07 SSH 포트22번 불량 접속 시도 IP 자동 막기 1
  28. 2011/12/25 우분투 IP변경하기
  29. 2011/12/06 원격서버의 Virtualbox 의 웹관리툴 Phpvirtualbox 관련 삽질
  30. 2011/10/16 우분투에서 웹서버 환경 구축하기 (LAMP or APM)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !/bbs/board.php.?+bo_table=grouppurchase&wr_id= [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
 
# force http:// for selected URLs
RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} /bbs/board.php.+?bo_table=grouppurchase&wr_id= [NC]
RewriteCond %{THE_REQUEST} /bbs/board.php.+?bo_table=grouppurchase&wr_id= [NC]
ewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
2019/03/12 13:02 2019/03/12 13:02

조건 값보다 큰 필드의 레코드 값을 수정

 

 

UPDATE 테이블명 SET 필드명 = "바꿀 값" WHERE 필드명 > "조건 값" 

 

 

조건 값을 제외한 모든 레코드 값을 수정

 

 

UPDATE 테이블명 SET 필드명 = "바꿀 값" WHERE 필드명 <> "조건 값" 

 

 

조건에 맞는 두개의 필드를 바꿈

 

 

UPDATE 테이블명 SET 필드명 = "바꿀 값", 필드명2 = "바꿀 값" WHERE 조건들

 

 

필드의 값에 '철수'라는 단어가 포함 되어 있다면 모두 '영희'로 수정

 

 

UPDATE 테이블명 SET 필드명 = REPLACE(필드명, '철수', '영희')

 

 

조건에 맞는 필드명의 값에 '영희'단어를 덧붙임

 

 

UPDATE 테이블명 SET 필드명 = CONCAT(필드명,'영희') WHERE 조건들

 

 

그누보드 게시판의 여분필드 값을 바꾸는 예제를 해보도록 하겠습니다.

 

Example.01 

게시물 번호 wr_id가 3인 게시물의 wr_subject(제목)과 wr_content(내용)을 변경하는 예제입니다.

 

 

UPDATE g5_write_게시판아이디 SET wr_subject="제목변경", wr_content="내용변경" WHERE wr_id = 3;

2018/08/19 10:58 2018/08/19 10:58
윈도우에서 리눅스로 또는 그 반대로 파일을 복사해야 하는 경우가 있습니다. 저는 PC 에 리눅스 특정 폴더를 스크립트 하여 원하는 시간에 백업 하도록 설정 하였습니다. 

이럴경우 필요한 프로그램이 있습니다 PSCP 입니다 PSCP는 윈도우와 리눅스 간에 파일을 복사 할수 있습니다. 

먼저 PSCP.EXE 파일을 다운 받습니다. 

이후 pscp.exe 실행 파일을 system32 디렉토리로 복사합니다. 

일반적으로 C : \ Windows \ System32 경로에 있습니다. 이렇게 하는 이유는 어떤 경로에서도 pscp 명령어를 사용하기 위해서 입니다.

다음 명령어 형식을 사용하십시오.

cmd 스크립트 입니다.


pscp -pw password C:\Users\Admin\Desktop\test.txt  \
user@192.168.33.10:/home/youngsam 


pscp -i /path/to/key.ppk C:\Users\Admin\Desktop\test.txt \
user@192.168.33.10:/home/youngsam

위의 명령은 리눅스에서 윈도우 폴더로 복사하는 명령어 입니다.
2018/08/04 15:26 2018/08/04 15:26
php.ini 를 수정
php --ini | grep php.ini 를 쳐보면 됩니다.
/etc/php.ini 에 있을수도 있고 /usr/bin/php.ini 에 있을 수도 있습니다.
파일을 열어서 short_open_tag 찾아서 on 으로 바꿔주세요.
서버 재부팅 또는 아파치 재부팅 하셔야합니다.
2018/08/03 10:56 2018/08/03 10:56
우분투에서 sendmail과 dovecot, saslauthd를 설치하기는 쉽다.
설치는 전부 root권한으로 진행하였다.
 
#apt-get install sendmail
#apt-get install libsasl2-2 libsasl2-modules sasl2-bin
#apt-get install dovecot-pop3d
 
위와같이 하면 설치는 완료다.
 
문제는 설정!!!
일단 smtp인증을 받기 위해서 sendmail.cf 과 sendmail.mc 를 수정한다.
먼저 sendmail.mc 수정
dnl # These are the allowed auth mechanisms. To allow relaying for a user
dnl # that uses one of them, you must set TRUST_AUTH_MECH.
define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
dnl # These are the SMTP auth mechanisms which, if used,
dnl # Sendmail will allow relaying for. 
TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
 
위 문장을 없으면 추가하고 있으면 위 문장과 같이 만든다.
그리고 Addr=127.0.0.1 이라고 나와있는 부분이 있을 텐데 이걸 전부 지워주거나 0.0.0.0으로 변경해준다.
그래야지만 다른 곳에서 아웃룩 등을 이용하여 메일 사용이 가능해진다.
저장 후 콘솔에서 m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 입력
그 다음은 sendmail.cf 확인
O AuthMechanisms=LOGIN PLAIN DIGEST-MD5 CRAM-MD5  <-주석 되어 있는지 확인 후 주석있으면 제거
그 다음은 local-host-names 수정
/etc/mail/local-host-names 파일을 메일을 받을 도메인으로 수정해준다.
xxxx.co.kr처럼
마지막으로 Sendmail.conf 수정(없으면 생성)
/usr/lib/sasl2/Sendmail.conf 파일을 수정 및 생성하여 아래 내용을 기입한다.
pwcheck_method: saslauthd
 
이상으로 설정이 끝났다.
센드메일과 sasl을 재시작(시작)한다.
/etc/init.d/sendmail start(또는 restart)
/etc/init.d/saslauthd start(또는 restart)
2018/07/30 16:24 2018/07/30 16:24
1. 1개의 도메인, 1개의 루트
 
letsencrypt certonly -a webroot --webroot-path=/var/sitea/ -d sitea.site.com
위와 같습니다. web root가 /var/sitea 이고, 도메인이 sitea.site.com 이라는 말이죠. 
 
2. 2개의 도메인, 1개의 루트
letsencrypt certonly -a webroot --webroot-path=/var/siteb/ -d siteb.com -d www.siteb.com 
위와 같습니다. web root가 /var/siteb 이고, 도메인이 siteb.com, www.siteb.com 2개일 경우입니다.
 
3. 멀티 도메인, 멀티 루트
letsencrypt certonly -a webroot --webroot-path=/var/sitea/ -d sitea.site.com --webroot-path=/var/siteb/ -d siteb.com -d www.siteb.com --webroot-path=/var/sitec/ -d sitec.site.com --webroot-path=/var/sited/ -d sited.site.com --webroot-path=/var/sitee/ -d sitee.site.com --webroot-path=/var/sitef/ -d sitef.site.com --webroot-path=/var/siteg/ -d siteg.site.com 
위와 같습니다. 1번, 2번 짬뽕이죠. 기본적으로 --webroot-path 뒤에 웹루트, 그 뒤에 -d 사이트 -d 사이트2 이런 규칙으로 보시면 됩니다.
여러 사이트를 운영해도 1개의 인증서로 관리할 수 있어 매우 편리한 방법입니다.
2018/07/29 13:07 2018/07/29 13:07
마리아DB(RDBMS)에서 NoSQL처럼 유동적인 필드만들기... 
(더블린 코어같은 옵션이 다양한 자료에 쓸만할 듯 싶네요.) 
주테이블 
seq(auto_increament), uid, title, content, list 
부테이블 
부테이블uid, key, var, 주테이블uid 
제목, 내용, 그밖에 리스트에서 많이 뿌려줘야 되는 것들은 주테이블에 넣고... 
그밖에 메타데이터나 유동적으로 추가되고 빠지고 하는 값들은 메타테이블을 만들어서 넣어두는 것도 방법일 듯 싶습니다. 
(NoSQL의 장점을 마리아DB에서 구현해보려고 만들어봤습니다.) 
주테이블 
ABCD12345, 우연근, 21살/똑똑함/거짓말못함^^; 
부테이블 
KDJF31AKW, Key:문화적특성향, Var:보수, ABCD12345 
KDJF31AKB, Key:특징, Var:수꼴싫어함, ABCD12345 
이런식으로요.
2018/07/25 21:37 2018/07/25 21:37
안녕하세요. (FA 아이콘 사용자 중)
이번에 서버를 업그레이드 하면서 SSL 보안서버를 적용하던중,
크로스도메인 미지원으로 인한 www 를 입력한 도메인으로 접속시 아이콘이 깨지는 현상을
보았습니다.
 
루트에 존재하는 .htaccess 파일을 편집합니다. 
(저는 에디트플러스를 사용합니다)
 
<IfModule mod_headers.c> 
    <FilesMatch "\.(ttf|ttc|otf|eot|woff|css)$"> 
          Header set Access-Control-Allow-Origin "*" 
    </FilesMatch> 
</IfModule> 
 
위의 소스내에서는 ifModule 의 mod_headers.c 모듈을 사용합니다.
말그대로 mod_headers.c 모듈을 사용을 하는 아파치(Apach) 여야 위 구문을 읽고,
정상적으로 표출합니다.
 
그러므로,
 
- Autoset 사용자 기준으로 설명
 
- /server/conf/httpd.conf 파일 (#117 라인)
 
- #LoadModule headers_module modules/mod_headers.so << 같은 구문을 찾아주시고,
 
- 앞의 주석 "#" 을 제거한뒤 LoadModule headers_module modules/mod_headers.so 와 같이 만들어 줍니다.
 
위와 같이 하였다면 간단하게 아파치(웹서버) 를 중단 후 시작 해주시면 간단하게 해결됩니다.
 
 
//========== 올바른 예 =======================// 
<IfModule mod_headers.c> 
    <FilesMatch "\.(ttf|ttc|otf|eot|woff|css)$"> 
          Header set Access-Control-Allow-Origin "*" 
    </FilesMatch> 
</IfModule> 
//========== 이것으로 사용 =======================// 
 
ps. 간혹 모르시는 분들을 위해.. .htaccess 파일이 없는경우 /root/data/.htaccess 파일이 존재합니다.
없는 분들은 저걸 이용하시면 됩니다.
2018/07/25 20:35 2018/07/25 20:35
certbot certonly --standalone --email naver@naver.com -d youngsam.net -d www.youngsam.net
letsencrypt certonly --standalone --email naver@naver.com -d youngsam.net -d www.youngsam.net
갱신  letsencrypt renew 명령어 끝


2018/07/25 15:19 2018/07/25 15:19

미리 mysql의 데이터를 백업시켜놓지 않고 db가 터져서 접속이 불가능한 상태이기 때문에 .frm파일과 .idb파일만 남아서 이것을 이용해서 복구해야 했기에

재가 썻던 방법을 남깁니다.

 

 

.frm에는 테이블 스키마가 남겨져 있는데

 

shell>mysqlfrm --diagnostic <복구하고 싶은 frm이 담겨있는 mysql database의 경로> 

여기서 shell이란 linux terminal과 windows powershell 다 포함됩니다.

 

또한 ibd는 

frm에서 나온 테이블을 추가해준 후에

 

1. alter table <table.name> discard tablespace

2. 복구하고 싶은 idb파일을 해당 db가 있는 폴더에 넣어준다.

3. alter table <table.name> import tablespace

4. .cfg오류는 무시해도 좋습니다.

2017/12/01 12:59 2017/12/01 12:59

Install PHP 7

Use the following set of commands to add PPA for PHP 7 in your Ubuntu system and install it.

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install -y php7.0

Check PHP Version

Now use the following command to check installed php version on your system.

$ 

PHP 7.0.1-4+deb.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies

Install PHP 7 Modules

You may also need to install modules based on your application requirements. Use the following command to find our available php 7 modules.

$ php7.0-common - Common files for packages built from the PHP source
libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module)
php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary)
php7.0-cli - command-line interpreter for the PHP scripting language
php7.0-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
libphp7.0-embed - HTML-embedded scripting language (Embedded SAPI library)
php7.0-dev - Files for PHP7.0 module development
php7.0-dbg - Debug symbols for PHP7.0
php7.0-curl - CURL module for PHP
php7.0-gd - GD module for PHP
php7.0-imap - IMAP module for PHP
php7.0-intl - Internationalisation module for PHP
php7.0-ldap - LDAP module for PHP
php7.0-pgsql - PostgreSQL module for PHP
php7.0-pspell - pspell module for PHP
php7.0-recode - recode module for PHP
php7.0-snmp - SNMP module for PHP
php7.0-tidy - tidy module for PHP
php7.0-json - JSON module for PHP
php-all-dev - package depending on all supported PHP development packages
php7.0-sybase - Sybase module for PHP
php7.0-modules-source - PHP 7.0 modules source package
php7.0-sqlite3 - SQLite3 module for PHP
php7.0-mysql - MySQL module for PHP
php7.0-opcache - Zend OpCache module for PHP

Now install modules which is required for you.

$ sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi
2017/05/21 12:12 2017/05/21 12:12

Install PHP 5.4

Use the following set of command to add PPA for PHP 5.4 in your Ubuntu system and install PHP 5.4.

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ondrej/php5-oldstable
$ sudo apt-get update
$ sudo apt-get install -y php5

Check Installed PHP Version:

# php -v

PHP 5.4.35-1+deb.sury.org~precise+1 (cli) (built: Nov 19 2014 19:34:07)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

Install PHP 5.5

Use the following set of command to add PPA for PHP 5.5 in your Ubuntu system and install PHP 5.5.

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install -y php5.5

Check Installed PHP Version:

# php -v

PHP 5.5.19-1+deb.sury.org~precise+1 (cli) (built: Nov 19 2014 19:32:57)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies

Install PHP 5.6

Use the following set of command to add PPA for PHP 5.6 in your Ubuntu system and install PHP 5.6.

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install -y php5.6

Check Installed PHP Version:

# php -v

PHP 5.6.3-1+deb.sury.org~precise+1 (cli) (built: Nov 19 2014 19:34:53)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies
2017/05/21 12:12 2017/05/21 12:12

Installing Nginx with PHP 7 and MySQL 5.7 (LEMP) on Ubuntu 16.04 LTS

Nginx(발음 “engine x”)는 무료이며 오픈소스이고 높은 성능의 HTTP 서버이다. Nginx는 매우 적은 자원을 사용하면서 안정적이고 풍부한 기능들을 가지고 있다. 또한 설정도 매우 간단하다. 본 지침서는 우분투 16.04 서버에서 PHP 7(PHP-FPM), MySQL 5.7을 지원하는 Nginx 설치를 설명하고 있다. LEMP = Linux + nginx(engine x) + MySQL + Linux

1. 준비 단계

이 지침서에 호스트 이름은 server1.example.com, 아이피 주소는 192.168.1.100을 사용한다. 이 설정은 사용자마다 다르므로 적절하게 수정 후 사용해야 한다. 이 지침서의 모든 단계는 루트 권한으로 진행하였다. 다음과 같이 루트(root)로 :

sudo -s

2. MySQL 5.7 설치

MySQL을 설치하기 위해서 다음과 같이 실행한다. [root@server1 ~]#은 터미널의 프롬프트이다. 타이핑하는 것은 아니다.

[root@server1 ~]# apt-get -y install mysql-server mysql-client

New password for the MySQL "root" user: <-- yourrootsqlpassword
Repeat password for the MySQL "root" user: <-- yourrootsqlpassword

데이터베이스의 보안을 위해 익명사용자와 테스트 데이터베이스를 제거하기 위해 다음을 실행한다.

[root@server1 ~]# mysql_secure_installation

위의 명령을 실행 후 다음의 몇 가지 질문에 답을 하자.

Enter password for user root: <-- Enter the MySQL root password
...
Press y|Y for Yes, any other key for No: <-- Press y if you want this function or press Enter otherwise.
...
Change the password for root ? ((Press y|Y for Yes, any other key for No) : <-- Press enter
...
Remove anonymous users? (Press y|Y for Yes, any other key for No) : <-- y
...
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : <-- y
...
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : <-- y
...
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : <-- y

3. Nginx 설치

Apache2가 이미 설치되어 있다면 Nginx를 설치하기 전에 Apache2를 제거한다.

[root@server1 ~]# service apache2 stop
[root@server1 ~]# update-rc.d -f apache2 remove
[root@server1 ~]# apt-get remove apache2

이제 Nginx를 설치한다.

[root@server1 ~]# apt-get -y install nginx
// 시작은 다음과 같이
[root@server1 ~]# service nginx start

제대로 설치되었는지 확인하기 위해 웹 브라우저에서 주소를 입력해 본다 (예, http://192.168.1.100). 기본 페이지가 보이면 설치 성공이다. 그리고 Nginx의 웹 문서의 기본 디렉터리는 /var/www/html 이다.

4. PHP 7 설치

PHP-FPM(FastCGI Process Manager)를 이용한다1. FastCGI 데몬 소켓은 /run/php/php7.0-fpm.sock 에서 확인할 수 있다.

[root@server1 ~]# apt-get -y install php7.0-fpm

5. Nginx 설정

vi(또는 nano)편집기를 이용하여 다음의 설정파일을 편집한다2.

[root@server1 ~]# vi /etc/nginx/nginx.conf
[root@server1 ~]# vi /etc/nginx/sites-available/default

예를들면 기본 디렉터리는 설정은 root /var/www/html;이다. 그리고 php 연동을 위해 다음과 같이:

[root@server1 ~]# vi /etc/php/7.0/fpm/php.ini
// 다음과 같이 설정한다.
cgi.fix_pathinfo=0:
[root@server1 ~]# service nginx reload
[root@server1 ~]# service php7.0-fpm reload

이제 /var/www/html/에 info.php 파일을 하나 만들고 웹에서 확인 : <?php phpinfo(); ?>

6. PHP에서 MySQL 지원 및 기타 주요기능 설치

[root@server1 ~]# apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache  php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext

[root@server1 ~]# service php7.0-fpm reload

7. 기타 설정 (옵션)

TCP Connection

[root@server1 ~]# vi /etc/php/7.0/fpm/pool.d/www.conf
...
;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000
...
[root@server1 ~]# php7.0-fpm reload
[root@server1 ~]# vi /etc/nginx/sites-available/default
...
fastcgi_pass 127.0.0.1:9000;
...
[root@server1 ~]# service nginx reload
  1. PHP-FPM의 자세한 내용은 https://php-fpm.org/를 참고하자. ↩︎
  2. 설정파일 예제, https://www.nginx.com/resources/wiki/start/topics/examples/full/ ↩︎
2017/05/21 12:11 2017/05/21 12:11
다들 아시겟지만 이전에 디비접속 실패할때 쓰던 꼼수입니다. 
// 디비 접속 
@$sql = mysqli_connect($db_host,$db_user,$db_pw,$db_name); 
// 에러 발생시 2초 후에 페이지 릴로드 
if(mysqli_connect_errno()){echo"<script>re=setTimeout(\"location.reload()\",2000);</script>";exit;} 
접속 실패시 2초후에 페이지 릴로드되도록 하는 팁입니다. 
필요하신분들 유용하시길
2017/04/18 16:19 2017/04/18 16:19
그누보드의 경우 몇개의 큰 테이블의 성능 때문에 고통을 받고 있는데 
이런 부분이 테이블 파티셔닝을 통해서 간단하게 해결 가능하구요 
테이블 파티셔닝은 MySQL 5.7 이상의 버젼에서 사용할 것을 추천 드립니다. 
- 년도를 기준으로 파티셔닝 (point 갯수가 많은 경우는 월별/일별로 파티셔닝) 
- 개인정보 보호를 위한 정보의 최대 보유기간인 5년을 경과하는 것은 table drop 
1. g4_visit 테이블의 record 갯수와 가장 오래된 vi_date를 확인 
있는 날짜부터 파티셔닝을 하면 되니까... 
2. table structure를 확인 
primary key를 확인. 그누보드 기본은 vi_id 입니다. 
3. vi_date를 primary key에 추가 
파티셔닝의 기준이 되는 날짜가 primary key에 들어 있어야 합니다. 
ALTER TABLE `g4_visit` DROP PRIMARY KEY , 
ADD PRIMARY KEY ( `vi_id` , `vi_date` ) 
4. SQL script를 작성 
ALTER TABLE g4_visit 
PARTITION BY RANGE ( TO_DAYS(vi_date) ) ( 
PARTITION vi2007 VALUES LESS THAN (TO_DAYS('2008-01-01')), 
PARTITION vi2008 VALUES LESS THAN (TO_DAYS('2009-01-01')), 
PARTITION vi2009 VALUES LESS THAN (TO_DAYS('2010-01-01')), 
PARTITION vi2010 VALUES LESS THAN (TO_DAYS('2011-01-01')), 
PARTITION vi2011 VALUES LESS THAN (TO_DAYS('2012-01-01')), 
PARTITION vi2012 VALUES LESS THAN (TO_DAYS('2013-01-01')), 
PARTITION vi2013 VALUES LESS THAN (TO_DAYS('2014-01-01')), 
PARTITION vi2014 VALUES LESS THAN (TO_DAYS('2015-01-01')), 
PARTITION vi2015 VALUES LESS THAN (TO_DAYS('2016-01-01')), 
PARTITION vi2016 VALUES LESS THAN (TO_DAYS('2017-01-01')), 
PARTITION vi2017 VALUES LESS THAN (TO_DAYS('2018-01-01')), 
PARTITION vi2018 VALUES LESS THAN (TO_DAYS('2019-01-01')), 
PARTITION vi2019 VALUES LESS THAN (TO_DAYS('2020-01-01')), 
PARTITION vi2020 VALUES LESS THAN (TO_DAYS('2021-01-01')), 
PARTITION vi2021 VALUES LESS THAN (TO_DAYS('2022-01-01')), 
PARTITION vi2022 VALUES LESS THAN (TO_DAYS('2023-01-01')), 
PARTITION vi2023 VALUES LESS THAN (TO_DAYS('2024-01-01')), 
PARTITION vi2024 VALUES LESS THAN (TO_DAYS('2025-01-01')), 
PARTITION vi2025 VALUES LESS THAN (TO_DAYS('2026-01-01')), 
PARTITION vi2026 VALUES LESS THAN (TO_DAYS('2027-01-01')), 
PARTITION vi2027 VALUES LESS THAN (TO_DAYS('2028-01-01')), 
PARTITION vi2028 VALUES LESS THAN (TO_DAYS('2029-01-01')), 
PARTITION vi2029 VALUES LESS THAN (TO_DAYS('2030-01-01')), 
PARTITION vi2030 VALUES LESS THAN (TO_DAYS('2031-01-01')), 
PARTITION vimax VALUES LESS THAN MAXVALUE 
); 
*** 주의사항 *** 
g4_visit의 경우는 primary key의 생성을 할 때 
DB의 접속을 멈추지 않으면 
중복 key가 발생해서 primary key의 생성이 안됩니다. 
g4_point 테이블과 달리 
반드시 DB를 멈춘상태에서 작업을 해야 합니다. 
튜닝의 효과는 서프라이즈이며 
g4_point, g4_board_new 등의 테이블도 튜닝하면 좋습니다.
2017/04/18 16:16 2017/04/18 16:16
사용자 삽입 이미지

1. HTTPS + non-www

 

server {

    listen 80;

    server_name wsgvet.com www.wsgvet.com;

    location / {

        rewrite       ^/(.*)$ https://wsgvet.com/$1 permanent;

    }

}

 

server {

listen 443 ssl http2;

server_name wsgvet.com www.wsgvet.com;

...

if ($host != 'wsgvet.com' ) {

        rewrite          ^/(.*)$  https://wsgvet.com/$1 permanent;

    }

...

}

 

2. HTTPS + www

 

server {

    listen 80;

    server_name www.wsgvet.com wsgvet.com;

    location / {

        rewrite       ^/(.*)$ https://www.wsgvet.com/$1 permanent;

    }

}    

 

server {

listen 443 ssl http2;

server_name www.wsgvet.com wsgvet.com;

...

if ($host != 'www.wsgvet.com' ) {

        rewrite          ^/(.*)$  https://www.wsgvet.com/$1 permanent;

    }

...

}

 

 

3. 결론

 

성능에는 별 차이없는 것 같습니다만, 예전에는 두번 거쳐서 넘어가는 느낌이라면 

 

지금은 단 한번의 리라이트로 넘어가기 때문에 더 나은 것 같습니다.

2017/03/18 13:23 2017/03/18 13:23
후배가 우분투 설정 해달라고 해서 설정해주고. 돌아왔는데.  

후배 친구에게 계정을 생성해  주었다고 한다. 그 친구가 상위 폴더까지 모두 접근해서.

DB  정보등을 확인해서 SSH 로 접근해 ROOT 권한으로 로그인까지 성공 했다고 한다. 그래서 . 전화 상으로  설명하기 힘들듯 하여 내용을 정리 한다.

1.
우분투 설치후 계정 생성 간단하다 

adduser 생성하고자하는아이디

위내용을 입력하면 즉시 사용할 암호를 물어보고 암호를 입력하면 엔터만 치고 마지막 y 하면 계정 생성이 끝난다.

이렇게 하면 사용자는 생성된 아이디 비밀번호로 로그인을 할수 있다. 하지만 상위 폴더 접근이 가능하다 이를 해결하기 위해서  여러가지 방법이 있지만 간단한 방법 권한 설정으로 처리 하는 방법을 설명한다.

2.
최상위 퍼미션 조정 
chmod 711 /
chmod 711 /home
chmod 711 /etc

이렇게 하면 상위 폴더 접근을 막을수 있다 하지만. 문제는 생성된 아이디로 sftp 접속후 파일을 수정 하려고 하면 수정이 안된다 . 

생성된 계정 폴더 소유권자가 아마 root 로 되어 있기 때문이다. 위에서 생성된 계정으로 소유권을 바꾸면 된다.

예) 생성된 계정 이름이 youngsam 이라고 하자

chown -R youngsam:youngsam /home/youngsam/www

명령어가 될것이다 . 마지막 www 부분이 빠질수도 있다. 이후 ls-al 명령어로 소유권이 변경된 것을 확인 할수 있다.
2017/03/10 14:17 2017/03/10 14:17

XPEnology 포럼에서 JUN이라는 유저분이 시놀로지 나스 운영체제인 DSM 커널을 동적으로 패치하는 리눅스 커널 모듈을 개발했다고 합니다.

 

.. 외장하드에 나스 자료를 급하게 백업하고 XPEnology DSM 6.0.2 설치해봤습니다덕분에 BLOG파일을 날려먹었네요

 

설치하고 몇일동안 만지작 거려보니 XPEnology DSM 5.2보다 빠르고 안정적이네요.

 

XPEnology DSM 6.0.2 준비물

 

XPEnology DSM 6.0.2 준비물

 

서버1(블로그 자료실)

 

DS3615xs 6.0.2 Jun's Mod(부트로더) : 다운로드

 

DSM 소프트웨어(운영체제) : 다운로드

 

Win32DiskImager(프로그램) : 다운로드

 

USB View(프로그램) : 다운로드

 

Osfmount(프로그램) : 32비트  64비트

 

 

서버2(구글 드라이브)

 

DS3615xs 6.0.2 Jun's Mod(부트로더) : 다운로드

 

DSM 소프트웨어(운영체제) : 다운로드

 

Win32DiskImager(프로그램) : 다운로드

 

USB View(프로그램) : 다운로드

 

Osfmount(프로그램) : 다운로드

 

 



 

 

XPEnology DSM 6.0 설치하는법

 

 

<사진에 있는 이름과 다운받은 부트로더 이름이 다를수있습니다>

 

1. Win32DiskImager 프로그램을 실행후 부트로더 이미지 경로선택과 USB 디바이스를 선택후 Write(=쓰기)버튼을 클릭해주세요.

 

 

2. 경고버튼이 뜨면 Yes(=)버튼을 클릭해주세요.

 

 

3. 부트로더 이미지파일을 USB 기록중이니 잠시 기다려주세요.

 

 

4. 정상적으로 기록이 끝나면 OK(=알겠음)버튼을 클릭해주세요.

 

[BONUS] 만약, 부트로더 USB 만들고나서 인식이 안되는 경우에는 ofsmount프로그램을 이용해 마운팅 작업해주세요.

 

 

이전 XPEnology(헤놀로지) 설치 방법과 다르게 부트로더 파일을 수정해서 속이는 과정을 거쳐야합니다.

 

5. USB VIEW 프로그램을 실행후 부트로더 이미지를 기록한 USB 선택해주세요.

 

6. idVendor idProduct 메모장에 기록해주세요.

 

 

 

7. /grub 경로에 있는 grub.cfg파일을 메모장이나 에디터플러스 열어주세요.

 

8. set vid=0x058f 부분을 아까 기록해둔 idVendor 값을 교체해주세요.

 

9. set pid=0x6387 부분을 아까 기록해둔 idProudct 값으로 교체해주세요.

 

10. SataPortMap=1 부분을 연결된 하드디스크 개수만큼 수정해주시고 저장해주세요.

 

samsung|SM-G925K|1/30sec|F/1.9|ISO-500

< 바이오스/UEFI 마다 다르게 나올수있습니다 >

 

11. 바이오스/UEFI 설정 들어가신후 부팅 옵션 1순위를 부트로더 USB 선택해주세요.

 

samsung|SM-G925K|1/10sec|F/1.9|ISO-250

< 부트로더 버젼에 따라서 다르게 나올수있습니다>

 

11. 정상적으로 부트로더 USB 부팅이 되면 사진처럼 나타납니다.

 

 

12. 브라우저에 아래 주소를 입력해주신후 자작나스로 자동연결되면 설정버튼을 눌러주세요.

 

주소 : http://find.synology.me 혹은 http://diskstation:5000

 

 

 

 

   

13. 다운받으신 DSM 소프트웨어(운영체제) 경로선택후 지금설치 버튼을 클릭해주세요.

 

 

14. " 하드 디스크의 모든 데이타가 제거된다는 사실을 이해합니다. " 체크후 확인버튼을 클릭해주세요.

 

 

15. 소프트웨어(운영체제) 설치가 끝나면 자동으로 설정창이 연결되니 창을 끄지말아주세요.

 

 

16. 서버이름과 사용자이름, 패스워드 확인을 기입해주신후 다음 버튼을 클릭해주세요.

 

 

17. 다음 버튼을 클릭해주세요.

 

 

18. ' 수동으로 DSM 업데이트 다운로드 설치 ' 선택후 다음버튼을 클릭해주세요.

 

 

19. 퀵커넥트 서비스(기능) 정품 시놀로지 사용자만 이용가능하므로 ' 단계 건너뛰기' 클릭해 넘겨주세요.

 

 

20. ' 단계를 건너뛰면 인터넷을 통해 원격으로 Diskstation 액세스하기 위해 포트 전달을 설정해야 합니다.' 팝업창이 뜨면 예버튼을 클릭해서 넘겨주세요.

 

 

21. 한번 버튼을 클릭해주세요.

 

 

정상적으로 XPEnology DSM 6.0.2 설치가 끝났습니다.

2017/03/03 15:14 2017/03/03 15:14

오랜만에 데이터 베이스에 관련해여 포스트를 작성한다.
조금씩 공부하고 포스트를 올리는 것보다는 몇 단원정도 전체를 흝어본후 포스트를 쓰는게 더 나을 것 같아서 근간에 글을 올리지 않았다 ㅋ

SELECT

이번에는 Select에 대해 알아보자.

Select문은 원하는 자료를 찾아서 출력해주는 명령어이다.
사용법은 단순하다.

SELECT [Field(column)] FROM [table_name] WHERE [조건들.......]

위는 해당 테이블 내의 조건에 맞는 필드들을 출력해주는 것이다. 출력은 열에 맞추어 출력하고 조건은 행의 자료에 맞춰 출력이 된다.

보통 많이 쓰이는 예를 들어보자.


테이블은 미리 작성해둔 것이고, 명령어 select * from easy_drinks 에서 easy_drinks는 테이블 네임이고 "*" 은 모든 Field=column을 출력하겠다는 뜻이다.

위처럼 출력하면 지저분하고 원하는 자료를 검색하기가 쉽지 않다.
그래서 사용되는 것이 바로 WHERE절이다. 이 WHERE절은 DELETE절이나 UPDATE문등 다양하게 쓰이기 때문에 잘 알아둬야 한다. 솔직히 프로그래밍 언어에 익숙한 사람에게는 별 것 없고, 조건 절이라고 생각하면 된다. select절 에서는 어떤 조건으로 검색된 Record의 Field를 출력할 것인지를 판별한다.

그럼 위의 보기 지저분한 소스를 (확인하고자하는 조건)에 맞추어 SELECT를 해보자.


급하게 쓰느라 소문자로 써버렸다 -.-; 사실 소문자, 대문자는 단지 가독성을 위한것이다.

위 결과만 보면 일단 지저분한 상단보다 단순하게 나온 것을 알 수 있을 것이다. 
내가 테이블로부터 알고 싶은 것은 가게 이름과 요리들이다. 그리고 조건은 싸구려 요리들만 검색해 보았다.

SELECT drink_name,main,second FROM easy_drinks WHERE amount1<2.5 AND amount2<4.0;

처음의 밑줄친 곳은 보여질 Field의 이름이고 두번째 밑줄은 테이블 명이다.
내가 원하는 것은 가게 이름과 요리들이기 때문에 drink_name과 main, second를 설정하였다. 가로 없이 쉼표로만 표현 가능하다.
easy_drinks는 단순히 테이블 명이다.

WHERE 이하는 검색 조건으로서 record 내의 값을 분류하게 된다.
내가 설정한 조건은 메인 요리가 2.5달러보다 싸고 세컨요리가 4.0달라보다 싼요리다.

※ 참고할 것 : 문자열이나 문자를 my-sql에서는 '로 시작 종료를 하는데 그럼 문자열 내의 '는 어떻게 처리하는지가 문제가 된다. 그 점은 여타 언어와 같이 \'을 사용한다. 역슬래시 '를 사용하는 것이다. 그러면 단순 문자 '로 처리된다. 그렇지 않으면 '(작은따옴표)의 개수 오류로 에러처리가 되거나 다음 쉼표를 기다리는 대기 열만 계속해서 나올 것이다.

WHERE

아마 WHERE절 사용법은 딱 보면 감이 올 것이다.
조건이 하나일 경우에는 하나만 사용하면 되고 여러개일 경우에는 AND와 OR을 사용할 수 있다.

AND는 둘다 참일 경우 : (다른말로) 첫번째가 거짓이면 검사 종료 (라고 표현하기도 한다.)
OR은 둘중 하나만 만족할 경우 : (다른말로)  첫번째가 참이면 검사 종료 (라고 표현하기도 한다.)

비교연산자는 =, <>, <, > , <=, >= 가 존재한다.
여타 언어랑 유의깊게 봐야할 것은 =이 ==과 같이 쓰인다는 것이다. 비교연산자나 바인딩할때도 같이 사용된다. 또한 !=가아니라 <>가 사용된다. ( 둘다 같지 않다의 의미)

만약 찾으려고 하는 VALUES값이 NULL이면 어떻게 해야 할 것인가
생각하는 것처럼 amount1=NULL 또는 amount1=0 또는 amount1='NULL'을 하면 3게다 되지 않는다.
NULL이 C,C++처럼 0으로 처리되지 않기 때문에 안되고 NULL은 정의되지 않은 값으로 나온다.

이 경우에는 "IS NULL"을 사용한다. 


위를 보면 is null을 통해 age가 널처리된 값을 뽑아낼 수 있다. 

자료를 검색할때 단어내의 원하는 부분이 있는 단어를 원할 때가 있다. 즉 원하는 문자의 일부만으로 결과를 찾아내고 싶을때는 와일드카드 문자를 사용할 수 있다.

이때 사용되는 것은 "LIKE"이다.

LIKE다음에는 %와 _ 두개의 와일드 카드가 사용된다.

% : 다수의 불특정 문자를 의미
_  : 하나의 불특정 문자를 의미

은근히 유용하게 쓰인다. 한번 사용해 보자.


보는 바와 같이 원하는 결과를 얻어낼 수 있다.
LIKE가 등호 대신에 사용된다고 생각하면 이해하기 편할 것이다. '내용~~' 이로 이루어지듯이 문자나 문자열을 대상으로만 가능하다.

어떤 사이의 구간을 표시하기 위해서는 BETWEEN 'A' AND 'B' 가 쓰인다. 물론 A와 B는 정수이다.(문자도 되긴된다. 아스키 코드기준값으로...)
숙어 뜻대로 A와 B사이의 값을 골라준다.

사용예를 보자.


BETWEEN 20 AND 30은 20과 30사이의 값을 찾아달라는 것이다. age 다음에 between이 나왔으므로 등호연산자(=)처럼 사용되었다고 생각해도 된다. 이런명령어는 기본이 AND OR등으로 이루어져있는데 사용자 편의를 위해 등장한 것이다.

다음으로 알아볼 것은 IN이다. 이것은 여러 OR절들의 집합체라고 할 수 있다. 아니 OR의 집합들의 간소화라고 표하는게 더 어울릴 것이다.
사용 예를 보자.


이는 계속 사용해 왔던 shin444 테이블을 select한 것이다. 
WHERE age IN('26','28','12')를 말로 풀어서 쓰면 다음과 같다.

age 필드내에 26이거나 28이거나 12의 값이 있다면 선택하라.

이는 OR문으로 여러개를 선택해야할 때 IN을 통해 간단하게 표현된다. IN또한 등호처럼 생각하면 된다^^;


알아본 WHERE내에 특수한 경우는 LIKE와 BETWEEN, IN 3가지가 있었다.

마지막 한가지는 NOT이다. 이 NOT은 말그대로 부정을 의미하고 이를 이용하여 하나의 표현을 다른표현으로서 가능하게 한다. 이는 곧 쿼리문 간소화에도 영향을 끼친다. 
NOT의 위치는 WHERE 바로 뒤에 사용된다. 모든 기본위치는 NOT이 WHERE뒤에 있는것이고 가끔 예외가 있다. 특수한 예는 NOT IN과 IS NOT NULL 정도가 있다.
헷갈린다면 WHERE다음에 무조건 NOT을 사용하면 될 것이다.

2017/02/28 20:39 2017/02/28 20:39

우분투를 설치후 매번 admin으로 접속하기는 찜찜(?)하니 계정을 추가하여 접속을 해보도록 하자.

 

우분투에서는 계정을 생성하는 명령어가 두가지가 있다. 바로 adduser와 useradd이다. 

두 명령어 모두 계정을 추가하는 명령어지만 약간의 차이점이 있다. 

adduser의 경우 명령어 실행시 기본 계정정보를 같이 생성해주지만

useradd의 경우 계정만 생성하며 기타 다른 정보를 수동으로 생성 및 설정해주어야 한다. 

하나하나 실행하면서 살펴보도록 하자.

 

1. adduser [계정이름] - 계정 추가

- 계정생성시 비밀번호 까지 입력받으며 기본정보를 바로 입력 시켜줄수 있다. 홈 디렉토리 또한 자동으로 생성된다.

$   adduser mirUseradd
'miradduser' 사용자를 추가 중...
새 그룹 'miradduser' (1002) 추가 ...
새 사용자 'miradduser' (1002) 을(를) 그룹 'miradduser' (으)로 추가 ...
'/home/miradduser' 홈 디렉터리를 생성하는 중...
'/etc/skel'에서 파일들을 복사하는 중...
새 UNIX 암호 입력:
새 UNIX 암호 재입력:
passwd: password updated successfully
Changing the user information for miradduser
Enter the new value, or press ENTER for the default
    Full Name []: Mir
    Room Number []: 2000
    Work Phone []: 0101111111
    Home Phone []: 0102222222
    Other []: test
정보가 올바릅니까? [Y/n] y

이렇게 adduser로 계정을 생성시 우선 암호입력창이 뜨고 후에 부가적인 Commant 입력창이 생성된다.

 

2. useradd [계정이름] - 계정 추가

- 순수 계정만 생성해주고 기본 셀인 sh가 할당되며 홈 디렉토리와 패스워드는 따로 설정해줘야 한다.

$   useradd mirUseradd

useradd로 계정을 추가시 따로 결과 메세지나 입력메세지가 없다.

이제 이 두가지 계정을 한번 비교해보도록 하자

 

3. /etc/passwd - 계정 정보 파일

- 사용자 인증에 필요한 계정 정보를 가지고 있다. cat 명령어로 내용을 살펴보자.

$   cat /etc/passwd
[생략]...
mirUseradd:x:1000:1000::/home/mirUseradd:/bin/sh
miradduser:x:1002:1002:Mir,2000,0101111111,0102222222,test:/home/miradduser:/bin/bash         

맨 아래줄에 보면 mirUseradd와 miradduser 계정이 추가된것이 보인다.

하나하나 자세히 분석해보자.

miradduser:x:1002:1002:Mir,2000,0101111111,0102222222,test:/home/miradduser:/bin/bash

mirUseradd:x:1000:1000::/home/mirUseradd:/bin/sh

- 사용자 계정을 표시한다.

 

miradduser:x:1002:1002:Mir,2000,0101111111,0102222222,test:/home/miradduser:/bin/bash

mirUseradd:x:1000:1000::/home/mirUseradd:/bin/sh

- 비밀번호를 표시한다. (모두 x로 표시되며 자세한 비밀번호는 아래에서 검색해보겠다.)

 

miradduser:x:1002:1002:Mir,2000,0101111111,0102222222,test:/home/miradduser:/bin/bash

mirUseradd:x:1000:1000::/home/mirUseradd:/bin/sh

- 사용자 ID를 표시한다. (0 : 관리자, 1~499 : 시스템 계정, 500~ : 일반 계정)

 

miradduser:x:1002:1002:Mir,2000,0101111111,0102222222,test:/home/miradduser:/bin/bash

mirUseradd:x:1000:1000::/home/mirUseradd:/bin/sh

- 그룹 ID를 표시한다.

 

miradduser:x:1002:1002:Mir,2000,0101111111,0102222222,test:/home/miradduser:/bin/bash

mirUseradd:x:1000:1000:(null):/home/mirUseradd:/bin/sh

- 계정정보(Comment)를 표시한다. 

 

miradduser:x:1002:1002:Mir,2000,0101111111,0102222222,test:/home/miradduser:/bin/bash

mirUseradd:x:1000:1000::/home/mirUseradd:/bin/sh

- 홈 디렉토리를 표시한다.

 

miradduser:x:1002:1002:Mir,2000,0101111111,0102222222,test:/home/miradduser:/bin/bash

mirUseradd:x:1000:1000::/home/mirUseradd:/bin/sh

- 로그인 쉘을 표시한다.

분명 위에서 useradd 명령은 홈 디렉토리를 따로 설정해줘야 된다고 말했지만 계정정보를 보면 홈디렉토리가 보인다.

하지만 실제로 홈 디렉토리를 가볼려고 하면 디렉토리가 없다고 표시된다.

$   cd /home/mirUseradd
-bash: cd: /home/mirUseradd: 그런 파일이나 디렉터리가 없습니다    

즉 설정된 홈디렉토리를 생성시켜주거나 다른 홈디렉토리를 생성하여 설정값을 바꿔줘야 한다.

 

4. /etc/shadow - 암호 정보 파일

- 사용자 인증에 필요한 암호 정보를 가지고 있다. cat 명령어로 내용을 살펴 보자.

$   cat /etc/shadow
[생략]...
miradduser:$6$..[생략]..vE.:16596:0:99999:7:::
mirUseradd:!:16595:0:99999:7:::

암호정보도 하나하나 분석해보자.

miradduser:$6$..[생략]..vE.:16596:0:99999:7:::

mirUseradd:!:16595:0:99999:7:::

- 사용자 계정을 표시한다.

 

miradduser:$6$..[생략]..vE.:16596:0:99999:7:::

mirUseradd:!:16595:0:99999:7:::

- 암호화 시킨 패스워드를 표시한다. (useradd명령어로 추가한 계정에는 패스워드가 없어서 !로 표시됨)

 

miradduser:$6$..[생략]..vE.:16596:0:99999:7:::

mirUseradd:!:16595:0:99999:7:::

- 1970년 1월 1일 기준으로 패스워드를 수정한 마지막 날짜를 계산하여 표시한다.

 

miradduser:$6$..[생략]..vE.:16596:0:99999:7:::

mirUseradd:!:16595:0:99999:7:::

- 패스워드를 변경하기위한 최소 사용일수를 표시한다.

 

miradduser:$6$..[생략]..vE.:16596:0:99999:7:::

mirUseradd:!:16595:0:99999:7:::

- 패스워드를 사용할수 있는 최대 사용일수를 표시한다.

 

miradduser:$6$..[생략]..vE.:16596:0:99999:7:::

mirUseradd:!:16595:0:99999:7:::

- 패스워드 만기일 전에 경고메세지를 몇일전 부터 알려줄지 표시한다.

 

miradduser:$6$..[생략]..vE.:16596:0:99999:7:(null)::

mirUseradd:!:16595:0:99999:7:(null)::

- 로그인 차단 일수를 표시한다. (현재는 아무런 정보가 없어서 임의로 null로 표시해주었다.)

 

miradduser:$6$..[생략]..vE.:16596:0:99999:7::(null):

mirUseradd:!:16595:0:99999:7::(null):

- 얼마간 로그인 차단을 시킬지 표시한다. (현재는 아무런 정보가 없어서 임의로 null로 표시해주었다.)

 

miradduser:$6$..[생략]..vE.:16596:0:99999:7:::(null)

mirUseradd:!:16595:0:99999:7:::(null)

- 현재는 사용되지 않는 정보이다.

 

 

5. usermod [옵션] [계정명]- 계정 수정

- 옵션과 계정명을 받아서 해당 계정을 옵션의 명령에 따라 처리 한다.

-c : [Comment] - 계정 Comment를 수정한다.

-d : [Home Diretory] - 계정 홈 디렉토리를 수정한다.

-e : [Expiredate] - 계정 만기 날짜를 수정한다. 

-L : [Lock User] - 사용자 계정을 잠근다.

-U : [Unlock] - 잠금처리되어 있는 계정을 풀어준다.

-h : [Help] - 명령어 옵션 설명을 표시해준다.

 

위 옵션이외의 많은 옵션이 있으며 -h를 이용하여 알아보는것도 좋다.

 

몇몇 명령어를 테스트 해볼겸 useradd로 생성시킨 계정에 Comment를 넣어보자.

$   usermod -c Comment_Test mirUseradd

확인은 /etc/passwd를 살펴보면 된다.

[생략]...
mirUseradd:x:1000:1000:Comment_Test:/home/mirUseradd:/bin/sh
miradduser:x:1002:1002:Mir,2000,0101111111,0102222222,test:/home/miradduser:/bin/bash

새로운 Comment가 추가된것을 확인할수 있다.

 

6. passwd [계정명] - 계정 암호 수정

- 계정 Password를 수정시 usermod -p를 사용하면 /etc/shadow를 직접 바꾸게 되기때문에 실제로 바꾼 Password로 로그인을 할수가 없다. 그래서 passwd 명령어를 사용하여 수정해주어야 한다.

$   passwd  mirUseradd
새 UNIX 암호 입력:
새 UNIX 암호 재입력:
passwd: password updated successfully

새 암호 입력후 확인을 위해 /etc/shadow를 살펴보자

[생략]...
mirUseradd:$6$Vx23FZI.$6pguZVI5T9oO7nVf7N7cURTqrPAvBj4nT.6LEuIY99fZJxvRabKNp3OuK4jc2TYeE/mE6nlKqy0e0ZXiMUhrs.:16596:0:99999:7:::
miradduser:$6$uqJt2OQg$ZZtpcfz7WMdvOx1gmDzlYEuM4l1vKNyF9.SdkqZwsNIw0z8kO50O8nNmB7fj.tOHmXbFdu9Ty0M1hv0brymZR0:16596:0:99999:7:::

위에서 살펴볼때는 아무 설정도 되어 있지 않았지만 현재는 암호화되어 Password가 들어가 있는것이 확인 된다.

 

7. deluser [계정명] - 계정 삭제

- 계정을 삭제하는 명령어이다. 

기본적으로 계정만 삭제되며 계정에 관련된 폴더, 파일을 삭제할려면 옵션을 주어야 한다.

$   deluser mirUseradd
$   deluser -remove-all-files miradduser

useradd로 추가한 계정은 어차피 계정 정보밖에 없으므로 옵션을 주지 않고 삭제하였고 

adduser로 추가한 계정은 홈디렉토리까지 삭제하기 위해 옵션을 주었다.

만약 옵션을 주지 않고 삭제한경우 홈디렉토리가 그대로 남아있는걸 확인할수 있다.

root@mirwebma001:~# ls /home
miradduser

 

 

 

리눅스 계정관리에 관한 기본적인 명령어를 살펴보았다.

다음번엔 리눅스 계정에 sudo 권한 부여에 대해 알아보겠다.

 

참고로 useradd로 계정을 생성할경우 다양한 옵션값으로 생성시 모든 정보를 입력할수도 있지만

특별한 경우가 아니면 adduser 명령어로 그냥 자동으로 생성되게 하는게 편한듯 하다.

2017/02/27 17:34 2017/02/27 17:34

Secure CRT로 솔라리스 10에 접속해서, 유니코드(UTF-8)로 된 한글을 보려면

1. 계정 환경파일

##### ANSI (KSC-5601)

#setenv LANG ko; /bin/stty cs8 -istrip defeucw

##### unicode (UTF-8)
setenv LANG ko.UTF-8; /bin/stty cs8 -istrip \defeucw

##### 영문 전용
#setenv LANG C; /bin/stty cs7 istrip defeucw

2. Secure CRT 옵션 설정 메뉴 중에

Session Option -> Emulation -> Advanced

또는

Session Option -> Appearance -> Fonts -> Character

부분을 'UTF-8'로 변경

* 아래 alias를 환경파일에 넣어두면, 조금 편하게 전환할 수 있다. (물론 Secure CRT 옵션도 바꿔야 한다.)

alias euckr "setenv LANG ko; /bin/stty cs8 -istrip defeucw"
alias utf8 "setenv LANG ko.UTF-8; /bin/stty cs8 -istrip \defeucw"
alias asc "setenv LANG C; /bin/stty cs7 istrip defeucw"

* 상기 Secure CRT 옵션은 세션(Session)별로 설정하는 것이다. 따라서, 유니코드용 세션을 하나 더 추가해서 창을 2개 열어 놓고 전환해 가면서 사용하면, 편하게 사용할 수 있다.

-------------------------------------------------------

Linux vi editor

:set enc=utf8
:set enc=cp949

2012/11/01 17:27 2012/11/01 17:27

샘플 테이블

test1)
 
+--------+------+
 
| a | b |
 
+--------+------+

| 금강 | 1 |
 
| 한강 | 2 |
 
| 대동강 | 3 |
 
| 두만강 | 4 |
 



test2)
 
+------+--------+
 
| b | d |
 
+------+--------+
 
| 1 | 백두산 |
 
| 2 | 금강산 |
 
| 5 | 지리산 |
 
| 6 | 한라산 |
 


1) INNER JOIN
 
Inner join를 이용하여 앞 예제와 동일한 결과를 얻을 수 있는 예는 다음과 같다.

이는 select 문에서 join에 사용할 컬럼명을 ON test1.b=test2.b와 같이 직접 지정해도 된다.
 
【예제】
 
mysql> select * from test1 inner join test2 using(b);
 
+------+------+------+--------+
 
| a | b | b | d |
 
+------+------+------+--------+
 
| 금강 | 1 | 1 | 백두산 |
 
| 한강 | 2 | 2 | 금강산 |
 
+------+------+------+--------+
 
2 rows in set (0.00 sec)
 


mysql> select * from test1 inner join test2 on test1.b=test2.b;
 
+------+------+------+--------+
 
| a | b | b | d |
 
+------+------+------+--------+
 
| 금강 | 1 | 1 | 백두산 |
 
| 한강 | 2 | 2 | 금강산 |
 
+------+------+------+--------+
 
2 rows in set (0.00 sec)
 


mysql> select * from test1, test2 where test1.b=test2.b;
 


mysql>
 


2) NATURAL JOIN
 
두 테이블에 같은 이름을 가진 컬럼이 있고, 이 컬럼을 기준으로 join을 하려면 natural join
 
을 사용한다.
 
【예제】
 
mysql> select * from test1 natural join test2;
 
+------+------+------+--------+
 
| a | b | b | d |
 
+------+------+------+--------+
 
| 금강 | 1 | 1 | 백두산 |
 
| 한강 | 2 | 2 | 금강산 |
 
+------+------+------+--------+
 
2 rows in set (0.00 sec)
 


mysql>
 


3) LEFT OUTER JOIN
 
test1에는 4개의 레코드가 있는데 where test1.b=test2.b라는 조건 때문에 두 개의 레코드 밖
 
에 선택되지 않았다. 이때 test2의 b에 test1의 b 값이 존재하지 않더라도 test1의 레코드를

모두 가져오려면 left outer join을 사용한다. left outer join에서 outer는 옵션이므로 생략해
 
도 된다.
 
【예제】
 
mysql> select * from test1 left join test2 using(b);
 
+--------+------+------+--------+
 
| a | b | b | d |
 
+--------+------+------+--------+
 
| 금강 | 1 | 1 | 백두산 |
 
| 한강 | 2 | 2 | 금강산 |
 
| 대동강 | 3 | NULL | NULL |
 
| 두만강 | 4 | NULL | NULL |
 
+--------+------+------+--------+
 
4 rows in set (0.00 sec)
 


mysql> select * from test1 left join test2 on test1.b=test2.b;
 
+--------+------+------+--------+
 
| a | b | b | d |
 
+--------+------+------+--------+
 
| 금강 | 1 | 1 | 백두산 |
 
| 한강 | 2 | 2 | 금강산 |
 
| 대동강 | 3 | NULL | NULL |
 
| 두만강 | 4 | NULL | NULL |
 
+--------+------+------+--------+
 
4 rows in set (0.01 sec)
 


mysql>
 


4) RIGHT OUTER JOIN
 
test2에는 4개의 레코드가 있는데, where test1.b=test2.b라는 조건 때문에 2개의 레코드 밖
 
에 선택되지 않는다. 이때 test1의 b에 test2의 b값이 존재하지 않더라도 test2의 레코드를

모두 가져오려면 right outer join을 사용한다. right outer join에서 outer는 옵션이므로 생략
 
할 수 있다.
 
【예제】
 
mysql> select * from test1 right join test2 on test1.b=test2.b;
 
+------+------+------+--------+
 
| a | b | b | d |
 
+------+------+------+--------+
 
| 금강 | 1 | 1 | 백두산 |
 
| 한강 | 2 | 2 | 금강산 |
 
| NULL | NULL | 5 | 지리산 |
 
| NULL | NULL | 6 | 한라산 |
 
+------+------+------+--------+
 
4 rows in set (0.00 sec)
 


mysql>

2012/08/06 21:34 2012/08/06 21:34
chmod 644 -R * (초기화)
chmod -R go+X * (디렉토리별 실행권한을 준다)
chmod -R 707 나머지 바꾸고 싶음 퍼미션 폴더
2012/02/07 09:50 2012/02/07 09:50
예제로 나온 스크립트는 mp3 라는 단어가 들어있는 파일을 지웁니다.

for LIST in `find / | grep mp3`
do
rm -f $LIST
echo $LIST
done

이런 예제의 문제점은 mp3.html 도 지울수가 있다는 것이겠죠
그렇다면 다음과 같이 바꿀수 있겠죠

for LIST in `find / -name *.mp3`
do
rm -f $LIST
echo $LIST
done

이렇게 바꿀수가 있답니다.

그러면 저걸 vi 를 열어서 작성한다음 저장하고 빠져나옵니다
(파일명은 자기맘^^)

그런후 excute 권한을 줘야죠.. 지금 이 작업을 하시는분은 당연히 root 이실테니..

# chmod 700 파일명

자기자신이외에 실행을 못시킵니다..

그러나 여기서 또 발견되는 문제점.. 의사를 확인하지않고 지우면 문제가될수있으니..
다음과 같이바꿀수 있죠(그러나, 귀찮은 단점이있습니다)

for LIST in `find / -name *.mp3`
do
rm $LIST
echo $LIST
done

그럼.. 계정관리하시는데 도움이 되길 바랍니다~~
2012/02/07 09:50 2012/02/07 09:50
cat /proc/sys/kernel/threads-max

명령을 할 경우 최대 생성 갯수가 나옴
2012/02/07 09:50 2012/02/07 09:50
find . | xargs grep '검색 하고 싶은 문자열'

명령 실행시 실행시키는 디렉토리의 하위 디렉토리의 문자열과

문자열이 들어있는 파일이 검색된다.
2012/02/07 09:49 2012/02/07 09:49

SSH를 돌리면 /var/log/secure 에 22번포트로 접속시도가 많이 보인다. 부적절하게 접속시도하는 IP 들을 자동으로 차단하는 스크립트를 만들어 보겠다.
 
과정은 /var/log/secure 에서 불량 ssh 접속 ip를 추려내서 /etc/hosts.deny 에 등록된다.
 
 # grep "Failed password for" /var/log/secure | egrep -v "invalid user" | egrep -v "{USERID}|{LOGINIP}" | awk '{ print $11}' | uniq | sed "s/^/all:/" > /root/ssh-login-ip
# grep "Failed password for invalid user" /var/log/secure.1 | awk '{ print $13}' | uniq | sed "s/^/all:/" >> /root/ssh-login-ip
 
 [위의 명령어 설명] USERID=관리자 ssh 접속계정 LOGINIP=관리자 ssh접속계정의 공인 ip : 직접 입력해야함.
 
-------------------------------------------------------------------------------------------------------------
 
grep "Failed password for" /var/log/secure: /var/log/secure 파일 내에서 "Failed password for" 문장이 들어간 행만 뽑아냄
 
egrep -v "invalid user" : 위 결과에서 "invalid user" , "USERID" , "LOGINIP" 가 들어간 부분은 제외
 
egrep -v "{USERID}|{LOGINIP}": 위 결과에서 관리상 필요에 의해 접속했던 계정, IP는 제외
 
awk '{print $11}' : 위 결과에서 각 행마다 11번째 문장을 뽑아냄 -> 비정상 IP
 
uniq : 중복된 문장을 하나씩만 출력
 
sed "s/^/all:/" > /root/ssh-login-ip: 각 행의 맨 앞에 "all:" 을 입력 후 /root/ssh-login-ip 파일에 저장

grep "Failed password for invalid user" /var/log/secure.1 : var/log/secure.1 파일에서 "Failed .... user" 문장이 들어간 행만 추출
 
awk '{print $13}' : 각 행마다 11번째 문장만 뽑아냄 -> 비정상 IP
 
>> /root/ssh-login-ip : 위의 /root/ssh-login-ip 파일에 뒤이어 내용을 첨가함

------------------------------------------------------------------------------------------------------------
 
# cat /root/ssh-login-ip /etc/hosts.deny | sort | uniq >> /root/hosts.deny : hosts.deny에 블럭킹할 ip 등록

▶crontab 등록
 
# crontab -e
 
------------------------------------------------------------------------------------------------------------------
 
05,15,25,35,45,55 * * * * grep "Failed password for" /var/log/secure | egrep -v "invalid user" | egrep -v "{USERID} | {LOGINIP}" | awk '{ print $11}' | uniq | sed "s/^/all:/" > /root/ssh-login-ip
 
06,16,26,36,46,56 * * * * cat /root/ssh-login-ip /etc/hosts.deny | sort | uniq > /root/hosts.deny
 
07,17,27,37,47,57 * * * * cp /root/hosts.deny /etc/hosts.deny
 
-------------------------------------------------------------------------------------------------------------------

2012/02/07 09:48 2012/02/07 09:48

우분투가 데비안 커널을 사용하는것인지 서버설정이며 기본명령어가 대부분 데비안과 비슷하다. ㅡ.,ㅡ;
이제껏 사용했던 빨간모자-레뎃(redhat)의 네트웍 설정은 아무런 도움이 되지 못했다.

초기 설치시 DHCP를 사용하게 되어있던 항목을 고정아이피로 바꿔주기 위해서 구글신을 빌었다.
설정은 아래와 같이 하면된다.

우선 서버콘솔박스 앞에서 작업한다면 (리모트로 작업한다면 ifdown하는 동시에 터미널접속이 끊어지므로 주의)

ifdown eth0

로 네트웍카드를 잠시 멈춘후 아래 내용을 etc/network/interfaces에 설정한다.

auto lo
iface lo inet
loopback

auto eth0
iface eth0 inet static
address 192.168.10.136
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
gateway 192.168.10.1
dns-nameservers 168.126.63.1 168.126.63.2
위와 같이 설정후
ifup eth0
으로 네트웍을 설정한다.
리모트로 작업한다면 위의 ifdown이나 ifup을 사용하지 말고

sudo /etc/init.d/networking restart
으로 네트웍을 다시 시작하는것이 좋다.
2011/12/25 19:38 2011/12/25 19:38
###########################################################################
### 쓴건 : 원격서버의 Virtualbox 웹관리를 위한 Phpvirtualbox 설치
### 쓴이 : 권성재 (nonots@hanmail.net, http://www.badaweb.co.kr)
### 쓴때 : 2011-12-13
###########################################################################

### 환경
- CentOS 5.x 64비트
- 아파치 2.2, PHP 5.2
- X 윈도우(GUI) 없이 텍스트모드(TUI)로 서버 실행중


1) 서버 CPU 가 가상화기술을 지원하는지 확인. 지원 안한다면 포기.
# egrep '(vmx|svm)' /proc/cpuinfo


2) php 확장기능에 soap, json 이 포함되어 있는지 확인. 없다면 추가 설치.
php 버전도 5.1 이상이어야 한다.
# php -i | egrep -i '(soap|json)'


3) dkms 패키지 설치
아래 링크에서 다운받아 설치
- http://rpmfind.net/linux/rpm2html/search.php?query=dkms
- http://linux.dell.com/dkms/permalink/
# rpm -Uvh dkms-~~~.rpm


4) VirtualBox 4.1 및 확장팩 설치
-http://download.virtualbox.org/virtualbox/
글쓰는 현재 최신버전이 4.1.6 이다. 확장팩도 같이 다운받는다
# rpm -Uvh VirtualBox-4.1-4.1.6_74727_rhel5-1.x86_64.rpm

-확장팩 설치
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.6-74713.vbox-extpack

부가기능 설치 위한 VBoxGuestAdditions_4.1.6.iso 파일도
다운받아 놓는다.

- vbox 사용자 추가하고 비밀번호 정한다. 비번을 kawkf123 이라고 하자
# useradd -g vboxusers vbox
# passwd vbox
만약 홈디렉토리를 /home/vbox 가 아니라 용량큰 다른 곳에 마운트한
/data/vbox 와 같은 위치를 사용한다면 -d /data/vbox 와 같이 추가

- /etc/vbox/vbox.cfg 파일 생성
[root@home3 ~]# cat /etc/vbox/vbox.cfg
VBOXWEB_USER=vbox
VBOXWEB_HOST=222.231.xxx.xxx
VBOXWEB_PORT=18083
VBOXWEB_LOGFILE=/var/log/vbox.log

와 같이 하고 반드시 /var/log/vbox.log 를 만들어줌
# touch /var/log/vbox.log
# chmod 600 /var/log/vbox.log
# chown vbox.vboxusers /var/log/vbox.log
이렇게 안만들어주고 데몬시작하니 말도 없이 까칠하게 생깜.
VBOXWEB_HOST=222.231.xxx.xxx 이 부분을
VBOXWEB_HOST=0.0.0.0 으로 하기도 한담.
18083 포트가 막혀있으면 열어준다.


5) Phpvirtualbox 4.1 설치
- http://code.google.com/p/phpvirtualbox/
위 링크에서 phpvirtualbox-4.1-5.zip 다운받아서 웹루트 적당한 곳에
압축을 푼다.
만약 Virtualbox 4.0 이 설치되었다면 phpvirtualbox 도 4.0 버전대를 사용
해야 할꺼다.
config.php-sample 파일을 config.php 로 복사한 후 편집기로 열어서 상단에

var $username = 'vbox';
var $password = 'kawkf123';
var $location = 'http://222.231.xxx.xxx:18083/';`

여기 username,password 는 4)에서 생성한 리눅스 서버 vbox 계정정보다.

이 웹접속 위치가 http://www.mysite.com/phpvirtualbox/index.php 라고 하자

어떤데서는 아래 명령어 줘야한다고함. vbox 계정으로 전환한 뒤 해야하거나.
# VBoxManage setproperty websrvauthlibrary null


6) 접속방법

# /etc/init.d/vboxballoonctrl-service start
# /etc/init.d/vboxdrv start
# /etc/init.d/vboxweb-service start
와 같이 데몬을 시작한다.
만약 위 3)에서 dkms 커널모듈이 설치가 불안정하게 되었다면
# /etc/init.d/vboxdrv setup 로 재설치할 수도 있다.
위 3 개 데몬 실행에 오류가 없고 18083 포트가 열렸고,프로세스가
# ps aux |grep vbox
vbox 32002 0.0 0.1 149588 4268 ? Sl 18:26 0:00 /usr/lib/virtualbox/vboxwebsrv --background -H 222.231.xxx.xxx -p 18083 -F /var/log/vbox.log
vbox 32007 0.0 0.0 119560 2200 ? S 18:26 0:00 /usr/lib/virtualbox/VBoxXPCOMIPCD
vbox 32012 0.0 0.1 140076 5620 ? Sl 18:26 0:00 /usr/lib/virtualbox/VBoxSVC --auto-shutdown
와 같이 보이면 일단 된거다.

http://www.mysite.com/phpvirtualbox/index.php 와 같이 접속하면
로그인 아이디 비번 물을꺼다.
여기에 위에서 vbox 서버 계정 정보를 넣으려고 삽질하면 안.된.다. 나처럼 -_-;;
아이디 비번에 모두 admin 이라고 넣어야 한다.
로그인후 메뉴에서 admin 비밀번호를 바꾸면 된다.
보이는 화면은 그냥 virtualbox 와 비슷할꺼다.
..
이제 알아서 직관적으로 사용하면 된다.




### 참고
http://codefat.com/tag/phpvirtualbox/
http://www.oss.kr/12792
2011/12/06 09:39 2011/12/06 09:39
우분투에서 웹서버 환경 LAMP or APM (Apache, PHP, MySQL) 를 구축하는 법입니다.

우선 apache를 설치합니다.

$ sudo apt-get install apache2

설치후 잘 작동하나 확인해 봅시다.
브라우저 주소창에 http://localhost/ 입력해 다음 메세지가 나오면 정상적으로 작동하는겁니다.

이제 PHP를 설치합니다.

$ sudo apt-get install php5 libapache2-mod-php5

설치가 끝나면 재시작 합니다.

$ sudo /etc/init.d/apache2 restart

재시작후 PHP가 잘 작동하는지 확인합니다. (다음 코드를 입력후 저장)

$ sudo gedit /var/www/testphp.php

<?php phpinfo(); ?>

브라우저 주소창에 http://localhost/testphp.php 입력해 다음 메세지가 나오면 정상적으로 작동하는겁니다.
Attachment:
사용자 삽입 이미지


마지막으로 MySQL 을 설치합시다.

$ sudo apt-get install mysql-server


설치 중간에 암호를 설정하는 화면이 나옵니다.
New password for the MySQL "root" user: 비밀번호 입력
Repeat password for the MySQL "root" user: 비밀번호 확인
Attachment:
사용자 삽입 이미지
* 참고로 비밀번호를 바꾸려면 다음처럼 입력합니다.

$ mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');


* 참고로 서버 주소를 바꾸려면 다음처럼 입력후 bind-address 라인의 IP주소를 바꿔주시면 됩니다.

$ sudo gedit /etc/mysql/my.cnf

bind-address = 127.0.0.1 # 기본설정은 localhost



설치가 끝나면 MySQL 관리자 (phpMyAdmin) 를 설치합니다.

$ sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin


설치 중간에 다음 메세지가 나오면 apache2를 선택합니다. (space bar로 선택)
Web server to reconfigure automatically: apache2
Attachment:
사용자 삽입 이미지

그후 phpMyAdmin의 데이터베이스를 dbconfig-common으로 설정합니다.

"예"를 눌러 넘어가면 phpMyAdmin에서 사용할 암호를 묻습니다.

이제 끝으로 phpMyAdmin에서 디비 서버와 연결할 비밀번호를 설정하면 설치가 끝납니다.
(임의의 암호 생성이 있는거보니 직접 제어 할일이 적은 설정 같은데 혹시 모르니 적어둡시다.)

역시 phpMyAdmin가 잘 설치되었나 확인해 봅시다.
브라우저 주소창에 http://localhost/phpmyadmin/ 입력해 다음 메세지가 나오면 정상적으로 작동하는겁니다.
Attachment:
사용자 삽입 이미지
2011/10/16 22:15 2011/10/16 22:15