나만의 Web Server 만들기

Centos 7 - 데이타베이스(MySql) 설치

Centos7 부터는 데이타베이스가 Mariadb로 바뀌었습니다.

그래서 MySql을 yum 으로 바로 설치가 불가능합니다.

때문에 아래 명령을 차례로 입력하여 줍니다.

# yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

# yum -y install mysql-community-server

# systemctl start mysqld

# systemctl enable mysqld

# mysql


mysql>quit

이렇게 mysql까지 들어가면 프롬프트가 mysql>로 바뀌면 설치가 완료된 것입니다.

추가사항

최신 버전의 mysql 최초 실행시  Access denied for user 'root'@'localhost' (using password: NO)라는 에러메시지가 나옵니다. 

이것은 mysql root 의 패스워드가 입력되지 않아 접근이 거부된 경우입니다.

mysql 최초 설치후 root 비밀번호는 임시로 자동 생성됩니다.

자동 생성된 비밀번호는 /var/log/mysqld.log 에서 확인 가능합니다.

[Note] A temporary password is generated for root@localhost: ZPelHokYi3/b

이런 문자열을 찾으셔서 맨 뒤에 ZPelHokYi3/b 가 임시 비밀번호입니다.

mysql -uroot -p 를 입력한 후 비밀번호 입력란에 위에 임시 비밀번호를 넣으시면 됩니다.

이상태로 끝난다면 다행이지만 위와 같이 하고 mysql에 접속 까지는 되는데 또 에러가 납니다.

ERROR 1820 (HY000) : You must reset your password using ALTER USER statement before executing this statement.

ALTER USER 문을 사용하여 비밀번호를 재 설정 하라는 내용인데...

변경은 않되는것 같고 임의 설정된 비밀번호를 다시 입력해 주면 됩니다.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'ZPelHokYi3/b';
Query OK, 0 rows affected (0.00 sec)

OK 메시지가 나오면 FLUSH 해 줍니다.

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

이제 다른 명령을 입력하면 되는데 당연하지만 임의 비밀번호를 내가 원하는 비밀번호로 바꾸는게 좋습니다. 

mysql> UPDATE user set authentication_string=password('openTutorials') where user='root';

하면 되는데 또 에러가 납니다..

비밀번호 정책에 충족하지 않는다는...

참 복잡하게도 업데이트 된것 같습니다.

비밀번호 정책의 테이블을 확인 하려면

mysql> SHOW variables LIKE 'validate_password%';

이렇게 확인해 보면 패시워드 길이, 숫자, 문자 갯수 제한 등등 나옵니다.

그중 validate_password_policy 의 값이  MEDIUM 입니다.

MEDIUM은 해당 정책을 모두 수용하는 값입니다.

귀찮으니까 LOW로 바꿔서 비밀번호를 그냥 편하게 쓸수 있도록 합니다.

mysql> SET GLOBAL validate_password_policy=LOW;

그 다음 위의 UPDATE 명령으로 root 의 비밀번호를 바꿉니다.

mysql> mysql> UPDATE user set authentication_string=password('openTutorials') where user='root';
mysql> FLUSH PRIVILEGES;

quit 명령으로 mysql에서

빠져 나옵니다.

 

 

 

 

 

 

 

 

 

 

 

# reboot

reboot 명령으로 재시작합니다.

# mysql -uroot -p

재시작 후 mysql 이 정상 실행 되면 정상적으로 설치가 완료된것입니다.

이제 mysql에서 명령을 입력합니다.

mysql> status;

 

 

 

 

 

 

 

 

 

 

mysql 설정값을 보면 characterset 값이 latin1 인것을 알수 있습니다.

따라서 mysql의 charaterset 을 utf8로 통일 시키겠습니다.

이 값들을 바꾸려면 my.cnf 파일을 편집해 줍니다.

my.cnf 파일은 /etc/ 안에 있습니다.

# vi /etc/my.cnf

[client] 
default-character-set = utf8

[mysql]
default-character-set=utf8

[mysqld]

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

character-set-server=utf8
collation-server=utf8_general_ci
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8

character-set-client-handshake = FALSE
skip-character-set-client-handshake

[mysqldump]
default-character-set=utf8

값들을 보시고 기존에 있는것은 놔두고 없는것은 추가시켜주면 됩니다.

저장 후 mysql을 재시작해 줍니다.

# systemctl restart mysqld

# mysql

mysql> status

mysql을 실행하고  status 명령을 주면 이제 charcterset이 utf8로 바뀐것을 보실수 있습니다.

 

 

 

 

 

 

 

 

 

 

이제 mysql의 1차 설정은 끝입니다.

