집 >데이터 베이스 >MySQL 튜토리얼 >CentOS7에서 MySQL 8.0을 컴파일하고 설치하는 방법
CentOS인터넷에는 MySQL을 컴파일하고 설치하는 방법에 대한 많은 튜토리얼이 있으며 기본적으로 동일합니다. 그러나 때로는 세부 사항으로 인해 소프트웨어 설치가 실패할 수도 있습니다.
0. 사전 준비 조건
• Linux 버전 확인
[root@mysql etc]# cat /etc/RedHat-releaseCentOS Linux release 7.3.1611 (Core) •Could NOT find Curses yum install ncurses-devel •Bison executable not found in PATH yum install bison
참고: 이 예제 환경에는 위의 패키지가 부족합니다. advance
1.cmake 소스 컴파일 및 설치
[root@db software]# nohup tar zxvf cmake-3.11.1.tar.gz &[root@db software]# cd cmake-3.11.1[root@db cmake-3.11.1]# ./configure[root@localhost cmake-3.0.1]# gmake && make install
2.wolfssl 패키지 배포 및 설치 [선택 사항]
*. 从wolfssl.com网站下载wolfssl-3.13.0.zip压缩包 *. 解压至/data/software/mysql-8.0.11/extra/wolfssl-3.13.0目录中。 *. cd extra/wolfssl-3.13.0/IDE/MYSQL *. 执行do.sh脚本 *. use -DWITH_SSL=wolfssl for CMake
3.openssl 및 openssl-devel [이 실험에서는 시스템 SSL을 사용합니다.]
yum install –y openssl openssl-devel
4.mysql 컴파일
[root@mysql software]#tar zxvf mysql-8.0.11.tar.gz[root@mysql software]# cd mysql-8.0.11/[root@mysql software]# mkdir Zdebug[root@mysql software]# cd Zdebugcmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DENABLED_LOCAL_INFILE=ON \ -DWITH_INNODB_MEMCACHED=ON \ -DWITH_SSL=system \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ -DCOMPILATION_COMMENT="zsd edition" \ -DDOWNLOAD_BOOST=1 \ -DWITH_BOOST=/tmp \ -DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock \ -DSYSCONFDIR=/data/mysqldata/3306 > /data/software/mysql-8.0.11/Zdebug/mysql_cmake80.log 2>&1
설치 후 다음 로그가 나타납니다.
............ -- Configuring done-- Generating done-- Build files have been written to: /data/software/mysql-8.0.11/Zdebug ............
는 컴파일이 성공했음을 나타냅니다. -DWITH_SSL=system은 Linux 운영 체제의 openssl을 사용하며 openssl-devel 패키지를 설치해야 합니다.
빠른 컴파일 및 설치가 필요한 경우 멀티스레딩을 사용하여 컴파일 및 설치 속도를 높일 수 있습니다.
make -j 12 make install
•MySQL 8.0
[root@mysql Zdebug]# cd /usr/local/mysql/[root@mysql mysql]# ls -ltotal 612 drwxr-xr-x. 2 root root 4096 May 16 14:20 bin drwxr-xr-x. 2 root root 55 May 16 14:20 docs drwxr-xr-x. 3 root root 266 May 16 14:20 include drwxr-xr-x. 4 root root 173 May 16 14:20 lib -rw-r--r--. 1 root root 301518 Apr 8 14:44 LICENSE -rw-r--r--. 1 root root 301518 Apr 8 14:44 LICENSE-test drwxr-xr-x. 4 root root 30 May 16 14:20 man drwxr-xr-x. 10 root root 4096 May 16 14:21 mysql-test -rw-r--r--. 1 root root 687 Apr 8 14:44 README -rw-r--r--. 1 root root 687 Apr 8 14:44 README-test drwxr-xr-x. 28 root root 4096 May 16 14:21 share drwxr-xr-x. 2 root root 90 May 16 14:21 support-files
5의 소프트웨어 디렉터리 구조를 만듭니다. mysql 사용자 및 관련 파일 수정
[root@mysql mysql]# groupadd mysql[root@mysql mysql]# useradd -g mysql mysql
6. 사용자 운영 체제 리소스에 대한 제한 설정
[root@localhost cmake-3.0.1]# vi /etc/security/limits.confmysql soft nproc 65536 mysql hard nproc 65536 mysql soft nofile 65536 mysql hard nofile 65536
제한이 적용되는지 확인하세요
[root@mysql ~]# su - mysql[mysql@mysql ~]$ ulimit -a
로그는 다음과 같습니다:
open files (-n) 65536 max user processes (-u) 65536 ............
7. Permissions
#cd /data/#mkdir -p /data/mysqldata/{3306/{data,tmp,binlog,innodb_ts,innodb_log},backup,scripts}#chown -R mysql:mysql mysqldata#su - mysql
8. my.cnf 파일을 구성합니다
$vi /data/mysqldata/3306/my.cnf [client] port = 3306 socket = /data/mysqldata/3306/mysql.sock# The MySQL server[mysqld] port = 3306 user = mysql socket = /data/mysqldata/3306/mysql.sock pid-file = /data/mysqldata/3306/mysql.pid basedir = /usr/local/mysql datadir = /data/mysqldata/3306/data tmpdir = /data/mysqldata/3306/tmp open_files_limit = 60000 explicit_defaults_for_timestamp server-id = 1203306 lower_case_table_names = 1 character-set-server = utf8 federated#sql_mode=STRICT_TRANS_TABLESmax_connections = 1000 max_connect_errors = 100000 interactive_timeout = 86400 wait_timeout = 86400 sync_binlog=0 back_log=100 default-storage-engine = InnoDB log_slave_updates = 1#*********** Logs related settings ***********log-bin = /data/mysqldata/3306/binlog/mysql-bin binlog_format= mixed binlog_cache_size=32m max_binlog_cache_size=64m max_binlog_size=512m long_query_time = 1 log_output = FILElog-error = /data/mysqldata/3306/mysql-error.log slow_query_log = 1 slow_query_log_file = /data/mysqldata/3306/slow_statement.log#log_queries_not_using_indexesgeneral_log = 0 general_log_file = /data/mysqldata/3306/general_statement.log#expire-logs-days = 14binlog_expire_logs_seconds = 1728000 relay-log = /data/mysqldata/3306/binlog/relay-bin relay-log-index = /data/mysqldata/3306/binlog/relay-bin.index#****** MySQL Replication New Feature*********master-info-repository=TABLE relay-log-info-repository=TABLE relay-log-recovery#*********** INNODB Specific options ***********innodb_buffer_pool_size = 2048M transaction-isolation=REPEATABLE-READ innodb_buffer_pool_instances = 8 innodb_file_per_table = 1 innodb_data_home_dir = /data/mysqldata/3306/innodb_ts innodb_data_file_path = ibdata1:2048M:autoextend innodb_thread_concurrency = 8 innodb_log_buffer_size = 16M innodb_log_file_size = 128M innodb_log_files_in_group = 3 innodb_log_group_home_dir = /data/mysqldata/3306/innodb_log innodb_flush_log_at_trx_commit = 2 innodb_max_dirty_pages_pct = 70 innodb_flush_method=O_DIRECT [mysql] no-auto-rehash default-character-set=gbk prompt = (\u@\h) [\d]>\_
9. MySQL 데이터베이스를 초기화합니다
$/usr/local/mysql/bin/mysqld --defaults-file=/data/mysqldata/3306/my.cnf --initialize --user=mysql
11. 데이터베이스에 로그인합니다
참고: 비밀번호는 오류에서 비롯됩니다. 로그, 세부 정보는 다음과 같습니다.
$/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf --user=mysql &
12. 데이터베이스의 일부 기본 권한 구성
루트 계정 비밀번호 수정:
2018-05-16T07:17:57.335486Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: jlocal/mysql/bin/mysql -uroot -p'j
현재 사용자 계정 보기
ALTER USER 'root'@'localhost' IDENTIFIED WITH sha256_password BY 'zsd@7101' PASSWORD EXPIRE INTERVAL 360 DAY;
위 내용은 CentOS7에서 MySQL 8.0을 컴파일하고 설치하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!