>  기사  >  데이터 베이스  >  mysql에서 5.6과 5.7의 차이점은 무엇입니까

mysql에서 5.6과 5.7의 차이점은 무엇입니까

WBOY
WBOY원래의
2022-03-01 16:45:2614583검색

mysql 5.6과 5.7의 차이점: 1. 버전 5.7은 json 형식 데이터를 제공하지만 버전 5.6은 json 버전 데이터를 제공하지 않습니다. 2. 버전 5.7은 여러 마스터와 하나의 슬레이브를 지원하지만 버전 5.6은 여러 마스터와 슬레이브를 지원하지 않습니다. 하나의 슬레이브 3 , 5.7 버전은 bin 디렉터리에서 데이터를 초기화하는 반면, 5.6 버전은 스크립트 디렉터리에 있습니다.

mysql에서 5.6과 5.7의 차이점은 무엇입니까

이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.

mysql에서 5.6과 5.7의 차이점은 무엇인가요?

1. 컴파일과 설치의 차이점

Mysql5.7은 업데이트 이후 json 등 많은 변화가 있었고, 심지어 BOOST도 바뀌었습니다. 설치를 위해서는 라이브러리가 필요합니다. mysql의 공식 웹 사이트 소스 코드에는 부스트 라이브러리가 있는 소스 코드와 부스트 라이브러리가 없는 소스 코드가 포함되어 있습니다.

mysql5.7은 고가용성을 달성하기 위한 다양한 방법으로 여러 마스터와 하나의 슬레이브를 지원합니다.

wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20.tar.gz

부스트를 사용한 MySQL 소스 코드 설치

1. 종속성 패키지 설치

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel   bison perl perl-devel  perl perl-devel

2. 컴파일 및 설치

cd /usr/local/mysql-5.7.20/
cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost
make
make install

. 부스트 mysql 소스 코드 설치 없이

1. 종속성 패키지 설치

yum -y install gcc gcc-c++ ncurses ncurses-devel cmake

2. 컴파일 및 설치

cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.20 \
-DMYSQL_DATADIR=/application/mysql-5.7.20/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.7.20/tmp/mysql.sock \
#开启BOOST库
-DDOWNLOAD_BOOST=1 \
#指定boost库位置
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0 
make
make install

2. 초기 인식 시 차이점

#【5.6版本初识化】
cd /usr/local/mysql/scripts/
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#【5.7版本初识化】这种初始化方式,默认密码在一个文件中
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

–initialize는 임의의 비밀번호를 생성하여 파일에 기록합니다

-insecure는 임의의 비밀번호를 생성하지 않습니다

3. 기능과 특징의 차이점

Security

사용자 테이블 mysql.user의 플러그인 필드는 비어 있을 수 없습니다. 기본값은 mysql_old_password가 아닌 mysql_native_password입니다. 이전 비밀번호 형식은 더 이상 지원되지 않습니다.

비밀번호 만료 메커니즘이 추가되었습니다. 만료 후 비밀번호를 변경해야 합니다. 그렇지 않으면 비활성화되거나 샌드박스 모드로 들어갈 수 있습니다.

비밀번호 만료 메커니즘을 추가하면 비밀번호를 변경해야 합니다. 그렇지 않으면 비활성화되거나 샌드박스 모드로 들어갈 수 있습니다.

제공됨 SSL 보안 액세스 구성이 더 간단하며 기본 연결은 SSL 암호화를 사용합니다.

Flexibility

MySQL 데이터베이스도 버전 5.7.8부터 JSON을 지원합니다.

정형 데이터와 비정형 데이터를 혼합하여 저장할 수 있으며, 관계형 데이터베이스와 비관계형 데이터베이스의 장점을 동시에 갖습니다.

완전한 트랜잭션 지원 제공 가능

생성 컬럼은 MySQL 5.7에 도입된 새로운 기능, 소위 말하는 생성된 열, 데이터베이스의 이 열은 다른 열에서 계산됩니다

사용 용이성

MySQL 5.7 이전에는 사용자가 잘못된 SQL 문을 입력하고 Ctrl+C를 누르면 실행이 "종료"될 수 있었지만 그러나 SQL 문은 현재 세션도 종료됩니다. MySQL 5.7은 이러한 반직관적인 측면을 개선하여 더 이상 세션을 종료하지 않습니다.

MySQL 5.7은 실행 중인 SQL을 설명할 수 있는데, 이는 DBA가 실행하는 데 오랜 시간이 걸리는 명령문을 분석하는 데 매우 유용합니다.