2차 설정은 php와 phpmyadmin을 설치한 후에 시작합니다..

댓글

댓글 본문
  1. centos 에서
    mysql 5.5.x 버전을 설치하고 싶은데,
    어떻게 설치하면 될까여?ㅠ
  2. 왕우
    [client]
    default-character-set = utf8

    [mysql]
    default-character-set=utf8

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    character-set-server=utf8

    여기까지만 하면됨
  3. 티앱
    추가 사항으로 올려놓은 글을 다시 읽어 보시기 바랍니다.
    대화보기
    • mysql -uroot -p (PW) 입력시
      enter password: 라고 출력이됩니다.

      root 비밀번호를 입력시 Access denied for user 'root'@'localhost' (using password: YES) 라고 출력되는데 아십니까?
    • 티앱
      따로 있는것 같지는 않고 mysql은 오라클사의 소유로 라이센스가 불확실하여 오픈라이센스로 개발된 mariadb를 체택한듯 합니다.
      Mariadb를 사용해도 mysql을 사용하듯 하면 되니 불편한점은 없는듯 합니다.
      대화보기
      • 생활코딩짱
        centos7 mysql -< mariaDB로 변경된 이유가 따로 있나요?
      • 이승원
        계정 비밀번호 변경시

        ERROR 1046: No Database Selected 나오는 경우가 있습니다.


        사용자 계정에 대한 관리는 mysql database 에서 합니다.
        mysql>use mysql;
        치면 해결
      • bobby
        전 임시 비밀번호를 넣어도.. 계속 error 1045가 나옵니다 ㅠㅠ;
        ------------------------------------------------------------------------------------------
        [root@localhost bin]# systemctl start mysqld
        [root@localhost bin]# systemctl enable mysqld
        [root@localhost bin]# mysql
        ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
        [root@localhost bin]# mysql -uroot -pcg%p:&FGS88p
        [3] 32017
        bash: FGS88p: command not found
        [root@localhost bin]# mysql: [Warning] Using a password on the command line interface can be insecure.
        ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

        [3] Exit 1 mysql -uroot -pcg%p:
      • ㅠㅠ
        와 정말감사합니다!!! 정말 설치때문에 온 구글을 쥐잡듯이 뒤졌는데 드디어 해결이 됐네요 ㅠㅠㅠ
      • 전자공학
        감사합니다!!
      • 감자
        감사합니다!!
      • 님이최고임
        사랑합니다
      • 초보개발러
        정말 큰 도움이 되었습니다. 감사합니다.

        포스팅한지 시간이 많이 지났지만 2차 설정 부분도 올려주시면 감사하겠습니다.
      • 강기중
        php와 db 연동하는 것은 혹시 안 올려 주시나요?
      • freenomaid
        고맙습니다.
      • 다크어밴져
        감사합니다 퍼가겠습니다.

        감사합니다. 저기 링크에서 현재 최신버전은

        # yum -y install http://dev.mysql.com......rpm

        으로 받으면 되는군요. 감사합니다. ^^
      • blog.asterisk.or.kr
        ㅠㅡㅠ 정말감사합니다.ㅠ 4일째 삽질하다가 발견했네요.ㅜ

        퍼가겠습니다.ㅠ 감사합니다.ㅠ
      • ㄱㄱ
        감사합니다 정말 많은 도움이 되었어요!
      • 김지희
        php 설치는 아직 없나요 ㅠ?
      • 박진히
        정보 감사합니다.
      • 광대승천
        엄청 유용하네요 정말 감사드립니다 ^^
      • 나그네
        감사합니다. 최고 친절하게 되어 있네요^^
      • 클게자리
        감사합니다.
        커다란 도움이 되었습니다.
        행복한 하루 되세요
      • 초보자
        깔끔한 정리와 설명 감사드립니다! 혹시 2차 설정은 안 올리신 건가요..?ㅜ
      • 맥스
        감사합니다. 계속 헤매다가 깨끗이 지우고 알려주신대로 했더니 잘 되네요. 큰 도움이 됬어요.
      • 라온
        좋은 정보 감사합니다.
      • 해원
        잘 봤습니다.
        간단하게 보고 좋았고, 무엇보다 CENTOS7 에 대응해서 했다는점이 더 좋았습니다.
        다음 과정이 없어 조금 아쉽긴 합니다.
      • 꼬딩
        감사합니다. 많은 도움이 되었습니다
      • 박기현
        centos 버전에 따른 mysql 설치 차이가 있군요..

        1시간 정도 해메다가 도움 받고 감니다. ^^
      버전 관리
      티앱
      현재 버전
      선택 버전
      graphittie 자세히 보기