본문 바로가기
  • 산에사는 꽃사랑......
컴퓨터/Linux System and Server

리눅스 관련 팁모음

by 산에사는꽃사랑 2018. 5. 2.

1. CentOS 5.X 설치 후 참고사항   


자동시작프로그램( ntsysv )중에 ip6tables 와 iptables 는 반듯이 체크 해제를 해야함. 

그렇지 않으면 네임서버 및 기타 데몬이 실행(권한) 에러 및 허가 거부 발생함. 

아니면 수정하여 각각의 포트를 열어 주던지!


/etc/sysconfig/ip6tables

/etc/sysconfig/iptables


2. https://www.centos.org/docs/5/

3. https://www.sulinux.net/web/

4. CentOS4.2에서 yum update 않되면...   

CentOS4.2에서 yum update 않되는 경우 중 한가지 입니다. 
#/etc/named.conf 에 
options 내용 중에 
allow-recursion {none;}; 부분이나 이와 비슷한 문구가 있으면 잠시 주석 처리 후에 
named 를 restart 하신 후 업데이트를 한 번 해 보십시오! 

또한 문제가 있을 소지가 있는 것은, dns서버 설정이 안되었을 가능성이 있습니다. 
/etc/reslov.conf 파일을 수정해 주세요.

Ex) search ulsani.co.kr

5. CentOS 한글 깨지는 문제 해결방법!   

CentOS 4.2에서 한글 깨지는 문제 해결방법 입니다.
# /etc/sysconfig/i18n 파일에서
LANG="ko_KR.UTF-8"  =====> LANG="ko_KR.eucKR" 로 바꾸시면 됩니다.


6. ssh로 접속하여 su 로그인이 안될때   

ssh로 접속하여 su 로그인이 안될때 아래 그림처럼 /bin/su 파일의 퍼미션을 확인 바랍니다.


7.mysql sock 에러 문제 해결책!!!   

ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/m
ysql.sock' (111) 라고 에러가 뜨면서 접속이 되지 않을 경우에...
다음과 같은 순서대로 하시면 가능합니다.

#killall mysqld

#chmod 755 -R /var/lib/mysql

#chown mysql.mysql -R /var/lib/mysql

#safe_mysqld --language=korean &

디렉토리 퍼미션 문제입니다.

8. 리눅스 시스템 파일 복구 방법!   

 리눅스 서버를 돌리는 도중 갑작스런 정전으로 리눅스 시스템 파일이 손상을 입은 경우,
일반적으로 다음과 같은 MESSAGE가 나타날 것 입니다.

-. unattached inode 179874
-. unexpected inconsistency; run fsck manually

=> 조치방법:
일단 root 패스워드로 로그인을 하여, 아래와 같이 명령어를 반복 수행한다.

1. # fsck.ext2 /dev/hda1
2. # fsck.ext2 /dev/hda2
3. # fsck.ext2 /dev/hda3

참고로 위 명령은 리눅스 파티션 수 만큼 수행하면 된다.

9. 안녕하세요. 
저희가 My-SQL 3.23.58 버젼을 5.0.22 버젼으로 업그레이드 했을때 했던 작업사항 간단하게 적어 드릴께요 
도움이 되실지 모르겠네요. 

1. 우선 3.23 버젼의 My-SQL의 테이블 스키마를 데이터베이스 별로 받았습니다. 데이터 없이 mysqldump 를 사용해서 받았습니다. 
mysqldump --no-data 라는 옵션인가??? 찾아보시면 정확하게 아실 수 있을꺼구요 
데이터 없이 테이블 Create 스키마만 .sql 로 받았습니다. 

2. 5 버젼에 데이터베이스를 만들고 테이블을 3.23에서 받았던 테이블 스키마 파일(.sql) 을 사용해서 만들어 놓았습니다. 

3. mysqldump 를 사용해서 데이터만 받아서 insert를 시켰습니다. 시간 정말 오래 걸렸습니다. 

