출처 : http://guslabview.tistory.com/195


MySQL로 작업할때, Where절을 이용하여 Update 혹은 Delete를 하는 경우 1175 에러를 발생하면서 사용자가 실행한 쿼리문이 실행이 되지 않는 경우가 있습니다.


Error Code: 1175

You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column


1175 에러의 경우 Safe Update가 적용이 되어 있어 Where 절을 사용해서 Update를 못하게 설정상 막아 놓은 것입니다. 따라서 이설정 값만 변경해 주면 되겠죠. 1175를 해결할 수 있는 방법은 아래와 같이 2가지 방법이 있습니다.


1) SQL 구문 이용하여 설정 변경


쿼리 구문에서 SET SQL_SAFE_UPDATES = 0 으로 하여 설정을 변경할 수 있습니다. 아래와 그림과 같이 걍 실행만 하시면 됩니다. 



2) 옵션 창을 이용하여 설정 변경


Edit - Preference를 이용하여 옵션 창에서 변경할 수도 있습니다. 먼저 Preference 창을 엽니다.



"Safe Updates" 블라블라 되어있는 부분에 체크되어 있는 부분을 해제하시고, MySQL에 다시 접속을 하시면 해결할 수 있습니다.



2번째 방법보다는 1번째 방법이 효율적입니다. 한방에 되니깐요!! 재접속도 필요가 없습니다.

그럼 이만 줄이겠습니다.



출처 : http://mytalkhome.tistory.com/841

그동안 미루어만 왔던 GO언어!

오늘 드디어 그 첫 삽을 펐습니다ㅎㅎ

 오늘 한거라고는 인텔리J 를 이용해서 GO를 개발할 수 있도록 개발환경을 구성해보았습니다.


아직 GO언어는 이렇다하게 딱 정립된 IDE가 없어서 vim 이나 Coda , sublime text 로 코딩해서 많이 합니다

( 아 저는 MAC으루 개발합니다^^ )

그래도... 안드로이드 스튜디오 , 스프링 개발할때 인텔리J를 사용하고 있어서 GO도 마침 플러그인이 있길래 셋팅해보았습니다



셋팅 환경

OS: MAC OS X 10.10.4

IntelliJ 14.1.4

GO: 1.4.2 darwin/amd64



1. 설치

- 졸업한지 몇년이 흘렀지만.. 학교 이메일이 아직 그대로 있어서 학생무료로 설치했습니다. edu등 학교이메일이 있으면 1년단위로 모든제품을 무료로 사용가능합니다! 1년뒤에 다시 인증하면 그만! 

- GO만 개발하실거면 커뮤니케이션 버전사용하셔두 됩니다. 전 스프링 개발때문에.. 무튼 사용하시고자 하는 버전을 받으시구요( 여기선 얼티메이트 버전으로 설명 )

- OS맞게 받으세요 전  MAC입니다.


IntelliJ IDEA 14 

다운로드: https://www.jetbrains.com/idea/download/




GO

다운로드: https://golang.org/dl/

* 본인의  OS맞게 설치해주세요. MAC의 경우 Apple OS X 를 다운하셔서 설치하시면 따로 설정잡아주실건 없습니다




2. GO 플러그인 설치

- 플러그인을 알파버전을 사용하셔야 합니다. 그렇지 않으면 go언어 최신버전이 대응되지 않아요~


[ Configure -> Plugins 선택 ]



[ 하단의 "Browse repositories.." 선택 ]



[ Manage repositories... 선택 ]



[ + 버튼 선택 ]




https://plugins.jetbrains.com/plugins/alpha/5047


[ 위 URL 을 추가해주세요  ]




[ 상단의 Repository: All 에서 추가하신 URL 을 선택해주세요 ]



[ 그럼 위처럼 GO가 있을텐데 해당 플러그인을 설치해주시면됩니다.  전 이미 설치해서  Install 버튼이 안보이는거에요 ~ ]




3. Hello world 찍어보기

