MariaDB는 MySQL의 분기 인 CentOS에 기본적으로 설치되지만 필요에 따라 시스템에 MySQL을 설치해야하며 설치가 완료된 후 MariaDB를 직접 덮어 쓸 수 있습니다.
1. mysql 설치
(yum 소스에는 mysql-server가 없기 때문에 공식 웹 사이트로 이동하여 다운로드해야합니다. 여기서는 wget 명령을 사용하여 직접 가져옵니다)
wget -i http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2. mysql의 의존성 패키지 설치
yum -y mysql57-community-release-el7-10.noarch.rpm 설치
또는 rpm -ivh mysql57-community-release-el7-10.noarch.rpm
3. mysql 데이터베이스 설치
yum -y mysql-community-server 설치
4. 설치를 완료하고 mysql을 다시 시작합니다.
systemctl restart mysqld.service
이때 MySQL이 정상적으로 실행되기 시작했지만 MySQL에 들어가려면 먼저 루트 사용자의 비밀번호를 찾아야합니다. 다음을 사용하여 로그 파일에서 비밀번호를 찾을 수 있습니다. 다음 명령 :
grep "password"/ var / log /mysqld.log
참고 : 앞의 공백은 비밀번호가 아닙니다.
5. 위의 비밀번호를 복사하여 붙여 넣어 데이터베이스에 들어갑니다.
mysql -uroot -p
초기 암호를 입력합니다. MySQL은 암호 명령을 수정하기 위해 데이터베이스를 작동하기 전에 기본적으로 암호를 수정해야하므로 지금은 아무것도 할 수 없습니다.
ALTER USER'root '@'localhost 'IDENTIFIED BY' 123 ';
6. 오류 해결
위의 오류는 새로 설정된 암호가 너무 간단하다는 것입니다. 해결책은 다음과 같습니다.
// 먼저 기본 암호 형식의 복잡성을 변경합니다.
ALTER USER'root '@'localhost 'IDENTIFIED BY'Xiejinming @ 12';
7. MySQL의 전체 초기 비밀번호 규칙보기
MySQL의 전체 초기 비밀번호 규칙을 보려면 ALTER USER 명령 (SHOW VARIABLES LIKE'validate_password % ';)을 사용하여 비밀번호를 변경해야한다는 전제가 있습니다.
참고 : 비밀번호의 길이는 validate_password_length에 의해 결정됩니다. validate_password_length의 계산 공식은 다음과 같습니다. validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
8. MySQL 기본 정책 및 암호 길이 수정
1) 비밀번호 수정 정책
현재 비밀번호가 너무 복잡해서 나중에 실험하기에는 편리하지 않기 때문에 다음 두 가지 방법으로 명령을 사용하여 비밀번호 정책을 수정할 수 있습니다.
다음 두 가지 방법은 임의로 실행하는 데 사용되는
, MySQL은> 설정 글로벌 validate_password_policy = 0
의 MySQL> 설정 글로벌 validate_password_policy = LOW 단계;
참고 : 네 암호 정책이있다 :
1. OFF (폐쇄) 2. LOW (로우) 3. MEDIUM (중간 ) 4. 강함 (강함)
2) 비밀번호 길이 수정
위의 정책을 변경 한 후 길이 를 변경합니다. mysql> SET GLOBAL validate_password_length = 6;
9. 암호 규칙보기
모든 변경이 완료된 후 암호 규칙을 확인하십시오 mysql> SHOW VARIABLES LIKE'validate_password % ';
10. 간단한 비밀번호로 변경
다음으로, 복잡한 암호를 간단한 4 자리 암호로 변경할 수 있습니다
.ALTER USER'root '@'localhost 'IDENTIFIED BY'123456 ';
11. 설치 소스의 자동 업데이트 제거
Yum 리포지토리가 설치되어 있기 때문에 현재 데이터베이스가 설치 되었기 때문에 모든 yum 작업이 향후 자동으로 업데이트되므로 현재 문제가 있습니다.
yum remove mysql57-community-release.noarch
12. 데이터베이스 초기화
mysql_secure_installation
참고 : 초기화 명령을 실행 한 후 데이터베이스 루트 사용자 암호를 입력 한 다음 기본적으로 위의 스크린 샷과 같이 Enter 키를 끝까지 눌러야합니다. (위 스크린 샷 질문은 실제 상황에 따라 선택할 수도 있습니다.)
13. 원격 도구가 연결할 수 있도록 권한 부여
1) mysql 데이터베이스로 전환 : use mysql;
2) 모든 호스트가 루트 계정과 암호 123456을 사용하여 로그인 할 수 있도록 권한을 부여하십시오.
GRANT 옵션으로 '123456'으로 식별되는 'root'@ '%'에 *. *의 모든 권한을 부여합니다.
3) 새 권한 새로 고침 : 권한 플러시;
4) 사용자보기
사용자로부터 user, host, authentication_string 密码 선택;
5) 방화벽 끄기
보기 | 닫기 | 방화벽 시스템 열기 ctl 상태 | 중지 | firewalld.service 시작
방화벽을 영구적으로 비활성화 : systemctl disable firewalld.service
6) Navicat 도구를 사용하여 링크 테스트
14. 대소 문자를 무시하도록 데이터베이스를 설정합니다 (일부 프로젝트는 무시해야합니다. 그렇지 않으면 프로젝트가 시작되지 않습니다)
Linux 시스템의 기본 설정에서 :
数据库名与表名是严格区分大小写的;
列名与列的别名在所有的情况下均是忽略大小写的;
变量名也是严格区分大小写的;
Windows 시스템의 기본 설정에서 :
都不区分大小写
lower_case_table_names의 값을 확인하십시오. 0은 대소 문자를 구분하고 1은 대소 문자를 구분하지 않음을 의미합니다.
'% case %'와 같은 변수 표시;
mysql> SHOW VARIABLES LIKE '%case%';
+------------------------------------+-------+
| Variable_name | Value |
+------------------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 0 |
| validate_password_mixed_case_count | 1 |
+------------------------------------+-------+
3 rows in set (0.01 sec)
mysql>
해결책:
1) vi /etc/mysql/my.cnf를 사용하여 mysql 구성 파일을 엽니 다.
2) [mysqld] 아래에 다음 코드를 추가합니다. lower_case_table_names = 1
참고 : mysqld 노드 아래에 배치해야하며 다른 노드 아래에 배치하면 효과가 없습니다 !!!!
방법에 따라 다음 구성을 추가 할 수 있습니다.
character_set_server = utf8
# 새 데이터 테이블의 기본 스토리지 엔진
default-storage-engine = INNODB
max_allowed_packet = 128M
max_connections = 1000
lower_case_table_names = 1
3) 설정 후 데이터베이스 저장 및 재시작 : systemctl restart mysqld.service
4) lower_case_table_names의 값을 다시 확인하십시오.
'% case %'와 같은 변수 표시;
mysql> SHOW VARIABLES LIKE '%case%';
+------------------------------------+-------+
| Variable_name | Value |
+------------------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 1 |
| validate_password_mixed_case_count | 1 |
+------------------------------------+-------+
3 rows in set (0.01 sec)
mysql>