1. nginx 의 호스트 conf 파일에 아래와 같이 ssl  server 항목을 추가해 준다.


[root@cemcnu conf.d]# more web1_cem.cnu.ac.kr.conf 

server {


    ## 경상대학 홈페이지 ###########################################


    listen       80;

    client_max_body_size 500M;

    server_name  cem.cnu.ac.kr;

    root   /home/webmaster/web1/html;


    access_log  /home/webmaster/web1/logs/access.log;


    location / {

        index  index.html index.htm index.php;

    }



    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

    }



    location ~ \.php$ {

        fastcgi_pass   php-fpm;

        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

        include        fastcgi_params;

    }

}




 server {

    listen              443 ssl;

    client_max_body_size 500M;

    server_name  cem.cnu.ac.kr;

    root   /home/webmaster/web1/html;

    keepalive_timeout   70;

   

    ssl on;

    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;

    ssl_ciphers         AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;

    ssl_certificate     /etc/nginx/ssl/cem.cnu.ac.kr.crt;              --------> crt 파일의 경우  root crt 와 도메인 crt를 하나의 파일로 만들어서 설정한다.

    ssl_certificate_key /etc/nginx/ssl/cem.cnu.ac.kr.key;           --------> 패스워드 파일을 설정한다.

    ssl_session_cache   shared:SSL:10m;

    ssl_session_timeout 10m;


    access_log  /home/webmaster/web1/logs/access.log;


    location / {

        index  index.html index.htm index.php;

    }



    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

    }



    location ~ \.php$ {

        fastcgi_pass   php-fpm;

        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

        include        fastcgi_params;

    }

}




1. 시간대 설정 -  시간대를 KST 으로 맞춘다.


 # ln -sf  /usr/share/zoneinfo/Asia/Seoul     /etc/localtime




2. [date] 명령으로 시스템 시간을 맞춘다.



# date -s "2018-05-28 11:14:22"  


    * rdate -s time.bora.net  이라는 편리한 명령이  있으나....  부득이하게  수동 세팅이 필요할 경우  date -s 으로 설정할 수 있다.




3. hwclock 까지 맞춘다.


 # hwclock  --systohc   ( 또는 -w )     # O/S 의 시간을   H/W에 덮어쓴다. ( 반대는  hwclock --hctosys  또는 -s )

 # date

 Sat Oct 19 18:02:11 KST 2019

 # hwclock

 Sat 19 Oct 2019 06:04:49 PM KST  -0.724847 seconds


1.  데이터베이스 접속

msyql    -u   사용자명   -p   dbname

 설치 직후에는  root 사용자에 비밀번호가 없으므로  다음과 같이 접속하여 Mysql을 관리할 수 있다.

msyql    -u   사용자명   dbname


2. 비밀번호  변경
MySQL을 설치한 직후에는 root 계정의 암호가 지정되어 있지 않다. 다음 세가지 방법으로 비밀번호를 변경 할 수 있다.

* mysqladmin  이용
mysqladmin   -u  root  password   새비밀번호
* update  이용
mysql   -u   root   mysql
-----
mysql>  UPDATE   user  SET  password=password('새비밀번호')  WHERE  user='root';
mysql>  FLUSH PRIVILEGES;
* set  password  이용
mysql> SET PASSWORD FOR  root=password('새비밀번호');

일단 root 비밀번호가 설정된 상태에서는 mysql이나 msyqladmin 명령을 실행할때 -p 욥션을 붙여주고  비밀번호를 입력해야 접속이 가능하다.

3. 데이터베이스  생성/보기

* 데이터베이스를 생성하고,
mysql> CREATE   DATABASE   dbname;

* 현재 존재하는 데이터베이스 목록을 보여준다.
mysql> SHOW DATABASES;

* 특정 데이타베이스를  선택(사용)한다.
mysql>  USE   dbname;

* 필요 없는 데이타베이스를  삭제한다.
mysql>  DROP  DATABASE  [IF EXISTS]  dbname; 

[IF EXISTS] 옵션은  데이타베이스가 없더라도 오류를 발생시키지 말라는 의미이다.

테이블 생성/보기

mysql> CREATE TABLE  tablename (
             column_name1  INT  PRIMARY  KEY  AUTO_INCREMENT,
             column_name2  VARCHAR(15)  NOT  NULL,
             column3  INT
          )  ENGINE=INNODB;

테이블 구조를 살펴본다.

mysql> EXPLAIN    tablesname;
또는
mysql> DESCRIBE  tablesname;

테이블이름  변경.

mysqll> RENAME  TABLE  tablename1 TO tablename2[, tablename3  TO tablename4];

테이블  삭제.

mysql> DROP TABLE [IF EXISTS] tablename;


4. 사용자 추가/삭제

GRANT   ALL   PRIVILEGES   ON   dbname.*   TO   'username'@'localhost'    IDENTIFIED   BY   'password';

username 이라는  사용자를 password라는 비밀번호를 갖도록 추가한다.
username은 dbname이라는 데이타베이스에 대해 모든 권한을 가지고 있다.
username 사용자는 로칼호스트에서만 접속할 수 있다. 다른 호스트에서 접속하려면, 

GRANT   ALL   PRIVILEGES   ON   dbname.*   TO   'username'@'%'    IDENTIFIED   BY   'password';