- 모든 개발의 시작 헬로우월드를 찍어볼까요?


[ Create New Project 를 선택합니다 ]



[ 플러그인 설치가 잘되었다면 "Go" 가 있을겁니다. Go를 선택하고  Next를 눌러주세요 ]


[ 저는 이미 한번설정해서 SDK가 등록되어 있지만,  최초에는 없으므로 "Configure..." 을 클릭해주세요 ]



[ Go가 설치된 경로를 지정해주세요 , go 폴더까지만 선택하시면 됩니다 ]



[ 프로젝트 타이틀을 지정하시고 Finish를 클릭해주세요 ]


[ 샘플 카도를 하나 작성하시구요 ]


[ 실행하시면 결과가 딱~ 나옵니다 ^^ ]


* warning: GOPATH set to GOROOT (/usr/local/go) has no effect 문구가 뜰경우?

MAC

$  cd ~

$ vi .profile


아래 구문추가( 자신의 go설치경로로 바꾸세요 )

export GOROOT=/usr/local/go

export PATH=$PATH:$GOROOT/bin



앞으로  go언어 관련해서 계속 작성할 예정입니다

배우면서 하는거라 엉성할 수 있으니 이상한 부분은 언제든지 지적해주세요


감사합니다


출처:http://gnujava.com/board/article_view.jsp?article_no=1666&menu_cd=29&board_no=16&table_cd=EPAR06&table_no=06


Mysql DB 데이터 전부를 다른 서버로 옮기는 작업중...

 

방법은 콘솔에서 백업파일 생성 및 복원하는 법과

Workbench 에서 백업파일 생성 및 복원하는 법이 있다.

 

마우스로 까딱만 하면 되는 Workbench에서 하는게 편하나

나는 콘솔로 백업파일 생성 및 복원을 하였다.

 

 

DB전체백업 : mysqldump -u [DB계정] -p [DB명] > [파일명].sql

특정 테이블 백업 :  mysqldump -u [DB계정] -p [DB명] [테이블명] > [파일명].sql


mysql\bin> mysqldump -u root -p [DB명] > C:\dump130507.sql

 

파일을 생성할 장소를 지정할 수도 있습니다.

지정안하시고 파일명만 하시면 mysql bin 폴더에 들어가 있을 겁니다.

 

이제 그 파일가지고 이전할 서버로 가져와서

 

DB전체복원 : mysql -u [DB계정] -p [DB명] < [파일명].sql

 

mysql\bin > mysql -u root -p [DB명] < C:\dump130507.sql

 

하고 DB 확인하면 테이블들과 데이터가 모두 똑같이 이전된 것을 확인 할 수 있습니다.

여기 까지 콘솔로 하는 법이었습니다.

근데 해본결과 콘솔이 더 편하네요;;

 

 

*번외편 (Workbench로 백업/복원하기)

 

Workbench를 실행시킵니다.

 

Server Administration에 DB 서버 매니저에 들어갑니다.

 



암호를 치고 들어가면 DB 서버를 매니져하는 창이 뜨게 됩니다.

여기서 아래

DATA EXPORT / RESTORE 에

Data Export (데이터 백업)

Data Import/Restore (데이터 복원)

 



Data Export 들어가셔서

 

옵션이 두가지가 있습니다.

위에 라디오박스를 체크하면 테이블별로 파일을 생성해줍니다.

아래 라디오박스를 체크하면 파일 하나에 전체 테이블이 들어가도록 생성합니다.

저는 전체 DB를 백업할 것임으로 아래 옵션을 선택하고

Start Export 버튼을 클릭!

해당 디렉토리에 sql 파일이 생성된것을 확인 할 수 있습니다.




Data Import/Restore 에 들어가셔서 복원을 하시면 되는데

여기도 같은 옵션이 두개가 존재합니다.

백업파일이 존재하는 폴더를 가져오는것과

백업파일을 가져오는 옵션 이렇게

저는 전체 백업파일을 생성했으므로 아래 파일을 가져오는 옵션을 선택하겠습니다.