파일을 복사해서 넣으면 빨리 끝난다고 생각할 수 있겠지만 
파일을 복사해서 넣으면 3.23과 5버젼간에 호환이 안되는지 데이터에 에러가 발생합니다. 
그래서 저렇게 작업했습니다. 시간은 정말 오래 걸립니다. 

테이블만 먼저 만든 이유는 3.23에서는 예약어가 아닌 것들이 5버젼에서는 예약어가 되어있는 경우가 있어서 테이블을 먼저 만들어보고 에러가 나는 부분이 있는 지 확인해서 작업을 나눠서 했습니다. 

전체 덤프를 받아서 입력하는게 서버에 성능에 따라서 차이가 많이 나서 시간은 정확하게 말씀을 못드리겠네요. 

저희는 이렇게해서 데이터베이스를 업그레이드 했습니다. 
도움이 되셨나 모르겠네요. ^^; 



▒▒▒▒▒ 호는서천 님께서 남기신 글 ▒▒▒▒▒ 

안녕하새요 

제가 mysql3버젼을 사용하고 있습니다. 

그래서 mysql5로 업그레이드 할려고 하는데 어찌 해야 하는지 알려주세요. 

현재 mysql5는 euckr 로 설치해놓아습니다. 
어찌 해햐 하는지 아시는 고수님 답변주세요 .. 
아니면 설명이 잘되어 있는 사이트나 문서 링크 걸어주세요 .. 
찾아바도 안보이더라고용 
어디는 mysql3버젼을 mysql4로 업글하고 다시 mysql5 로 업글 하라고 하는뎅 

언어셋 문제가 제일 큰거 같은뎅 어찌 해야 하는지 아려주세요. 

백업 이라든지 복구라든지 음 자세히좀 부탁 드립니다 .. 

꾸벅 은총 만땅 로또 당첨 되길 ~~~~ 

10.MySQL 3.x 데이타 5.x로 migration
EUC-KR로 encoding되어 있는 MySQL 3.x 데이타를 5.x으로 이전해야 할 일이 생겼다. ㅠㅠ 그래, 이왕 이전 하는 거 UTF-8으로 바꾸자 (사실 찾아 보니 이게 더 쉬울 것 같다. ㅋㅋ).

순서는 아래와 같다.

MySQL 3.x로 부터 자료 dumping.
Dump 된 파일 수정
MySQL 5.x로 자료 올리기
척 보면 알겠지만 2번 작업이 이번 일의 핵심이다.

1번 dumping은 아래와 같이 쉽게 할 수 있다.

$ mysqldump -u USER -p DBNAME > DBNAME.dump.sql
당연히 비밀번호를 입력해 줘야 한다. 이번일에는 이전해야 할 DB가 많아 아래와 같이 스크립트를 짜서 해결했다.

$ while read dbname
do
echo "Start dumping ${dbname}."
mysqldump -u ROOT_ID -p ${dbname} > ${dbname}.dump.sql
done <<DBNAME
accounts
......
DBNAME

다음으로 제일 중요한 dump 파일 수정이다.

일단 dump 파일 중 5.x에서 문제를 일으킬 수 있는 주석 부분을 제거 해 줘야 한다. SQL 문에서 주석은 C와 같이 '/* ... */'로 쓰는 방법과 함께 주석 앞에 '--'를 쓰는 방법이 있는데 아래 예의 1번과 같이 '---------------------------------------------------------'로 되어 있는 부분이 5.x에서는 문제를 일으킨다. 따라서, 1번 부분을 제거해 줘야한다. 그 다음에는 5.x에게 자료의 encoding이 EUC-KR임을 알려주기 위한 2번 부분, 또 새롭게 만드는 table들에 UTF-8 형태의 자료를 쓸 수 있도록 해주기 위한 3번 부분을 추가한다 (아래 예에서 제거되는 부분은 붉은 색으로, 추가되는 부분은 파란 색으로 표시하였다). 이때, 2번은 파일 맨 앞에서 한 번 만 추가해 주면 되지만 3번 부분은 매 create 문 마다 해 줘야 하기때문에 vim에서 정규식을 이용한 치환(:%s/\(TYPE=ISAM.*\);/\1 DEFAULT CHARSET=utf8;/)으로 한번에 수정 하였다.

