Info

데이터베이스에서 대량의 데이터를 등록할때 기존에 값이 저장되어 있는 경우 기존에 저장된 값이 존재하거나 Unique 키 값은 같은데 데이터가 다를 경우들이 있다. 이런 경우 insert 문만 계속 요청하면 오류가 발생하기도 하고, 이미 값이 저장되어 있으면 새로운 값으로 변경하여 저장해야하는 경우들이 있다.
이럴 때 Unique 키 값이 존재할 때  새로운 값이 들어오면 update 를 실행해주도록 하는  INSERT INTO ON DUPLICATE KEY UPDATE 쿼리를 사용하여 원활이 작업을 수행할 수 있다.
테스트를 위한 테이블 생성과 사용 방법을 알아보자

테스트를 위한 테이블 준비

테스트를 위해 users 라는 테이블을 생성 후 name 이 중복으로 저장될 수 없도록 name 를 Unique 키로 등록하자.
DROP TABLE users;
CREATE TABLE users (
name VARCHAR(25),
email VARCHAR(255)
);
ALTER TABLE users ADD UNIQUE (name);
생성 직후 테이블 데이터를 조회하면 아무 값도 등록되어 있지 않은 상태가 된다.

INSERT INTO ON DUPLICATE KEY UPDATE 사용

이제 값이 없으면 insert, 있으면 update 하는 쿼리를 사용해보자.
# Query
INSERT INTO users (NAME, email) VALUES ('tez', 'tez@tez.kr') ON DUPLICATE KEY UPDATE name='tez', email='tezpark@tez.kr';
# mysql
mysql> INSERT INTO users (NAME, email) VALUES ('tez', 'tez@tez.kr') ON DUPLICATE KEY UPDATE name='tez', email='tezpark@tez.kr';
Query OK, 1 row affected (0.00sec)
mysql>
위의 쿼리를 실행한 후 users 테이블을 조회하면 아래와 같이 새로운 값이 등록된다.
mysql> select * from users;
+------+------------+
| name | email |
+------+------------+
| tez | tez@tez.kr |
+------+------------+
1 row in set (0.00sec)
mysql>
다시 한번 쿼리를 사용하면 tez 라는 이름이 등록되어 있어서 tez@tez.kr 이라는 이메일 주소가 tezpark@tez.kr 로 변경된다.
# mysql
mysql> INSERT INTO users (NAME, email) VALUES ('tez', 'tez@tez.kr') ON DUPLICATE KEY UPDATE name='tez', email='tezpark@tez.kr';
Query OK, 2 row affected (0.00sec)
mysql> select * from users;
+------+----------------+
| name | email |
+------+----------------+
| tez | tezpark@tez.kr |
+------+----------------+
1 row in set (0.00sec)
mysql>
반응형

'Programming > MySQL' 카테고리의 다른 글

[mysql_config_editor] 암호화된 인증정보로 로그인  (0) 2016.12.11
[Dump] Export/Import Database  (0) 2016.08.21

Info

Xcode 를 사용해서 개발할 때 작업의 효율을 높이기 위해 플러그인들을 설치하여 사용할 수 있습니다.

Xcode7 버전 까지는 Package Manager 라는 관리 툴을 사용하여 다양한 플러그인들을 Xcode에 설치하여 사용 했었고, Xcode8 부터 Apple 에서 Xcode extentions 를 이용하여 플러그인들을 사용할 수 있는 기능을 지원하기 시작했습니다.

하지만, Xcode extentions 기능이 새로 생기면서 기존에 사용하던 Package Manager를 사용할 수 없어졌고,  아직까지는 Xcode extentions 용으로 개발된 플러그인들 중에는 기존에 사용하던 플러그인들이 대부분 없어서 Package Manager를 사용하여 플러그인을 관리하고 개발 해오던 개발자들은 불편함을 겪고 있습니다.

그래서 Xcode8 버전에서 사용불가가 되어버린 Alcatraz - Package Manager 를 사용하는 방법을 소개하려고 합니다.

Xcode extentions 용 플러그인이 필요한 분들은 아래 링크로 들어가서 필요한 플러그인을 설치하여 사용하면 됩니다.

Xcode extentions List

Alcatraz - Package Manager 설치

$ curl -fsSL https://raw.githubusercontent.com/supermarin/Alcatraz/deploy/Scripts/install.sh | sh

기능 활성화 방법

update_xcode_plugins 설치

$ gem install update_xcode_plugins
#
$ sudo gem install update_xcode_plugins

update_xcode_plugin 실행

$ update_xcode_plugins

Unsigning Xcode