(그림은 폴더를 가져오는걸로 선택하게 찍었네여;;;;;;;)

Start Import 하면 끝~
 

 

 

저는 workbench에서 뭔가 옵션이 막혀있는지 안되가지고

콘솔에서 때렸네여..

 

아 데이터베이스를 Default로 Set 해주셔야 아마 들어갈 겁니다!

해당 DB에 마우스 우 클릭 -  set as Default Schema


그럼 이만!


출처 : https://www.linux.co.kr/home/lecture/index.php?cateNo=&secNo=&theNo=&leccode=247




passwd 

사용자의 패스워드를 입력및 변경하는 명령어이다. 
패스워드는 리눅스서버의 일차적인 보안을 위해 반드시 설정해야한다. 
많은사용자가 사용하는 서버에서는 가끔식 관리자의 실수로 인하여 패스워드가 설정되어 있지않은 계정이 존재하는 실수를 범할 수도 있다.

서버관리자는 계정을 생성한 후에는 반드시 패스워드를 생성해야한다.

아래와 같이 useradd로 bible2라는 계정사용자를 생성한 후에는 passwd라는 명령어로 bible2의 패스워드를 입력한다.

[root@host1 root]# 
[root@host1 root]# useradd bible2
[root@host1 root]# 
[root@host1 root]# 
[root@host1 root]# passwd bible2
Changing password for user bible2.
New password: (새로운 패스워드 입력)
Retype new password: (새로운 패스워드 재입력)
passwd: all authentication tokens updated successfully.
[root@host1 root]#

위의 예와 같이 root는 일반계정사용자의 패스워드를 마음대로 변경할 수 있다. 

하지만 일반계정사용자는 자기자신의 패스워드만을 변경할 수가 있으며 자기자신의 패스워드를 변경할 경우에도 기존의 사용중인 패스워드를 입력해야만 변경할 수 있다. 

다음의 예는 bible이라는 사용자가 자기의 패스워드를 변경하는 예이다.

[bible2@host1 bible2]$ passwd
Changing password for user bible2.
Changing password for bible2
(current) UNIX password:  (기존의 패스워드입력)
New password: (새로운 패스워드 입력)
Retype new password: (새로운 패스워드 재입력)
passwd: all authentication tokens updated successfully.
[bible2@host1 bible2]$






요약


Ubuntu Linux는 기본적으로 많이 쓰이는 2가지의 소프트웨어 관리기를 제공합니다. 하나는 APT(Advanced Package Tool)과 dpkg(Debian Package)가 바로 그것입니다. 물론 aptitude라는 관리기도 있습니다.


저의 경우 실상 Apache, WAS, DB등을 이용한 웹서비스용으로 리눅스를 사용하거나 Desktop대체용으로 사용하기 때문에 Console만 제공하는 환경에서 서버사용을 위한 몇몇 소프트웨어 관리명령어외엔 일반 데스크탑에서는 거의 그놈의 GUI화면을 이용하지만 확실히 소프트웨어 관리는 콘솔상에서 작업하는 것이 빠르고 더 직관적인것 같습니다. 하지만 실제 서버를 설치하거나 특별히 어떤 패키지를 설치할 때를 제외하고는 거의 특별한 작업이 없기 때문에 어떤 패키지를 설치할때마다 검색하기 일수인데요.


간단하게 우분투의 APT를 이용한 소프트웨어 관리에 대하여 정리해 볼까 합니다.


Ubuntu APT Commands - Useful Apt-Get and Apt-CacheUbuntu APT Commands - Useful Apt-Get and Apt-Cache




APT Commands (주요 APT명령어)


1. sudo apt-get update


/etc /apt/source.list의 저장소를 참조하여 패키지 데이터베이스를 업데이트합니다.

즉, 저장소안의 업데이트할 수 있는 소프트웨어의 목록이나, 저장소 자체를 추가했을때 해당저장소의 소프트웨어 목록을 업데이트 합니다.