SET NAMES euckr; <- 2="" span="">
-- MySQL dump 8.23
--
-- Host: localhost Database: accounts
--------------------------------------------------------- <- 1="" span="">
-- Server version 3.23.58

--
-- Table structure for table `a_00002`
--

CREATE TABLE a_00002 (
number smallint(5) unsigned NOT NULL auto_increment,
applicant varchar(16) NOT NULL default '',
......
timestamp timestamp(14) NOT NULL,
PRIMARY KEY (number)
) TYPE=ISAM PACK_KEYS=1 DEFAULT CHARSET=utf8; <- 3="" span="">

--
-- Dumping data for table `a_00002`
--
......
이제 파일을 수정했다면 3번 과정만이 남았다. 1번과 같이 아래의 명령으로 간단히 수행할 수 있다.

$ mysqladmin -u USER -p create DBNAME <- 1="" span="">
$ mysql -u USER -p DBNAME < ${dbname}.dump.sql <- 2="" span="">

위의 1번 명령은 해당 DB를 생성하도록 하는 것이고, 2번이 실제 자료를 MySQL에 넣도록 하는 명령이다.

이제 남은 일은 커피 한잔 마시며 자료가 잘 옮겨 졌는지 확인 하는 일...


11.드디어 해결했습니다. -_- 5.0 베타 나올때부터 격었던 문제인데..


-_-;;;

문제는 테이블의 기본 collation 이 었습니다.

같은 문제로 고민할 분을 위해서 적어보자면

4.0 이나 그 이하버전에서 db 를 sql 텍스트 파일로 뽑아냅니다.

그리고 4.1 or 5 로 버전을 올리고

텍스트로 뽑아낸 db를 drop 한뒤에

재생성 (재생성 collation korean_euckr_ci 로 서정합니다.)

그리고 생성된 db에 sql 을

mysql -u ID -p --default-character-set=euckr DB < DB.sql

이런식으로 올리니까 재대로 되네요.

그립다는 것은 아직도 네가 내 안에 남아 있다는 뜻이다. 
그립다는 것은 지금은 너를 볼 수 없다는 뜻이다. 
볼 수는 없지만 보이지 않는 내 안 어느 곳에 네가 남아 있다는 뜻이다. 
-이정하의 《혼자 사랑한다는 것은》중에서-

12. MYsql 재시작, 종료

MySQL 종료

mysqladmin -uroot -p shutdown 또는 killall mysqld


MySQL 재시작

mysqld_safe & 또는 safe_mysqld &



mysql.server 파일을 가지고 있다면


MySQL 중지 : MySQL홈디렉토리/share/mysql/mysql.server stop


MySQL 시작 : MySQL홈디렉토리/share/mysql/mysql.server start


MySQL 재시작 : MySQL홈디렉토리/share/mysql/mysql.server restart



작동유무 확인

ps -ef | grep mysql





윈도우 환경에서 MySQL의 시작과 종료


시작 : net start mysql

종료 : net stop mysql


관리자 권한으로 명령프롬프트 실행하여 위의 명령을 하면 됩니다.


아니면 '제어판 - 관리도구 - 서비스' 에 들어가서 MySQL을 시작하고 정지 할 수 있습니다. 기본적으로 MySQL을 설치하면 자동시작으로 설정되어 있을 것입니다.



13. MySql 5.x에서 3.x 이하 패스워드 인식


- rpm으로 설치시


vi /etc/my.cnf


datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql


# Default to using old password format for compatibility with mysql 3.x


