>  기사  >  데이터 베이스  >  MySQL 컴파일, 설치 및 간략한 소개

MySQL 컴파일, 설치 및 간략한 소개

黄舟
黄舟원래의
2017-09-30 10:56:211343검색

=========MYSQL 작동 원리 다이어그램:

1》데이터베이스 소개: 간단히 말해서 데이터베이스는 특정 규칙에 따라 데이터를 디스크에 저장하는 창고입니다. 한편, 데이터베이스 관리 시스템을 통해 데이터베이스에 저장된 데이터를 효과적으로 관리할 수 있습니다.
SQL 언어: DBMS는 SQL 언어를 통해 데이터베이스를 관리합니다. SQL 언어는 주로 데이터 저장, 데이터 쿼리, 관계형 데이터베이스 업데이트 및 관리에 사용되는 쿼리 및 설계 언어입니다.
      SQL 언어는 세 부분으로 나뉩니다.

            DDL(데이터 정의 언어) 문은 데이터베이스 테이블을 정의하고 인덱스를 보는 데 사용됩니다.
Create
Alter
Drop
Rename
Truncate
Comment
DML(Data ManipLlating Language) 문은 데이터 삽입, 데이터 쿼리, 데이터 업데이트, 데이터 삭제에 사용되는 L(Data Control Language) 문입니다. 사용자 접근 권한을 제어하기 위해
                                                                                       3.Sy 기반
  3.Sy 기반
   4.Microsoft Access 및 SQL Server
5. 오픈 소스 PostgreSQL
6. 오픈 소스 Mysql

Mysql 기능:

1. Cross -플랫폼, 다중 운영체제 지원, AIX FreeBSD HP-UX Linux MacOS NovellNetware OpenBSD Solaris windows 등 2. 멀티스레딩 지원, 하드웨어 자원(CPU 자원) 활용 가능

3. 대용량 데이터베이스 지원 및 대용량 데이터베이스 처리 가능 수천만 개의 항목이 있습니다.
4. 다중 플러그인 스토리지 엔진 지원

mysql-server-5.6

  1) 이제 InnoDB는 (여기에 언급된 것과 같은) 많은 수의 테이블을 열 때 과도한 메모리 사용 문제를 제한할 수 있습니다(타사에 패치가 있음)
  2)InnoDB 성능 향상. 커널 뮤텍스 분할, 메인 스레드에서 플러시 작업 분리, 대용량 메모리 최적화 등 3) 쉬운 분석을 위해 InnoDB 교착 상태 정보를 기록할 수 있습니다. 4) MySQL5.6은 지연된 복제를 지원합니다. 이는 슬레이브와 마스터 사이의 시간 간격을 제어하여 특별한 상황에서 데이터 복구를 용이하게 합니다.

 5) 테이블 파티션 기능이 강화되었습니다

 6) MySQL 행 수준 복제 기능이 강화되어 디스크, 메모리, 네트워크 및 기타 자원의 자원 오버헤드를 줄일 수 있습니다. (행 레코드를 결정할 수 있는 필드만 기록됩니다.)
 7) Binlog는 크래시 안전을 구현합니다
 8) 복제 이벤트는 crc32 검증을 사용하여 마스터/슬레이브 복제 데이터 일관성을 향상합니다
 9) log_bin_basename 추가(이전에는 변수에 binlog 위치 정보가 없어 데이터베이스 감독에 매우 불편함)

2》MYSQL 컴파일 및 설치:

  1>설치 종속성 패키지:

​ ​ ​ ​

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

​ ​ 2>사용자 생성:
​ ​ ​ ​ 3>Mysql 설치:
​ ​ ​ ​
# groupadd mysql
             # useradd mysql –g mysql –s /sbin/nologin
             #mkdir -p /usr/local/mysql //Mysql的安装目录
             #mkdir -p /data/mysqldb  //Mysql数据目录
             #mkdir -p /data/mysqldb/binlog //创建BINLOG日志目录   
             #mkdir -p /data/mysqldb/log   //创建MYSQL 日常LOG目录

***참고: 구성을 다시 실행하려면 CMakeCache.txt 파일을 삭제해야 합니다