따라서 우분투에서 제공하는 기본저장소외에 저장소를 추가하였을 경우 반드시 이 명령어를 입력해서 업데이트해 주어야 합니다.


가령, 새로운 저장소를 추가하려면,


1
sudo vi /etc/apt/source.list
cs


를 명령한 후 하단에 새로운 저장소를 추가합니다.


그리고 source.list를 저장한 후 


1
sudo apt-get update




명령어를 입력하여 저장소목록을 업데이트합니다.

일반적으로 우분투 서버 시스템에서 시스템의 모든 패키지를 업데이트하기 전에 수행하는 명령어이기도 합니다.

(데스크탑 버전의 경우 대부분 자동으로 소프트웨어를 업데이트하기 때문에 특별히 저장소를 추가하지 않은 이상 거의 사용할 일이 없습니다.)


2. sudo apt-get upgrade

설치되어 있는 모든 패키지를 조사하여 업데이트가 있는 경우 자동으로 업데이트 합니다.


3. sudo apt-get dist-upgrade

전 체시스템을 새로운 버전으로 업그레이드 합니다.

일반적으로 의존성 문제 등을 고려하여 이 방법으로 새버전으로 업그레이드 하지 않습니다.


4. sudo apt-get install <package>

<package> 를 다운로드하여 설치합니다.

자동으로 의존성문제 등을 고려하여 추가가 요구되는 패키지도 같이 다운로드하여 설치합니다.


5. sudo apt-get -d install <package>

<package> 를 다운로드하여 /var/cache/apt/archives/에 저장합니다.

설치는 하지 않습니다.


6. sudo apt-get -f install

만일 다운로드한 패키지가 깨진 경우를 확인하기 위하여 검사하는 명령입니다.


7. sudo apt-get remove <package>

<package> 를 삭제합니다.

의존성 문제를 자동으로 해결하면서 삭제하므로 매우 유용합니다.


1
sudo apt-get --purge remove <package>
cs


와 같이 --purge옵션을 주면 설정파일은 삭제하지 않으므로 추후 해당 패키지를 다시 설치하면 이전 설정이 그대로 적용됩니다.


8. sudo apt-get autoclean

불완전하게 다운로드된 패키지 등을 자동으로 삭제합니다.


9. sudo apt-get clean

/var /cache/apt/archives에 저장된 패키지를 삭제합니다.

sudo apt-get -d install <package>하여 다시 다운로드하여 저장할 수 있습니다.


10. sudo apt-cache pkgnames

시스템에 설치된 모든 패키지를 출력합니다.


11. sudo apt-cache show <package>

<packae> 에 대한 정보를 출력합니다.


12. sudo apt-cache search <keyword>

/etc /apt/source.list에 저장된 저장소의 모든 패키지들에서 <keyword>를 검색합니다.

특정 패키지의 이름이 생각나지 않거나 일부만 아는 경우 유용합니다.

대소문자 구분이 없습니다.


13. sudo apt-cache depends <package>

<package> 에 대한 의존성을 검사하여 추가적으로 다운로드해야 하는 패키지를 보여줍니다.

하지만 sudo apt-get install <package>하면 알아서 자동으로 다운로드하여 설치해 줍니다.


14. sudo apt-key list

APT 에 저장된 gpg키 목록을 출력합니다.

일부 패키지의 경우 우분투 공식 저장소가 아닌 외부저장소에서 다운로드 받아야 하는 경우가 있는데 이때 해당 패키지의 서명키를 추가한 후 정상적인지 확인할때 쓰입니다.


15. sudo apt-key add <keyfile>

디지털 서명키를 추가합니다.










출처 : http://rootblog.tistory.com/1



리눅스 계열에 재부팅과 종료 방법 입니다.
리눅스는 여러가지 종료와 재부팅 명령어를 지원해 줍니다.
GUI 방식과 명령어 방식 모두 살펴 보겠습니다.


우선 가장 사용하기 편한 GUI 방식에서 재부팅과 종료입니다.


