ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SUSE linux (opensuse) 11.1 - Mysql 설치와 셋팅
    Linux 2009. 4. 15. 16:36
    suse linux 11.1 버전, 처음 리눅스 설치 시 mysql을 패키지 상에서 같이 설치했을 때를 기준으로 잡습니다.


    처음 설정

    설치 후 처음에는 루트 비밀번호 설정되어있지 않으니 설정해줍시다

    #mysqladmin -u root password '입력할 패스워드'

    입력한 패스워드로 root 패스워드가 설정됩니다.

    이후 mysql을 실행하러 갑시다

    etc/init.d에 mysql이 깔려 있으니 터미널에서 해당 디렉토리로 이동합시다.

    #./mysql start 입력 시 서비스가 시작됩니다. start대신 stop, status, restart 등 명령어가 사용 가능합니다.

    #./mysql 만 따로 치면 뒤에 사용 가능한 명령어가 나오니 참고하세요.

    #mysql -u root -p 라고 접근하면 비밀번호를 물어보며, 비밀번호가 맞으면 mysql 내부로 들어가집니다.


    원격 접속 권한 설정

    mysql 내부에서

    >grant all privileges on *.* to 'oops'@'192.168.5.14'
    >identified by 'passwd' with grant option;

    해당 아이피의 호스트 에서 oops 라는 유저가 모든 권한을 부여받을 수있다는 말입니다.

    ip대신 % 를 주면 모든 호스트에 대해 허용됩니다.  ( 작은따옴표 필수 )

    이와 같은 설정은 select host, user from user; 로 확인해볼수 있습니다.


    UTF-8로 언어 인코딩 변경

    #vi /etc/my.cnf 로 접근합시다

    [mysql]
      default-character-set =utf8

     [mysqld]
      default-character-set=utf8

    mysql, mysqld 아래에 항목을 하나씩 추가해준 후 저장하고 나와서 mysql 재시작하면 됩니다.

    mysql 접속 후

    > show variables like "c%";

    를 사용하면 현재 상태를 알 수 있습니다.


    새로운 사용자 등록

    -> Mysql 에 root로 접속

    ./mysql -u root -p

    ->Mysql DB 선택

    mysql> use mysql;

    mysql> show tables;


    ->새로운 DB 생성

    mysql> create database xlare;


    -> user 테이블에 입력 (중요. user 라는 테이블에 새로운 사용자의 계정이름과 권한설정을 할 차례)

    -> 호스팅사용자에 대한 설정 user테이블에 현재 사용장0ㅔ 대한 권한들을 모두 'N'로 설정

    mysql> insert into user valuses('localhost', 'xlare', password('123'),'Y','Y','Y','Y','Y','N','N','N','N','N','N','N','N','N');


    ->user  테이블에 입력확인

    mysql> select * from user where user = 'xlare' ;


    -> db 테이블에 입력

    mysql> insert into db values('localhost', 'xlare', 'xlare', 'Y','Y','Y','Y','Y','N','N','N','N','N',);


    -> db 테이블에 입력 확인

    mysql> select * from db where db = 'xlare';


    -> 새로운 설정을 바로 적용키위해 mysqladmin 이라는 관리자명령어로 mysql 을 재시작

    ->reload를 해주지 않으면 생성했던 것들이 적용이 되지 않음

    # ./mysqladmin -u root -p reload;



    Mysql root 암호 변경하기

    -> 방법 1:  mysqladmin 이라는 명령어 사용

    # ./mysqladmin -u root -p password 12345

     

    ->방법 2: mysql의 set 이란 명령어로 root 암호 변경

    # ./mysql -u root -p mysql

    mysql> set password for root=passwd('12345678');

     

    -> 방법 3: mysql 데이터베이스로 접속하여 update문을 사용하는 방법

    # ./mysql -u root -p mysql

    mysql> update user set password=password('12345' where user = 'root';

    mysql> flush privileges;

     

    ->flush-privileges: 권한 테이블을 재시작한다. 권한 설정을 변경했을경우 반드시 재시작

    mysql> flush privileges;

     

    root 패스워드를 잊어버렸을 때는 어떻게?

    ->단계 1: 실행중인 mysql 종료

    # ps -ef | grep mysqld

    # killall mysqld

     

    ->단계 2: grant-table 미사용모드로 mysql시작 및 root로 접속

    # .safe_mysqld --skip-grant-tables&

     

    -> 단계 3: update문으로 root사용자 패스워드 변경

    mysql> update user set password=password('12345') where user = 'root';

    mysql> flush privileges;

     

    -> 단계 4: 실행중인 mysql 다시 종료

    # ps -ef | grep mysqld

    # killall mysqld

     

    -> 단계 5: 일반모드로 Mysql 재시작

    # ./safe_mysqld&

    # ps -ef | grep mysql




    백업과 복구

    MySQL에서는 mysqldump라는 파일을 실행하여 데이터베이스내의 데이터를 외부 파일로 저장할 수 있다.

    mysqldump는 mysql 디렉토리 밑의 bin 디렉토리에 존재하며 아래와 같은 명령어를 통해 백업을 수행한다.

    mysqldump -u [user_name] -p [백업할 db_name] > [외부로 저장할 파일명]

    23. linux3s? 데이터베이스를 백업해 보자.

    $ mysqldump -u linux3s1 -p linux3s > linux3s_backup.sql
    Enter password : ******

    24. 백업된 파일의 확인

    $ ls -l linux3s_backup.sql

    25. 위 명령의 실행 결과 생성된 linux3s_backup.sql 파일의 내용을 확인한다.

    $ cat linux3s_backup.sql

    mysqldump 명령으로 백업된 데이터베이스는 해당 데이터베이스내에 있는 테이블의 구조를 정의한 데이터 정의문과 INSERT 문과 같은 데이터 조작문의 SQL 형태로 저장되어 있다.

    이 렇게 SQL 형태로 자장되면 아래와 같은 명령으로 쉽게 데이터를 복구할 수 있다. 또한 SQL은 데이터베이스의 표준언어이므로 MySQL이 아닌 다른 database server에 해당 database를 이식하려 할 때에도 호환성에 의한 문제가 거의 발생치 않는 장점이 있다.

    26. 필요에 따라 linux3s_backup.sql 파일의 내용을 수정한 후 다음과 같은 방법으로 복구한다.

    $ mysql -u linux3s1 -p linux3s < linux3s_backup.sql
    Enter password : ******


    자동실행
    cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld -----//데몬을 복사 chmod  755  /etc/rc.d/init.d/mysqld
    chown  mysql.mysql  /etc/rc.d/init.d/mysqld
    ntsysv 해서 mysqld 를 체크하시면 부팅될때마다 자동 실행
    위에것 안됨.

    etc/init.d로 이동한 뒤

    # chkconfig --add mysql
    # chkconfig --level 2345 mysql on

    이라고 써주면 됩니다.


    정보제공

    http://bystory.co.kr/blog/106

    http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10110&eid=AzIRuDprGIep+yUSNSSAvl3VNIIxaGT6&qb=bXlzcWwgLXA=&enc=utf8

    my.cnf 정보 : http://cafe.naver.com/eitlinux.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=102

    http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10202&eid=5GnJeeh3cDOiI6poVpK/V87CPA3DPetF&qb=66as64iF7IqkIG15c3FsIOycoOyggA==&enc=utf8

    'Linux' 카테고리의 다른 글

    리눅스 명령어 요약  (0) 2009.04.15
    SUSE linux (opensuse) 11.1 - Sendmail 셋팅  (0) 2009.04.15
    SUSE linux (opensuse) 11.1 - Subversion 셋팅  (0) 2009.04.15
Designed by Tistory.