======= === 컴파일 및 분석:

  #cmake Compilation command



   -DCMAKE_INSTALL_PREFIX=/ usr/local/mysql mysql 설치 디렉터리를 설정하세요

    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock은 절대 경로 이름이어야 하는 청취 소켓 경로를 설정합니다. 기본값은 /tmp/mysql.sock
    -DSYSCONFDIR=/etc 구성 파일은 /etc/
    아래에 있습니다. -DDEFAULT_CHARSET=gbk 서버의 문자 집합을 설정합니다.
                                                                                     기본적으로 MySQL은 latin1(CP1252 서유럽어) 문자 집합을 사용합니다. cmake/character_sets.cmake 파일에는 허용되는 문자 세트 이름 목록이 포함되어 있습니다.
    -DDEFAULT_COLLATION=gbk_chinese_ci 서버의 대조 규칙을 설정합니다.
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
  스토리지 엔진 옵션:
  내 ISAM, MERGE, MEMORY 및 CSV 엔진은 서버에 컴파일되어 있으므로 명시적으로 설치할 필요가 없습니다.
   스토리지 엔진을 서버에 정적으로 컴파일하려면 -DWITH_engine_STORAGE_ENGINE= 1을 사용하세요.
사용 가능한 스토리지 엔진 값은 ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE(InnoDB), PARTITION(파티셔닝 지원) 및 PERFSCHEM)                             (성능 스키마 )
-DMYSQL_DATADIR=/data/mysqldb mysql 데이터베이스 파일 디렉터리 설정 MYSQL_TCP_PORT=3306은 mysql 서버 수신 포트를 설정하며 기본값은 3306

   -DENABLE _DOWNLOADS=1

                                                                                                                       -DENABLE_DOWNLOADS= 1                            -DENABLE_DOWNLOADS=1                                    -DENABLE_DOWNLOADS=1      예를 들어 이 옵션을 활성화하면(1로 설정) cmake는 Google에서 단위 테스트를 실행하는 데 사용하는 테스트 모음을 다운로드합니다. 4> make && make isntall 5>초기화: Mysql 설치 승인 디렉토리     # chown mysql:mysql /usr/local/mysql -R                                                int in in&chown mysql:mysql /data/mysql -R

    #chown mysql:mysql /data/mysqldb/ binlog/

​​ ​ ​ ​datadir=/ data/mysqldb    Mysql 서비스 시작 스크립트 복사      # cp /usr/local/mysql/support-files/mysql.server           # chmod 755 /etc/in it.d/ mysqld mysql 서비스 시작 스크립트 수정(필수) 여러 인스턴스) /mysqldb
6 & gt; configuration 파일
Enterprise에 Ready-My.cnf가 없습니다. 즉, 패키지의 압축이 풀린 디렉터리에서 support-files 디렉터리를 찾아 /etc/my.cnf에 복사된 my-default.cnf를 대체합니다. my-default.cnf /etc/my.cnf

========= 구성 파일 자세한 설명:
# vim /etc/my.cnf
[client]
port = 3306 //클라이언트가 연결된 포트 번호
socket = /tmp/ mysql.sock //클라이언트에 연결된 sock 파일의 저장 위치

[mysqld]
#base
port = 3306 //Mysql의 기본 포트 번호는 수정 가능
user = mysql //Mysql 사용자 지정
socket = / tmp/mysql.sock //연결에 사용되는 포트번호
pid-file = /tmp/mysql.pid //프로세스 실행을 위한 메인 PID 파일
basedir = /usr/local/mysql //Mysql 설치 디렉터리
datadir = /data /mysqldb // Mysql 데이터 디렉터리
tmpdir = /opt/mysqltmp //Mysql 임시 테이블 디렉터리
open_files_limit = 10240 //열린 파일 핸들 수
explicit_defaults_for_timestamp
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
federated //SQL 구문 및 데이터 확인 지원, sql_mode 세 가지 모드
ANSI 모드, 완화 모드, 삽입된 데이터를 확인합니다. 정의된 유형이나 길이를 충족하지 않으면 데이터 유형이 조정되거나 잘려 저장되고 "경고" 경고가 보고됩니다