리눅스 메뉴에 시스템 -> 끄기로 이동합니다.


재부팅(다시시작)과 종료(끄기) 모두 선택을 할수 있습니다.
사용법도 간단 합니다. 마우스로 원하는 작업을 클릭하면 됩니다.


명령어는 터미널 창을 열어서 사용을 합니다.
여기서는 halt , reboot , shutdown , init  총 4가지 명령어를 확인하겠습니다.


halt 의 도움말입니다.
halt 는 시스탬을 종료 하는 명령어 입니다.
주로 옵션이 없이 많이 사용됩니다. 옵션을 사용한다면 -f 옵션을 줘서 강제 종료 정도로 사용됩니다.

사용예)
$ halt              -> 시스템 종료
$ halt  -f          -> 시스템 강제 종료




reboot 의 도움말입니다.
reboot 는 재부팅용 명령어 입니다.
reboot 도 별도에 옵션 없이 많이 사용되지만 사용한다면 -f 옵션으로 강제 재부팅 정도를 사용합니다.

사용예)
$ reboot         -> 시스템 재부팅
$ reboot -f      -> 시스템 강제 재부팅



shutdown 의 도움말 입니다.
shutdown 은 리눅스 종료와 재부팅의 대표적인 콘솔 명령어 입니다.
-h 옵션으로 종료를 하고 -r 옵션으로 재부팅을 합니다.
시간을 지정해 줄수 있어서 예약 종료나 재부팅을 할수 있고 -c 옵션으로 취소 할수 있습니다.

사용예)
$ shutdown -h now          -> 바로 시스템 종료
$ shutdown -h 10             -> 10분후 시스템을 종료
$ shutdown -h 15:10         -> 15시 10분에 시스템을 종료 (hh:mm 형식)

$ shutdown -r now           -> 즉시 시스템을 재부팅
$ shutdown -r 15              -> 15분후에 시스템을 재부팅
$ shutdown -r 17:40          -> 17시 40분에 시스템을 재부팅 (hh:mm 형식)

$ shutdown -c                  -> 예약된 shutdown 명령을 취소



init 의 도움말 입니다.
리눅스 시스템이 가동되는 몇가지 레벨이 있는데 init 는 그걸 지정하는 방법입니다.
동작 레벨중에  재부팅과 종료 레벨이 있기 때문에 init 를 사용해서 재부팅과 종료를 할수있습니다.
렌레벨은 0~6까지 7단계로 구분이 되고 0 이 종료 6 이 재부팅입니다.

init 런레벨
0 : 시스템 종료모드
1 : 단일 사용자 모드 (시스템 복구시에 사용합니다)
2 : 다중 사용자 텍스트 모드 (NFS 사용 불가로 서버와 공유가 안됩니다)
3 : 다중 사용자 텍스트 모드 (일반적인 CLI (Command Line Interface) 모드 입니다.)
4 : 사용 안함
5 : 다중 사용자 그래픽모드 (일반적인 GUI (Graphical User Interface) 모드 입니다,)
6 : 시스템 재부팅 모드

$ init 0    -> 시스템 종료
$ init 6    -> 시스템 재부팅


1.  그래픽 모드 비활성화

vi /etc/default/grub

# 진입 후 다음과 같이 변경한다

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX="text"
GRUB_TERMINAL=console
sudo update-grub
sudo systemctl set-default multi-user.target


2.  그래픽 모드 활성화


sudo systemctl set-default graphical.target




** 텍스트 모드상태시 한글 글자깨짐 해결

-> 이 문제는 영어가 1바이트인 반면 한글이 2바이트이기 때문에 깨지게 된다.

아래와 같이 해결

sudo apt-get install fbterm

fbterm


VMware를 사용하시는 분을 위한 링크

우분투를 사용하시는 분을 위한 링크



복원중에 단일 사용자 모드가 뜨는 경우가 있는데


이또한 원인은 잘 모르겠습니다.


해결 방법은


alter database [DB 명] set multi_user;


+ Recent posts