# clients (those using the mysqlclient10 compatibility package).


old_passwords=1 (추가 하셔요.)


- 소스 컴파일로 설치


vi /etc/rc.local

/usr/local/amp/mysql/bin/mysqld_safe --old-passwords&


14. mysql 3.x -> mysql4.0 -> mysql4.1 ->mysql5.0 버전업

* 다른 거 없다. 캐릭터 셋 부분만 주의해 주면 되고 my.cnf 파일에 명시만 잘해주면 된다.

3.x ->4.0 으로 업그레이드는 기냥 덤프만 떠주면 받아지고 잘될 것이다. 캐리터셋 깨지는 현상도 없을것이다.

4.0 ->4.1 이부분은 주의해야할것이 4.0 에서 덤프파일보면 euc-kr 이라고 된부분을 euckr 로 변경을 하면 된다.

4.1 에서 4.0 덤프파일을 리스토어 할려고 할때 에러가 생긴다 그게 바로 이부분때문에 생기는 거다.

또한 my.cnf 파일에 euckr 로 변경을 할경우


init_connect = SET collation_connection = euckr_korean_ci

init_connect = SET NAMES euckr

default-character-set=euckr

character-set-server=euckr

collation-server  = euckr_korean_ci

character-set-client-handshake=FALSE

이부분을 추가시켜 주자 . utf-8 일 경우는 utf-8로 변경을 하면 될것이다.

그리고 나서 데몬 shutdown / start  후 확인 .

 


4.1 -> 5.0 은 그냥 4.1에서 받은 덤프 파일을 5.0 에서 리스토어 하니깐 잘 되었다. 물론 5.0 의 my.cnf 파일에

위의 내용을 명시에 줘야한다. 그리고 나서 데몬 재구동 후 확인 .

버전업 테스트를 하기전에 여러 자료를 참조 했지만 너무 복잡하고 내 테스트환경하고 맞지 않는 부분이 많이 있었다.

버전업 테스트를 하고자 한다면 my.cnf 파일 변경만으로 테스트를 해보자 .



16.MySQL 을 Source Tar 파일을 이용하여 설치할 때

./configure 과정에서 아래와 같이 에러 메세지가 발생할 때가 있다.

checking "LinuxThreads"… "Not found"


아래와 같은 라인을 /usr/include/pthread.h 파일에 추가해주면 된다.

HOSTWAY # vi /usr/include/pthread.h


======SNIP======

/* Linuxthreads */

=====SNIP======



17.리눅스 특정 사용자 패스워드 초기화 방법 linux user password reset

1. root 계정 로그인 후
2. passwd -d [user 계정]

-> 다음 해당 유저 로그인 시 비밀번호 재설정 해야 함.


18. ㅇ패스워드 락(lock) 걸기


passwd -l 옵션을 사용하면 사용자가 로그인을 할 수 없게 된다. 

(암호화 되어 있는 패스워드 자리에 !! 가 표시된다)


위 그림에서 test03 패스워드 부분에 !!이 표시된 것은

root가 test03 계정을 useradd 명령어로 만들기만하고 패스워드 설정을 하지 않은 상태이기 때문이다. 


이렇게 암호 부분에 !!로 표시되면

root가 su(스위치) 명령어로 사용자 계정을 바꿔서 로그인하는건 가능하지만, 

잠긴 계정은 패스워드가 락(lock) 걸려있기 때문에 로그인이 불가능하다. 

패스워드 락을 해제하는 -u 명령어를 사용해야 락이 풀린다. 


19.  패스워드 삭제

passwd -d 옵션은 해당 계정의 패스워드 부분을 삭제한다. 

패스워드 부분에 락(lock)이 걸려있는 test03 계정과는 다르게 패스워드 부분에 아무 것도 없다. 

이 경우 다른 계정에서 패스워드 입력없이 로그인이 가능하기 때문에 사용에 주의해야 한다 !!