TRADITIONAL 모드, strict 모드, mysql 데이터에 삽입할 때 데이터가 삽입될 수 없도록 데이터를 엄격하게 검증하고 사물에 사용될 때 사물을 롤백합니다.
STRICT_TRANS_TABLES 모드. Strict 모드는 데이터를 엄격하게 검증하며 잘못된 데이터를 삽입할 수 없으며 오류 오류가 보고됩니다.

server_id = 706 //마스터-슬레이브 복제의 고유 서비스 식별 번호, 값은 1에서
#replicate- do-db = posp // 복제된 라이브러리만 정의
#replicate-ignore-db = mysql //복제된 라이브러리만 정의
#log-slave-updates = 1 //마스터-슬레이브 복제에 사용되는 옵션입니다. 서버에서 복제 마스터 정보 열기
event_scheduler=1 //시간 스케줄러 열기

max_connections = 2000 //#최대 동시 연결 수 이 값을 늘리려면 열 수 있는 파일 설명자 수가 그에 따라 증가해야 합니다
max_connect_errors = 10000 / /사용자가 시작한 연결 오류가 이 값을 초과하면 사용자의 다음 연결이 차단됩니다.
interactive_timeout = 600 //대화형 연결을 닫기 전에 서버가 활동을 기다리는 시간(초)
wait_timeout = 600 / /서버가 비대화형을 닫습니다 연결하기 전에 활동을 기다리는 시간(초)
skip-name-resolve //#garnt, ip를 사용해야 함, 호스트 이름을 사용할 수 없음, DNS 확인이 비활성화됨
sync_binlog=0 //The 거래의 보안이 보장될 수 있습니다. 기본값은 0
log_bin_trust_function_creators = 1 //mysql 사용자 정의 기능 열기

character-set-server = utf8 //문자 집합 설정
default_storage_engine = InnoDB //기본 엔진 정의

#log
log-bin = / data/ mysqldb/binlog/mysql-bin //binlog 바이너리 로그 파일 이름 지정
binlog_cache_size = 32m //binlog 캐시 크기
max_binlog_cache_size = 10g //최대 binlog 캐시 설정
binlog_stmt_cache_size = 32m //가장 작은 값 설정 binlo 캐시
table_open_cache = 2048 //파일 열기/닫기 횟수를 줄일 수 있는 테이블 디스크립터 캐시 크기
max_binlog_size = 1024m //최대 binlog 로그 파일을 1G로 설정
binlog_format = 혼합 //binlog 로그 형식.
log_output = FILE // 로그 파일에 출력 확인
log-error = /data/mysqldb/log/mysql-error.log //Mysql 시스템 오류 로그 출력
slow_query_log = 1 //느린 로깅 켜기
slow_query_log_file = /data /mysqldb/log/mysql -slow_query.log //느린 로그 출력 경로 정의
general_log = 0 //일반 로그 정의
general_log_file = /data/mysqldb/log/mysql-general-query.log // 정상적인 로그 출력 경로
expire-logs -days = 30 //로그 보존 시간은 30일입니다
relay-log = /data/mysqldb/binlog/relay-bin //reloa_log 복제 주소 정의
relay-log- index= /data/mysqldb/binlog/relay -bin.index //reloa_log index 정의

#buffer
sort_buffer_size = 2m //#MyISAM 테이블 변경 시 재정렬에 필요한 버퍼입니다. 일반적으로 64M이면 충분합니다
read_buffer_size = 2m //MyISAM 테이블의 전체 테이블 스캔에 사용되는 버퍼 크기입니다.
read_rnd_buffer_size = 2m //#정렬 후 정렬된 시퀀스에서 행을 읽을 때 행 데이터는 이 버퍼에서 읽혀 방지됩니다. disk looking
join_buffer_size = 2m //# InnoDB는 데이터 캐시에 사용되며

