Linux – CentOS 7 구축 MySQL5.6 데이터베이스 서버 및 구성 상세 정보

12196 단어 DatabasesLinux
Centos7은 기본 데이터베이스인 mysql을 Mariadb로 바꿨습니다. mysql을 계속 사용하려면 Mariadb를 마운트 해제하고 mysql을 설치해야 합니다.
1. MariaDB를 마운트 해제
  • 설치된 프로그램 보기
  • rpm -qa |grep -i mariadb
  • 설치된 Mariadb
  • 제거
    yum remove MariaDB-*

    주: 위의 두 명령을 다시 한 번 해제할 수 있습니다. - 삭제/etc/my.cnf
    rm /etc/my.cnf

    2. MySQL 설치
    오프라인 설치 패키지 다운로드
  • MySQL 홈페이지
  • https://dev.mysql.com/downloads/mysql/5.6.html
  • 설치 패키지 버전을 선택합니다. CentOS 시스템은 Red Hat의 분기 버전이기 때문에 모든 설치 패키지를 Red Hat 로 선택하면 됩니다.
  • Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), RPM Bundle
  • 다운로드한 가방은 tar가방
  • MySQL-5.6.40-1.el7.x86_64.rpm-bundle.tar

    윈도우즈 플랫폼에서 다운로드한 tar 패키지라면 WinSCP 소프트웨어를 통해 CentOS 시스템에 복사할 수 있습니다 - tar 설치 패키지 압축 해제/usr/local/디렉터리에 다운로드한 압축 해제 명령을 실행합니다
    tar -xvf MySQL-5.6.40-1.el7.x86_64.rpm-bundle.tar

    MySQL 설치
  • 루트 권한으로 전환
  • su - root
  • rpm로 설치
  • rpm -ivh MySQL-*
  • 설치 완료, MySQL 시작
  • systemctl start mysql
    ps -ef | grep mysql
  • 초기 암호 보기
  • cat /root/.mysql_secret

    A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER ! You will find that password in ‘/root/.mysql_secret’.
    You must change that password on your first connect, no other statement but ‘SET PASSWORD’ will be accepted. See the manual for the semantics of the ‘password expired’ flag.
    Also, the account for the anonymous user has been removed.
    In addition, you can run:
    /usr/bin/mysql_secure_installation
    which will also give you the option of removing the test database. This is strongly recommended for production servers.
    MySQL의 루트 사용자를 위한 랜덤 비밀번호를 설정합니다!"/root/.mysqlsecret"에서 이 비밀번호를 찾을 수 있습니다.
    너는 첫 번째 연결에서 비밀번호를 바꿔야 해. - 랜덤 비밀번호로 로그인한 후에 비밀번호를 바꿔.
    mysql -uroot -p
    SET PASSWORD = PASSWORD('root');
  • 전원 켜기 부팅 설정
  • 1. 프로파일 만들기
    touch /usr/lib/systemd/system/mysql.service

    2. 편집/usr/lib/systemd/system/mysql.서비스 파일
    vim /usr/lib/systemd/system/mysql.service

    3. mysql에서.서비스 파일에는 다음과 같은 구성이 추가됩니다.
    [Unit]
    Description=MySQL Server
    Documentation=man:mysqld(8)
    Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
    After=network.target
    After=syslog.target
    [Install]
    WantedBy=multi-user.target
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    LimitNOFILE = 5000

    ExecStart=/usr/local/mysql/bin/mysqld (MySQL 프로그램이 있는 경로로 변경하십시오) 4.전원 켜기 부팅 설정
    systemctl enable mysql.service

    참고: MySQL의 기본 설치 위치
    /var/lib/mysql/               #     
    /usr/share/mysql              #      
    /usr/bin                      #      
    /etc/init.d/mysql             #    

    2. MySQL 구성
    MySQL 간단한 구성
  • 보안 구성 마법사 시작
  • /usr/bin/mysql_secure_installation

    MySQL 문자 세트 구성
  • 파일 편집/etc/my.cnf
  • vim /etc/my.cnf
  • my.cnf 파일의 [mysqld] 탭에 다음과 같은 내용을 추가합니다
  • [client] 
    password        = root
    port            = 3306 
    default-character-set=utf8 
    [mysqld] 
    port            = 3306 
    character_set_server=utf8 
    character_set_client=utf8 
    collation-server=utf8_general_ci 
    #(  linux mysql       :       ,        ; 0:     ,1:      ) 
    lower_case_table_names=1 
    #(       ,    151,MySQL           16384; ) 
    max_connections=1000 
    [mysql] 
    default-character-set = utf8
  • 설정 완료, mysql
  • 다시 시작
    systemctl restart mysql
  • mysql에 로그인하여 문자 집합이 설정되었는지 확인
  • show variables like "%character%";
    show variables like "%collation%";

    이 때 데이터베이스에 원격 로그인하려면 먼저 권한을 설정해야 한다
    3. 사용자 권한 설정
    사용자 작성
    grant 권한 on 데이터베이스.*to 사용자 이름@호스트 identified by "암호"에 로그인하기;
    grant 방식으로 사용자를 보다 완벽하게 만들려면 다음과 같이 하십시오.
    데이터베이스에 사용자가 존재할 때 GRANT는 사용자에게 권한을 부여하지만 데이터베이스에 사용자가 존재하지 않을 때 해당하는 사용자를 만들고 권한을 부여한다. -로컬 로그인 사용자 만들기
    create user username@localhost identified by 'password';
  • 사용자 생성 시 권한 부여(원격 액세스 허용)
  • #       `username`      ip    password       
    grant all privileges on *.* to username@'%' identified by 'password';

    참고:
  • username@'%',%는 모든 IP의username 로그인을 허용합니다
  • .
  • username@localhost, localhost는 로컬username 로그인을 허용합니다
  • [email protected], 127.0.0.1 단일 IP로 설정할 수 있습니다. 즉, 단일 원격 호스트 로그인 허용
  • all privileges, 모든 권한을 나타냅니다
  • 권한 목록을 임의의 조합으로 바꿀 수 있습니다:select, insert, 업데이트, delete,create,drop,index,alter,grant,references,reload,shutdown,process,file
  •           
    select Host,User from mysql.user;
      user     
    show grants for user;
        user  (    )  
    GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON    .* TO user@'%' IDENTIFIED BY '  ';
      user              
    grant all privileges on *.* to user@localhost identified by '  ';
      user              
    grant all privileges on    .* to user@'%' identified by '  ';
      user              
    grant all privileges on *.* to user@'%' identified by '  ';

    사용자 권한 목록 조회
  • mysql 데이터베이스
  • 로 전환
    use mysql
  • 조회 권한 목록
  • SELECT User, Host, password FROM user;
  • user 사용자 조회 권한
  • show grants for user;

    4. 문제집
    (1) 비밀번호를 잊어버렸어요?
  • mysql 서비스 정지
  • systemctl stop mysql
  • 권한을 검사하지 않는 방식으로 mysql
  • 을 다시 시작합니다.
    mysqld_safe --skip-grant-tables &
  • mysql 비밀번호 수정
  • mysql -u root
    update mysql.user set password=PASSWORD('newpassword') where User='root’;
    flush privileges;
  • mysql 다시 시작
  • systemctl start mysql

    총결산
    참고 자료
    MySQL 작성 사용자**

    좋은 웹페이지 즐겨찾기