sys 스키마는 MySQL 5.7.7에 도입된 시스템 라이브러리로, 일련의 뷰, 함수 및 저장 프로시저를 포함하고 있으며 이 프로젝트는 MySQL의 사용 편의성에 중점을 두고 있습니다.

Availability

복제된 필터링 규칙의 온라인 설정 더 이상 MySQL을 다시 시작할 필요가 없으며, 수정이 완료된 후 SQLthread를 중지하면 됩니다.

버퍼 풀 크기를 온라인으로 수정하세요.

온라인 DDL MySQL 5.7은 인덱스 이름 변경 및 varchar 크기 수정을 지원합니다. 이전 버전에서는 이 두 작업을 수행하려면 인덱스 또는 테이블을 다시 작성해야 했습니다.

온라인에서 GTID 켜기 이전 버전에서는 GTID 온라인 켜기가 지원되지 않았기 때문에 사용자가 하위 버전의 데이터베이스를 GTID를 지원하는 데이터베이스 버전으로 업그레이드하려면 먼저 데이터베이스를 닫은 후 시작해야 합니다. 업그레이드가 매우 번거로운 GTID 모드입니다.

Performance

임시 테이블의 성능이 향상되었습니다.

임시 테이블은 현재 세션에서만 볼 수 있습니다.

임시 테이블의 수명 주기는 현재 연결입니다(MySQL이 다운되거나 다시 시작되면 현재 연결이 종료됩니다)

읽기 전용 트랜잭션 성능이 향상됩니다.

MySQL 5.7은 읽기 전용 트랜잭션에 트랜잭션 ID를 할당하지 않고, 읽기 전용 트랜잭션에 롤백 세그먼트를 할당하지 않고, 잠금 경쟁을 줄여서 읽기 전용 트랜잭션의 오버헤드를 최적화하고 데이터베이스의 전반적인 성능을 향상시킵니다.

-연결 처리 가속화

MySQL 5.7 이전에는 연결 수신 스레드에서 변수 초기화 작업(THD, VIO)이 완료되었습니다. 이제 이러한 작업은 연결 수신 스레드의 작업 부하를 줄이기 위해 작업자 스레드로 전송됩니다. 연결 처리 속도. 이 최적화는 짧은 연결을 자주 설정하는 애플리케이션에 매우 유용합니다.

복제 성능 향상(멀티 스레드 슬레이브 지원, MTS라고도 함)

MySQL의 기본 구성은 라이브러리 수준 병렬 복제입니다. MySQL 5.7의 병렬 복제 기능을 최대한 활용하려면 슬레이브가 필요합니다. 병렬 유형은

다중 소스 복제 지원

STRICT_TRANS_TABLES 모드가 기본적으로 활성화됩니다.

ONLY_FULL_GROUP_BY 모드에 대해 더 복잡한 기능 지원도 기본적으로 활성화됩니다. 기본적으로 활성화된 다른 SQL 모드는 NO_ENGINE_SUBSTITUTION입니다.

기본 매개변수 변경

기본 binlog 형식은 ROW 형식

으로 조정됩니다.

binlog 오류 후 기본 동작은 ABORT_SERVER로 조정됩니다

이전 옵션(binlog_error_action=IGNORE_ERROR)에서 오류가 발생하고 binlog를 쓸 수 없는 경우 mysql-server는 해당 오류를 오류 로그에 기록하고 binlog 기능을 강제 실행합니다. 꺼집니다. 이로 인해 mysql-server는 binlog를 기록하지 않는 모드로 계속 실행되어 슬레이브 라이브러리가 메인 라이브러리의 binlog를 계속 얻을 수 없게 됩니다.

mysql 충돌 시 Binlog 보안은 기본적으로 활성화되어 있습니다.

Slave_net_timeout은 기본적으로 낮아집니다.

다른 설치

mysql_install_db는 더 이상 권장되지 않습니다. 인스턴스 초기화를 완료하려면 mysqld --initialize로 변경하는 것이 좋습니다. datadir이 가리키는 대상 디렉터리에 이미 데이터 파일이 있는 경우 [ERROR] Aborting이 발생합니다.

초기화 중에 --initial-insecure를 추가하면 비밀번호가 비어 있는 root@localhost 계정이 생성됩니다. 비밀번호는 root@localhost 계정으로 생성됩니다. 비밀번호는 로그 오류 로그 파일에 직접 기록됩니다. 신규 사용자는 로그인 후 즉시 비밀번호를 변경해야 합니다. 그렇지 않으면 후속 작업을 계속할 수 없습니다.

추천 학습: mysql 비디오 튜토리얼

위 내용은 mysql에서 5.6과 5.7의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.