Warning: Using a password on the command line interface can be insecure. 메세지 안보이게 하기

리눅스/MySQL|2015. 1. 16. 11:41
반응형

MySQL 5.6 버전부터 mysqldump 명령시 패스워드를 같이 명령줄에 입력하면 
패스워드 노출 위험성에 대한 경고 문구가 뜨게 됩니다.

 

# mysqldump -u root -p"1234" sysdocu > sysdocu.sql
Warning: Using a password on the command line interface can be insecure.

 

이 메세지 출력을 원하지 않을 경우 아래와 같이 설정하시면 됩니다.
(사용자 계정 및 비밀번호를 미리 입력해두고 호출하는 방법)

 

# mysql_config_editor set --login-path=autologin --host=localhost --user=root --password
Enter password: (패스워드를 한차례 입력해줍니다.)

 

이제 root 계정과 패스워드가 autologin 이라는 명칭으로 저장되었습니다.

 


[옵션 설명]
--login-path : 구분하기위한 문자를 입력합니다. 여기서는 autologin 이라고 했지만 헷갈리지 않도록 계정명과 동일하게 사용하셔도 됩니다.

--host : 접속하려는 DB서버의 호스트명 또는 IP를 입력합니다.
--user : 저장할 계정을 입력합니다.
--password : 패스워드값은 제외하고 옵션만 지정하여 실행합니다. 패스워드는 엔터를 친 다음에 입력해야 합니다.


* 삭제시

mysql_config_editor remove --login-path=autologin


* 설정 리스트 확인시

mysql_config_editor print --all


 

[사용방법]
# mysqldump --login-path=autologin sysdocu > sysdocu.sql

패스워드 경고 메세지 없이 작업이 완료됩니다.



반응형

댓글()

./mysql_install_db: line 37: use: command not found

리눅스/MySQL|2015. 1. 16. 11:41
반응형

MySQL 설치시 아래와 같은 에러 메세지가 나타났을 경우


# sh ./mysql_install_db
./mysql_install_db: line 37: use: command not found
./mysql_install_db: line 38: use: command not found
./mysql_install_db: line 39: use: command not found
./mysql_install_db: line 40: use: command not found
./mysql_install_db: line 41: use: command not found
./mysql_install_db: line 42: use: command not found
./mysql_install_db: line 43: use: command not found
./mysql_install_db: line 45: syntax error near unexpected token `"pass_through"'
./mysql_install_db: line 45: `Getopt::Long::Configure("pass_through");'


아래와 같이 실행 명령을 바꾸어 해결할 수 있습니다.

# perl ./mysql_install_db



반응형

댓글()

Curses library not found. Please install appropriate package

리눅스/MySQL|2015. 1. 16. 11:41
반응형

mysql 5.6.14 설치시 cmake 할때 아래와 같은 에러메세지가 출력될경우

  
-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85 (MESSAGE):
  Curses library not found.  Please install appropriate package,
 
      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
  cmake/readline.cmake:128 (FIND_CURSES)
  cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE)
  CMakeLists.txt:325 (MYSQL_CHECK_EDITLINE)
 
 -- Configuring incomplete, errors occurred!
 
 아래와 같이 필요한 패키지를 추가 설치 후 다시 진행하면 됩니다.
 
# yum -y install bison ncurses-devel
# rm -f CMakeCache.txt
# cmake ... (생략)

반응형

댓글()

mysql 바이너리 로그 파일 초기화

리눅스/MySQL|2015. 1. 16. 11:40
반응형
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
....
mysql-bin.005009
 
위와같이 로그파일이 많아 삭제를 하고 000001 번부터 다시 사용하고자 할 경우에는
로그 인덱싱 파일(mysql-bin.index)과 모든 로그 파일(mysql-bin.*)을 삭제한 후
mysql 을 재시작 하면 아래와 같이 새롭게 생성이 됩니다.
 
-rw-rw----  1 mysql mysql      107  9월 13 11:46 mysql-bin.000001
-rw-rw----  1 mysql mysql       19  9월 13 11:46 mysql-bin.index