위와 같이  한번 더 실행한다.  '%'에서 따옴표를 주의한다.
 (* MYSQL 에서 '%'는 localhost를 제외한 모든 호스트를 뜻한다. 즉 localhost에 대해서는 명시적으로 따로 권한을 지정해야 한다.)
 
특정 권한만 주려면, ALL 대신  아래와 같은 형태로 권한을 줄수 있다.

GRANT   INSERT,UPDATE,SELECT   ON   dbname.*   TO   'username'@'%'    IDENTIFIED   BY   'password';

불필요한 사용자  삭제는

mysql> DELETE   FROM   USER   WHERE   USER='username';
mysql> FLUSH  PRIVILEGES;


5. 활용 ( INSERT,  SELECT,  UPDATE,  DELETE,  errors/warnings/processlist, 기타  )

현재 상태 보기

MariaDB [mysql]> STATUS 
-------------- 
mysql  Ver 15.1 Distrib 10.1.22-MariaDB, for Linux (x86_64) using readline 5.1 

Connection id: 96 
Current database: mysql 
Current user: root@localhost 
SSL: Not in use 
Current pager: stdout 
Using outfile: '' 
Using delimiter: ; 
Server: MariaDB 
Server version: 10.1.22-MariaDB MariaDB Server 
Protocol version: 10 
Connection: Localhost via UNIX socket 
Server characterset: latin1 
Db     characterset: latin1 
Client characterset: utf8 
Conn.  characterset: utf8 
UNIX socket: /var/lib/mysql/mysql.sock 
Uptime: 4 hours 28 min 44 sec 

Threads: 2  Questions: 1392  Slow queries: 0  Opens: 40  Flush tables: 1  Open tables: 34  Queries per second avg: 0.086 
--------------

INSERT

mysql>  INSERT  INTO  tablename  VALUES(값1, 값2, ...);
또는
mysql>  INSERT  INTO  tablename (col1, col2, ...)   VALUES(값1, 값2, ...);

SELECT 

mysql>  SELECT col1, col2,  ...   FROM   tablename;

컬럼명을  *로 하면 모든 컬럼 의미.

mysql>  SELECT col1 as '번호', col2 as '성명',  ...   FROM   tablename;

컬럼의 이름을 바꿔서 출력한다.

mysql>  SELECT   *   FROM   tablename  ORDER BY col1 DESC;
mysql>  SELECT  col1, korea +  math  english AS '총점'   FROM   tablename  ORDER BY '총점'  ASC;

DESC는 내림차순  ASC는 오름차순.

mysql>  SELECT   *   FROM   tablename  LIMIT  100, 10;

결과중  100번째부터   10개만  가져오기,

UPDATE

mysql> UPDATE    tablename  SET   col1=새값    WHERE 조건;

DELETE

mysql>  DELETE   FROM  tablename    where  조건;

오류나 경고  다시 보기

mysql>  SHOW  errors;
mysql>  SHOW  warnings;

MySQL  버전 알아보기

MariaDB [mysql]> show variables  like  '%version%'; 
+-------------------------+---------------------------------+ 
| Variable_name           | Value                           | 
+-------------------------+---------------------------------+ 
| innodb_version          | 5.6.35-80.0                     | 
| protocol_version        | 10                              | 
| slave_type_conversions  |                                 | 
| version                 | 10.1.22-MariaDB                 | 
| version_comment         | MariaDB Server                  | 
| version_compile_machine | x86_64                          | 
| version_compile_os      | Linux                           | 
| version_malloc_library  | system                          | 
| version_ssl_library     | OpenSSL 1.0.1e-fips 11 Feb 2013 | 
| wsrep_patch_version     | wsrep_25.16                     | 
+-------------------------+---------------------------------+ 
10 rows in set (0.00 sec)

테이블/컬럼   정보보기

-- 전체 테이블 정보를 주석까지 포함해 보여준다. 
SHOW TABLE STATUS;

SHOW TABLE STATUS like 'member%'; -- 테이블 이름 매칭 조건 

-- 테이블의 컬럼 정보를 주석까지 포함해 보여준다. 
SHOW FULL COLUMNS FROM [테이블이름];







MySQL 사용자 계정 암호변경 방법을 정리.
 (여기서는 root 암호를 변경하고 있는데 다른 계정도 동일하다.)


위 사진은 root 사용자 계정을 변경하는 모습이다.
 
1. mysql 실행파일이 있는 위치에서 mysql을 실행시킨다.
mysql -u root -p
 
2. 비밀번호(암호) 변경을 위해 데이터베이스로 mysql을 지정한다.
mysql> use mysql;
 
3. 현재 비밀번호 확인 (선택사항)
mysql> select host, user, password from user;
 
4. 계정의 암호를 변경한다.
- 여기서는 root 계정의 암호를 asdf1234로 변경했음
mysql> update user set password=password('asdf1234') where user='root';
mysql> update mail_users set password=encrypt('비번입력') where username='계정';

5. 변경된 비밀번호 확인 (선택사항)
mysql> select host, user, password from user;

6. mysql 종료
mysql> exit

7. MySQL 서버를 재가동(Restart) 시킨다.


+ Recent posts