net_buffer_length = 16k //mysqldump 실행 시 순 버퍼 길이의 최대 제한은 16Mb이고 기본값은 1Mb
max_allowed_packet = 512m //독립적 크기는 동적으로 증가합니다.
bulk_insert_buffer_size = 32m //# 이 버퍼는 버스트 삽입이 감지되면 myisam에 할당됩니다.
max_heap_table_size = 512m//#메모리 테이블의 크기
tmp_table_size = 512m//# 최대 크기 내부(인 메모리) 임시 테이블
thread_cache_size = 100 //#캐시에서 재사용 가능한 스레드 수는 적절하게 조정될 수 있습니다.
query_cache_size = 256m //#MySQL 쿼리 결과 버퍼의 크기를 지정합니다. 튜닝은 적절하게 조정할 수 있습니다
query_cache_limit = 10m //#단일 SQL 문을 캐싱하는 결과 집합의 상한입니다. 기본값은 4KB입니다. 튜닝은 적절하게 조정할 수 있습니다
query_cache_min_res_unit = 4k
key_buffer_size = 16m //#MyISAM 테이블의 인덱스 블록을 버퍼링하는 데 일반적으로 사용되는 키워드 버퍼의 크기
myisam_sort_buffer_size = 64m //# 각 스레드에 할당되므로 큰 값을 설정할 때 주의가 필요합니다. ​​
myisam_max_sort_file_size = 10g //MySQL이 인덱스를 재구축할 때 허용되는 최대 임시 파일 크기입니다. 이 값은 키-값 버퍼링을 통해 인덱스가 생성됩니다(느림)
myisam_repair_threads = 1 //#테이블에 인덱스가 두 개 이상인 경우 MyISAM

#innodb
innodb_file_per_table = 1 #//#InnoDB를 독립형으로 수정할 수 있습니다. 테이블 스페이스 모드, 각각 데이터베이스의 각 테이블은 데이터 공간을 생성합니다
innodb_data_file_path = ibdata1:2048M:autoextend //#데이터를 저장할 논리 드라이버가 하나만 있는 경우 자동 증가 파일 하나면 충분합니다
innodb_log_file_size = 128m //#In 로그 그룹의 각 로그 파일 크기,
innodb_log_files_in_group = 3 //# 로그 그룹의 총 파일 수는 일반적으로 2~3이 좋습니다
innodb_buffer_pool_size = 1g //innodb 캐시 풀 크기
innodb_buffer_pool_instances = -1
innodb_max_dirty_pages_pct = 70 //#InnoDB 버퍼 풀에서 허용되는 최대 더티 페이지 비율은 60-90이 좋습니다
#innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_buffer_size = 16 m #버퍼의 크기 로그 데이터를 버퍼링하는 데 사용됩니다. 이 값이 거의 가득 차면 InnoDB는 데이터를 디스크에 플러시해야 합니다.
innodb_flush_log_at_trx_commit = 2
0은 로그가 대략 1초마다 로그 파일에 기록되고 로그 파일이 디스크 # 2에 플러시된다는 의미입니다. 각 커밋 후에 로그가 로그 파일에 기록되지만 로그 파일은 약 1초마다 디스크에 새로 고쳐진다는 의미입니다

[mysql]
no-auto-rehash #탭 키를 사용하여 명령을 완료할 수 있습니다
프롬프트 = (u@h) [d]_ #Mysql에서 이 명령은 호스트 이름을 표시합니다.
default-character-set = utf8 //문자 집합 설정

      7> 서비스를 시작하고 환경 변수를 설정합니다.
          #: Vim /etc/profile 파일의 마지막 부분.​ ​​          # /etc/init.d/mysqld start

참고:
    log_slave_updates    할때 마스터-슬레이브 복제. 마스터 서버에서 이 옵션을 끄고 슬레이브에서 이 옵션을 활성화하세요

===================== 일반적인 문제 분석:
데이터베이스를 시작한 후 발생한 오류: +           구성 파일에서 innodb_data_file_path에 대한 줄을 주석 처리하세요.
  1》누락된 폴더를 만들어야 합니다. ;
  2 생성할 폴더의 이전 디렉터리에 대한 권한을 설정합니다: chown mysql:mysql /tmpopt/
 3 일부 파일을 삭제해야 할 수도 있습니다. 자신의 디렉터리에서 다음 파일을 찾아 삭제하세요.
     ibdata1 ibprofile0 ibprofile1


위 내용은 MySQL 컴파일, 설치 및 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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