반응형

댓글()

MySQL 타임스탬프(timestamp) <-> 날짜 상호 변환

리눅스/MySQL|2015. 1. 16. 11:40
반응형

현재시간일자를 타임스탬프로

SELECT UNIX_TIMESTAMP();

SELECT UNIX_TIMESTAMP(DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'));

 

현재일자에서 하루후를 타임스탬프로

SELECT UNIX_TIMESTAMP(DATE_FORMAT(SYSDATE() + INTERVAL 1 DAY, '%Y-%m-%d %H:%i:%s'));

 

특정시간일자를 타임스탬프로

SELECT UNIX_TIMESTAMP('2012-01-01 12:00:00');

 

타임스탬프를 날짜시간으로

SELECT FROM_UNIXTIME(1337849511, '%Y-%m-%d %H:%i:%s');

 

[출처] MySQL 타임스탬프↔날짜 상호 변환|작성자 Developer (http://blog.naver.com/csaiur/10139447880)

반응형

댓글()

홈페이지 한글 깨짐(물음표) 현상 해결

리눅스/MySQL|2015. 1. 16. 11:40
반응형

설정 파일을 수정 합니다.


# vi /etc/my.cnf

 

[mysqld] 항목에 아래 옵션을 추가해주고 mysqld 를 재시작 합니다.

skip-character-set-client-handshake

 

/etc/init.d/mysqld restart



* MariaDB 10.3.17


최신 버전에서는 아래와 같이 추가해주어야 정상 출력되었습니다.


# vi /etc/my.cnf.d/mariadb-server.cnf


[mysqld] 항목에 아래 옵션 추가 후 mysqld 재시작

character-set-client-handshake=FALSE

collation-server=utf8_general_ci

character-set-server=utf8


# systemctl restart mysqld



반응형

댓글()

euckr DB를 utf8 로 변경하기 (간단)

리눅스/MySQL|2015. 1. 16. 11:39
반응형
MySQL 환경, data 모두 euckr 로 사용중인데 이것을 모두 utf8로 변환하고자 할때
(테스트 환경 : MySQL 5.0.77)
 
1. 데이타를 euckr 로 덤프 받습니다.
(옵션을 주지 않으면 시스템 캐릭터셋으로 저장될수 있습니다)
mysqldump -p --default-character-set=euckr sysdocu > sysdocu.sql
 
2. MySQL 환경을 바꿉니다.
다른 포스팅을 참고하여 /etc/my.cnf 의 euckr 을 utf-8 로 변경
 
3. MySQL 을 재시작 해줍니다.
/etc/init.d/mysqld restart
 
4. 덤프 파일을 열어 테이블 속성을 변경해줍니다.
(변경 하지 않아도 상관없으나 추후 속성확인 필요시 유용합니다)
vi sysdocu.sql
:%s/CHARSET=euckr/CHARSET=utf8/g
 
5. 덤프 파일을 넣습니다.
mysql -p --default-character-set=utf8 sysdocu < sysdocu.sql
 
사이트에서 확인하면 됩니다.


반응형

댓글()

[MySQL] DB 테이블 연산자 - UNION (두 개 이상 테이블 합치기)

리눅스/MySQL|2015. 1. 16. 11:39
반응형

UNION(유니온)
 - 두 개 이상의 테이블을 묶어서 반환한다.
 - Select의 열 리스트를 바탕으로 두 개 이상 쿼리의 결과를 하나의 테이블로 합친다.
 - 유니온의 결과를 각 Select의 값들이 "겹쳐진" 결과라고 생각하면 된다.

 

Select title From table1 
Union
Select title From table2 
Union
Select title From table3;

 

위 쿼리를 사용하면 하나의 테이블로 반환된다.

 
유니온 사용시 주의사항

 - 각 Select문의 열 수는 같아야한다. 첫번째 문장에서는 두 열을 선택하고 두번째에서는 하나의 열을 선택할 수 없다.
 - 각 Select문에 표현식과 집계 함수도 같아야 한다.
 - Select문의 순서는 중요하지 않다. 순서는 결과에 영향을 미치지 않는다.
 - 유니온의 결과에서 중복값은 하나로 나오는 것이 기본 설정이다.
 - 열의 데이터 타입은 같거나 서로 변환 가능한 값이어야 한다.
 - 특별한 이유가 있어 중복값을 보고 싶으면 UNION ALL을 사용할 수 있다. 
 - Order By의 경우 유니온의 맨 끝에 하나만 받을 수 있다.

 

 

* 각 Select에서는 같은 수의 열을 사용해야 한다.

 

Select title From table1 
Union
Select title From table2 
Union
Select title From table3 
Order By title;         -- 합쳐진 전체 테이블에 정렬을 적용한다.

 

예) Union으로 테이블 만들기

Create Table my_union AS
Select title From table1 Union 
Select title From table2 Union
Select title From table3;

 

 
* 참고 (아래 두 개의 연산자는 MySQL에서 지원하지 않는다.)
   - INTERSECT : 첫번째 쿼리와 두번째 쿼리 모두에 있는 열들을 반환한다. (교집합)

  

Select title From table1 
Intersect
Select title From table2;

 
   - EXCEPT : 첫번째 쿼리에는 있지만 두번째 쿼리에는 없는 열들을 반환한다.
                     table1에서 table2와의 교집합을 제거한 나머지 table1 부분을 반환한다.

 

Select title From table1 
Except
Select title From table2;

 

[출처] Powerful Programming | 음주코딩 (http://warmz.tistory.com/278)

반응형

댓글()

MySQL 5.5 에서 timestamp(14) 사용이 되지 않을때

리눅스/MySQL|2015. 1. 16. 11:38
반응형

MySQL 5.5 미만 버전에서는 테이블 생성시 timestamp(14) 사용이 가능했는데

5.5 이상 버전에서는 되지 않습니다.

 

이때는 (14) 를 빼고 timestamp 만 입력하면 생성이 가능합니다.

반응형

댓글()

MySql 설치에러 : checking "LinuxThreads"... "Not found"

리눅스/MySQL|2015. 1. 16. 11:38
반응형

mysql configure시에 
 
checking "LinuxThreads"... "Not found"
configure: error: This is a linux system and Linuxthreads was not found. On linux Linuxthreads should be used.  Please install Linuxthreads (or a new glibc) and try again

 
뭐 이런 에러가 뜬다.
 
[root@localhost ~]# echo '/* Linuxthreads */' >> /usr/include/pthread.h 
 
해당 명령어 입력해 준후에 다시 시도해 보면 정상적으로 시도된다. 

 

[출처] ROOT + ADMINISTRATOR | Rootrator (http://rootrator.tistory.com/46)

반응형

댓글()

MySql error Can’t open file: ‘host.MYI’. (errno: 142)

리눅스/MySQL|2015. 1. 16. 11:38
반응형

#service mysql start;tail -f /var/log/mysqld.log gives the following error.

=================================

080303 11:14:35 /usr/sbin/mysqld: Can’t create/write to file ‘/var/run/mysqld/mysqld.pid’ (Errcode: 2)
080303 11:14:35 /usr/sbin/mysqld: Can’t open file: ‘host.MYI’. (errno: 142)
080303 11:14:35 Fatal error: Can’t open privilege tables: File ‘/usr/share/mysql/charsets/?.conf’ not found (Errcode: 2)
080303 11:14:35 Aborting
===============

 

Fix:

# vi /usr/share/mysql/charsets/Index

// 설치되어있는 mysql 디렉토리 안에서 Index 파일을 찾습니다.

// 보통은 /usr/local/mysql/share/mysql/charsets/Index 입니다.

 

Add the following line at the end.

cp1251 83 

// 기존의 cp1251 의 번호를 83으로 변경합니다.

 

[출처] http://myfindings.wordpress.com/2008/03/03/mysql-error-cant-open-file-hostmyi-errno-142/

반응형

댓글()