Xcode8 에서 plugin 들을 사용하기 위해 Xcode를 unsign 상태로 만들어야 한다.
$ update_xcode_plugins --unsign
unsign 작업까지 완료가 되면 package manager를 사용한 플러그인 관리가 가능해진다.
작업이 완료된 후 Xcode를 종료 후 다시 실행하면 아래 이미지에 표시된 package manager 메뉴가 생성되어있고, 이것을 실행하여 필요한 플러그인을 설치해주면된다.


Package manager 사용

사용방법은 별도로 뭔가를 해줄 필요없이 필요한 플러그인들을 Install 후 Xcode를 재시작해주면 된다. 재시작 후 기능을 load 할것인지 물어보는데 전부 load 시켜주면 플러그인 적용이 완료된다.



Xcode 복구

나중에 unsigning xcode를 되돌려야 하는 경우가 생기면 아래 명령어를 이용하여 다시 signing 모드로 변경시켜주면 된다
$ update_xcode_plugins --restore


반응형
이 문서는 mysql, apache, nginx 설치, 도메인 설정에 대한 내용은 제외되어 있습니다.
해당 내용은 현재 글에 추 후 업데이트 할 예정입니다.

1. DB 생성, 설정

[root@localhost] mysql -u root -p
Password: ********
mysql> create database wordpress;
mysql> grant all privileges on wordpress.* to [id]@localhost identified by '[pwd]' with grant option;
mysql> ALTER DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
wordpress.* wordpress 라는 DB에 속하는 모든 테이블에 권한을 부여한다는 것
[id]@localhost [id]는 사용할 사용자이름, localhost는 접속위치
‘[pwd]' 사용할 패스워드 입력

2. 워드프레스 다운로드 및 설치

다운로드

아래 사이트에서 원하는 언어 버전으로 다운로드 받아서 압출을 풀어준다.
http://wordpress.org/ (영문 버전)
http://ko.wordpress.org/ (한국어 버전)

업로드 (->서버)

로컬에서 다운로드를 받았다면 압축을 푼 파일을 서버로 전송해준다.
주의할 점은 폴더 이름을 wordpress 그대로 사용하지 말고, 다른 이름을 사용하여 추가해주자. 그래도 올리게되면 악의적인 봇이 사이트를 스캐닝하고 검색하면서 워드프레스 파일을 찾을 수 있다.

Apache or Nginx 설정

Apache 혹은 Nginx 중 사용하는 것을 선택하여 도메인 설정을 해주자

환경설정 파일 (wp-config) 만들기

http://워드프레스_도메인 (혹은 http://도메인/wordpress/wp-admin/install.php) 경로로 접속을 하면 환경설정 작업이 진행된다.
! 환경설정 파일을 생성하지 못하는 경우 과정에서 생성 방법 및 붙여넣기할 코드를 생성해주니 그대로 따라하면된다.
모든 설치가 종료되었습니다.

3. 권한 설정

워드프레스 내에서 플러그인이나 테마를 설치하려면 파일과 폴더에 쓰기 권한 설정이 필요하다.
일반적으로 워드프레스의 권한 설정 규칙은 다음과 같다

권한 설정 규칙

  • 모든 워드프레스 파일의 소유 권한은 관리자가 되어야 함
  • 모든 워드프레스 파일은 644 권한 (관리자:읽기/쓰기, 소유 그룹:읽기, 모든 유저:읽기) 으로 설정해야 함
  • 모든 워드프레스 폴더는 755 권한 (관리자:읽기/쓰기/실행, 소유 그룹:읽기/실행, 모든 유저:읽기/실행) 으로 설정해야 함
  • 워트프레스가 사용하는 계정이 리눅스 관리자 계정과 다르면 워드프레스의 파일 권한은 664, 폴더 권한은 775 로 설정해야 함
  • wp-config.php 파일은 600 권한 (관리자:읽기/쓰기) 으로 설정해야 함

설정파일 수정

# wp-config.php
# FS_METHOD direct wp_content/ wp_content/launguages wp-content/upgrade/ .
define('FS_METHOD', 'direct');

필요한 폴더에 권한 부여 / 생성

작업은 워드프레스가 설치된 폴더에서 진행하자
# upgrade
$ mkdir /wp-content/upgrade
# (:755)
$ find ./ -type d -exec chmod 0755 {} \;
# (:644)
$ find ./ -type f -exec chmod 0644 {} \;
워드프레스 사용 계정이 리눅스 관리자 계정과 다르다면 폴더 권한은 775, 파일 권한은 664 로 설정하자


반응형