MySQL 데이터베이스 소개 및 컴파일 및 설치

데이터베이스에 대한 간단한 이해

간단히 말해서 데이터베이스 (데이터베이스)는 전자 파일을 저장하는 장소 인 전자 파일 캐비닛으로 볼 수 있으며 사용자는 파일에 데이터를 추가, 가로 채기, 업데이트, 삭제하는 등의 작업을 수행 할 수 있습니다.
소위 "데이터베이스"는 여러 사용자가 공유 할 수있는 특정 방식으로 함께 저장된 데이터의 모음으로, 가능한 한 중복성을 최소화하고 애플리케이션과 독립적입니다.
데이터베이스는 여러 테이블 스페이스로 구성됩니다.

데이터베이스 이해

데이터
기호 레코드는
숫자, 텍스트, 그래픽, 이미지, 사운드, 파일 레코드 등을 포함하여 데이터 (데이터)라고 합니다.
"레코드"형식으로 통합 된 형식으로 저장
각 행을 레코드라고합니다.
각 열을 필드라고합니다.

테이블
은 서로 다른 레코드를 함께 구성하여 "테이블
은 특정 데이터를 저장하는 데 사용됩니다.

데이터베이스
데이터베이스는
특정 조직에 저장된 테이블, 데이터 저장 웨어 하우스 및 관련 데이터 의 모음입니다 .
여기에 사진 설명 삽입

데이터베이스 개발

1 세대 데이터베이스
1960 년대 이후 1 세대 데이터베이스 시스템이 나왔습니다. 계층 적 모델과 네트워크 모델의 데이터베이스 시스템으로 데이터의 통합 관리 및 공유를 강력하게 지원합니다 .2
세대 데이터베이스
1970 년대 초반에 2 세대 데이터베이스 관계형 데이터베이스가
1980 년대 초반 에 등장하기 시작했습니다. 2 세대 관계형 데이터베이스 시스템 인 DB2가 나왔고, 2 세대 데이터베이스 시스템의 관계형 데이터베이스로 점차 계층 적, 메쉬 모델의 데이터베이스를 대체하기 시작하여 지배적 인 데이터베이스가되었으며 업계의 주류가되었습니다.
지금까지 관계형 데이터베이스 시스템은 여전히 ​​데이터베이스 애플리케이션의 주요 위치를 차지하고 있습니다.
3 세대 데이터베이스
가 1980 년대에 시작된 이래로 엔지니어링 데이터베이스, 멀티미디어 데이터베이스, 그래프 데이터베이스 및 지능형 데이터베이스와 같은 다양한 분야에 적응 된 다양한 새로운 데이터베이스 시스템이 등장하고 있습니다. 등 분산 데이터베이스와 객체 지향 데이터베이스, 특히 객체 지향 데이터베이스 시스템으로 인해 강한 실용성과 넓은 적응성 사람들이 선호하고 있습니다.
1990 년대 후반, 공동 응용 프로그램을 지원하는 데이터베이스 시스템의 다양한 형성 한 상황.
물론,에 비즈니스 애플리케이션과 관련하여 관계형 데이터베이스가 여전히 지배적이지만 몇 가지 새로운 요소가 주류 비즈니스 데이터베이스 시스템에 추가되었습니다.
예를 들어, Oracle에서 지원하는 "relation-object"데이터베이스 모델

이 단계의 주류 데이터베이스

MySQL (Oracle에서 인수)은
무료이며 오픈 소스이며 소규모입니다.
SQL Server (Microsoft 제품)는
Windows 운영 체제 용입니다.
간단하고 사용하기 쉽습니다.
Access (Microsoft 제품)는
Windows 용입니다.
Microsoft Office Suite 응용 프로그램
Oracle (Oracle) 의 멤버입니다 . 제품)
모든 주류 플랫폼 용
안전하고 완전하며 복잡한
db2 (IBM)
모든 주류 플랫폼 용
크고 안전하며 완전한
Sybase (Sybase)
모든 주류 플랫폼 용
크고 안전하며 완전한
세계 최대 규모

관계형 데이터베이스

관계형 데이터베이스 시스템은 관계형 모델을 기반으로 한 데이터베이스 시스템이며 기본 개념은 관계형 모델에서 비롯됩니다.

관계형 모델은 관계형 대수 이론을 기반으로하며 데이터 구조는 간단한 "엔티티-관계"(ER) 다이어그램으로 직접 표현할 수있는 간단하고 이해하기 쉬운 2 차원 데이터 테이블을 사용합니다.

ER 다이어그램에는 엔티티 (데이터 오브젝트), 관계 및 속성의 세 가지 요소가 있습니다. 예 :
여기에 사진 설명 삽입

실재:

인스턴스라고도하며
은행 고객, 은행 계좌 및 기타
속성 과 같이 실제 세계의 다른 개체와 구별 될 수있는 '이벤트'또는 ' 사물'에 해당 합니다.

엔티티의 특정 특성에 대해 엔티티는 여러 속성을 가질 수 있습니다. 예를 들어 "은행 고객"엔티티 세트의 각 엔티티에는 이름, 주소 및 전화 번호와 같은 속성이 있습니다
.

엔티티 세트 간의 대응을 연관이라고하며 관계라고도합니다. 예를 들어, 은행 고객과 은행 계좌간에 "저축"관계가 있습니다.
모든 엔티티 및 해당 연결의 수집은 관계형 데이터베이스를 구성합니다.

고유하고 비어 있지 않은 특성을 갖는 기본 키라고하는 관계형 데이터베이스 테이블에 코드가 있습니다.

관계형 데이터베이스의 저장 구조는 2 차원 테이블이며 사물과 연결을 반영하는 데이터는 테이블 형태로 저장됩니다.

각 2 차원 테이블에서 각 행은 레코드라고하며 개체의 정보를 설명하는 데 사용되며 각 열은 필드라고하며 개체의 속성을 설명하는 데 사용됩니다.

관계형 데이터베이스의 적용 예 :

12306 사용자 정보 시스템
Taobao 계정 정보 시스템, Alipay 계정 시스템 모바일, 통신, China Unicom 휴대 전화 번호 정보 시스템, 결제 시스템 은행 사용자 계정 시스템
웹 사이트 사용자 정보 시스템

비 관계형 데이터베이스

비 관계형 데이터베이스는 NOsQL (Not Only SQL)이라고도하며 저장된 데이터는 관계형 모델을 기반으로하지 않으며 고정 테이블 형식이 필요하지 않습니다.

관계형 데이터베이스에 대한 보완으로, 비 관계형 데이터베이스는 웹 사이트의 급속한 개발 시대에 높은 효율성과 고성능을 발휘합니다.

비 관계형 데이터베이스의 장점

데이터베이스의 높은 동시 읽기 및 쓰기에 대한 요구
대용량 데이터 효율적인 저장 및 액세스에 대한 요구 데이터베이스의
높은 확장 성과 고 가용성에 대한 요구
대부분의 NoSQL은 파일 형태로 존재합니다.

관계형 데이터베이스 스토리지

키-값 방식 (키-값), 키 기반 데이터 저장, 삭제 및
수정 . 관련 데이터를 컬럼 패밀리
문서 에 저장하는 방식 인 컬럼 지향 스토리지 (열 지향) . 데이터베이스는 각각 일련의 데이터 항목으로 구성됩니다. 데이터 항목에는 이름과 해당 값이 있습니다.
그래픽 모드, 엔티티는 꼭지점, 관계는 에지이며 데이터는 그래프로 저장됩니다.
비 관계형 데이터베이스 제품

Memcached는 키-값 방식으로 데이터를 저장하는 분산 메모리 개체가있는 오픈 소스 고성능 캐시 시스템입니다.

데이터베이스 부담을 줄이고 액세스 속도를 높이기 위해 데이터를 캐시합니다.
동적 웹 애플리케이션을 가속화합니다.
캐시 된 콘텐츠는 메모리에 저장됩니다.
Redis는 데이터를 저장하는 핵심 방법이기도합니다. 데이터도 메모리에 저장되지만 데이터는 정기적으로 디스크에 기록됩니다.

Memcached와 비교하여 다음과 같은 기능이 있습니다.
메모리 캐시
지원 . 지속성 지원.
더 많은 데이터 유형.
클러스터 및 배포
지원. 대기열 지원.
데이터베이스 로그 파일이 복구에 사용됩니다. Oracle 로그를 리두 로그 그룹이라고합니다.

예 :
Ali oss 객체 스토리지는 oracle redo 로그 그룹의 개념을 채택합니다.
Ali oss 데이터는 3 중입니다. Pangu 시스템
Redis의 릴레이 로그 (바이너리 로그) 입니다 .
Redis 애플리케이션 예.
데이터베이스 프런트 엔드 캐시
세션 공유.
키 / 값 이외의 캐시가 필요한 경우
캐시 된 데이터를 장기간 저장해야 할 때 더 많은 데이터 유형이 외부에 있을 때

MySQL 컴파일 및 설치

설치 환경 의존성

[root@5centos ~]# yum -y install gcc \
> gcc-c++ \
> ncurses \     ##字符终端依赖包
> ncurses-devel \
> bison \       ##函数库
> cmake

컴파일 및 설치

[root@5centos mysql-5.7.20]# useradd -s /usr/sbin/nplogin mysql
[root@5centos mysql-5.7.20]# tar zxvf boost_1_59_0.tar.gz 
[root@5centos mysql-5.7.20]# mv boost_1_59_0 /usr/local/boost
[root@5centos mysql-5.7.20]# tar zxvf mysql-boost-5.7.20.tar.gz 
[root@5centos mysql-5.7.20]# cd mysql-5.7.20/
[root@5centos mysql-5.7.20]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
> -DSYSCONFDIR=/etc \
> -DSYSTEMD_PID_DIR=/usr/local/mysql \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
> -DMYSQL_DATADIR=/usr/local/mysql/data \
> -DWITH_BOOST=/usr/local/boost \
> -DWITH_SYSTEMD=1
[root@5centos mysql-5.7.20]# make && make install
[root@5centos mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/

구성 파일 환경 변수 편집

[root@5centos /]# vim /etc/my.cnf
##删除全部,敲入下面几行
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

[root@5centos /]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@5centos /]# echo 'export PATH' >> /etc/profile
[root@5centos /]# source /etc/profile

초기화

[root@5centos local]# cd mysql/
[root@5centos mysql]# bin/mysql \
> --initialize-insecure \
> --user=mysql \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data 

서비스를 시작하고 데이터베이스를 확인하십시오.

[root@5centos /]# mysqladmin -u root -p password
Enter password: 
New password: 
Confirm new password: 
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
[root@5centos mysql]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.20 Source distribution
……省略部分……
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

추천

출처blog.csdn.net/Ora_G/article/details/108024961