Install_CentOS7_MySQL57_binary.sh의
# ! / 빈 / bash는 MySQL_Package = mysql을 - 5.7.22 - 리눅스 - glibc2.12- x86_64.tar.gz Package_Source = mysql을 - 5.7.22 - 리눅스 - glibc2.12- x86_64에의 PORT = 3306 PrepareENV () { # MySQL의 지방이 제거 냠 MySQL의 mysql- 제거 -y 서버 RM은 / 등 / -rf를 my.cnf의 userdel을 - R MySQL의 groupdel MySQL의 에코 ' MySQL의 부드러운 nproc에 65536 MySQL의 하드 nproc에 65536 MySQL의 부드러운 NOFILE 65536 MySQL의 하드 NOFILE 65536 ' >>는 /etc/security/limits.conf groupadd mysql을 은 useradd -g mysql을 -s / sbin에 / nologin으로 -d / usr / 지방 / mysql을 / - MN MySQL의 냠 -y GCC-C ++ gcc가 설치를 만든다 냠 설치 -y 펄 perl- (STABLE) 얌 [email protected]로의 ncurses의 ncurses-(STABLE) 설치 -y (STABLE) 들소 } InstallMySQL () { 타르 zxvf $ {MySQL_Package} MV $ {Package_Source} / usr / 지방 / MySQL의 경우 [$를? - EQ 0]; 다음 메아리 " ! 성공적으로 MySQL을 설치 " 을 chown -R mysql을한다 : mysql / usr / 지방 /MySQL의 에코 ' 수출 PATH = / usr / 지방 / mysql을 / 빈 : $ PATH에 ' >> / 루트 / .bash_profile에 다른 에코 " !, 종료 MySQL의 설치 오류 " 출구 Fi를 } InitMySQL () { 에서 mkdir -p / 응용 프로그램 / MySQLdata라면 / {$ PORT는 / {데이터, TMP, 바이너리 로그, 리두 로그, undolog}, 백업 스크립트} #의 초기화 설정 파일 에코 -e ' [클라이언트] 사용자 = dba_user의 암호 = msds007 [MySQL의] 더 -auto- 재탕하지 프롬프트 (= \ U를 \ @ 높이) [\ D]> \ _ 기본 - CHARACTER 세트 = utf8mb4 [mysqld를] # ####### ######## 기본 설정 서버 ID = 1,013,306 포트 = 3306 사용자 = MySQL의 bind_address = 192.168.1.101 자동 커밋 = 1 character_set_server = utf8mb4 skip_name_resolve = 1 MAX_CONNECTIONS = 800 max_connect_errors = 1000 DATADIR = / 애플리케이션 / MySQLdata라면 / 3306 / 데이터 소켓 = / 애플리케이션 / MySQLdata라면 / 3306 / mysql.sock transaction_isolation = 읽기 = 1 저지른 explicit_defaults_for_timestamp join_buffer_size = 134,217,728 tmp_table_size 변수 = 67108864 TMPDIR = / 응용 프로그램 / MySQLdata라면 / 3306 / tmp 디렉토리 의 max_allowed_packet = 16777216 sql_mode = " STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION, NO_ZERO_DATE, NO_ZERO_IN_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER " interactive_timeout = 1800 아웃 (wait_timeout) = 1800 read_buffer_size = 16777216 read_rnd_buffer_size = 33554432 sort_buffer_size = 33554432 # ####### 로그 설정 ######## LOG_ERROR = / 응용 프로그램 / MySQLdata라면 / 3306 /하는 error.log slow_query_log = 1 slow_query_log_file = / 응용 프로그램 / MySQLdata라면 / 3306 / slow.log log_queries_not_using_indexes = 1 log_slow_admin_statements = 1 log_slow_slave_statements = 1 log_throttle_queries_not_using_indexes = 10 expire_logs_days = 7 LONG_QUERY_TIME = 1 min_examined_row_limit = 100 # 복제 설정 ####### ## ###### master_info_repository = 표 relay_log_info_repository = 표 log_bin = / 응용 프로그램 / MySQLdata라면 / 3306 / 바이너리 로그 / mysql- bin.log sync_binlog을 = 1 gtid_mode =에 enforce_gtid_consistency = 1 log_slave_updates binlog_format = 행 relay_log = / 응용 프로그램 / MySQLdata라면 / 3306 / 바이너리 로그 / RELAY- bin.log relay_log_recovery = 1 binlog_gtid_simple_recovery = 1 slave_skip_errors = ddl_exist_errors # InnoDB의 설정 ###### ####### ## innodb_page_size = 8192 innodb_buffer_pool_size = 1G # 生产环境做调整 innodb_buffer_pool_instances = 8 innodb_buffer_pool_load_at_startup = 1 innodb_buffer_pool_dump_at_shutdown = 1 innodb_lru_scan_depth = 2000 innodb_lock_wait_timeout = 5 innodb_io_capacity = 4000 innodb_io_capacity_max = 8000 innodb_flush_method를 = O_DIRECT innodb_log_group_home_dir = / 응용 프로그램 / MySQLdata라면 / 3306 / 리두 로그 / innodb_undo_directory = / 응용 프로그램 / MySQLdata라면 / 3306 / undolog / innodb_undo_logs = 128 innodb_undo_tablespaces = 3 innodb_flush_neighbors = 1 innodb_log_file_size = 128M # 生产环境做调整 innodb_log_buffer_size = 16777216 innodb_purge_threads = 4 innodb_large_prefix= 1 에서 innodb_thread_concurrency = 0 innodb_print_all_deadlocks = 1 innodb_strict_mode = 1 innodb_sort_buffer_size = 67108864 # 반 동기화 복제 설정 ####### ######## plugin_dir = / usr / 지방 / mysql을 / lib 디렉토리 / 플러그인 plugin_load = " rpl_semi_sync_master = semisync_master.so; rpl_semi_sync_slave semisync_slave.so = " loose_rpl_semi_sync_master_enabled = 1 loose_rpl_semi_sync_slave_enabled = 1 loose_rpl_semi_sync_master_timeout = 5000 [mysqld를 -5.7 ] innodb_buffer_pool_dump_pct = 40 innodb_page_cleaners = 4 innodb_undo_log_truncate = 1 innodb_max_undo_log_size = 2G innodb_purge_rseg_truncate_frequency = 128 binlog_gtid_simple_recovery = 1 log_timestamps = 시스템 transaction_write_set_extraction = MURMUR32 show_compatibility_56 = 에 #의 binlog_checksum = NONE 번호 만 기 복제 용 #를 설정 그룹 복제 # plugin_load = group_replication.so # loose_group_replication_group_name = e5720089-6b00- 11e5-b248-fa163e30f9a2 # loose_group_replication_start_on_boot = 1 # loose_group_replication_recovery_user rpl_user = # loose_group_replication_recovery_password = rpl_pass ' > /app/mysqldata/$PORT/my.cnf # 설정 ENV 에코 -e ' #에 설정된 ENV MYSQL_USER = dba_user MYSQL_PASS = msds007 # check_parameter 경우 [$ # -ne 1] 다음 HOST_PORT = 3306 다른 HOST_PORT = $ (1) 파이 ' > /app/mysqldata/scripts/mysql_env.ini chmod를 600 / 응용 프로그램 / MySQLdata라면 / 스크립트 / mysql_env.ini ################################################### # # 사용 scirpt을 확인 에코 -e ' # / 빈 / 쉬! 소스 / 응용 프로그램 / MySQLdata라면 / 스크립트 / mysql_env.ini 에코 " 시작 MySQL의 서비스 : localhost_ " $ {HOST_PORT} / usr / 지방 / mysql을 / 빈 / mysqld_safe에 - -defaults 파일 = / 응용 프로그램 / MySQLdata라면 / $ {HOST_PORT} /my.cnf 및 ' > /app/mysqldata/scripts/mysql_db_startup.sh 에코 ' # ! / 빈 / 쉬 소스 / 응용 프로그램 / MySQLdata라면 / 스크립트 / mysql_env.ini 에코 " 종료 MySQL의 서비스 : localhost_ " $ {HOST_PORT} / usr / 지방 / mysql을 / 빈 / mysqladmin 데이터 -u $ {MYSQL_USER} -p $ {MYSQL_PASS} -S / 응용 프로그램 / MySQLdata라면 / $ {HOST_PORT} / mysql.sock 종료 ' > /app/mysqldata/scripts/mysql_db_shutdown.sh 에코 -e ' # ! / 빈 / 쉬 소스 / 응용 프로그램 / MySQLdata라면 / 스크립트 / mysql_env.ini 에코 " 로그인 MySQL의 서비스 : localhost_ " $ {HOST_PORT} / usr / 지방 / mysql을 / 빈 / mysql을 -u $ {MYSQL_USER} - P는 $ {MYSQL_PASS은} -S /app/mysqldata/${HOST_PORT}/mysql.sock $ 2 ' > /app/mysqldata/scripts/mysqlplus.sh chmod를 755 / 응용 프로그램 / MySQLdata라면 / 스크립트 / {mysql_db의 * , mysqlplus.sh} 에코 ' 수출 PATH = / 응용 프로그램 / MySQLdata라면 / 스크립트 : $의 PATH' >> / 루트 / .bash_profile에 # ######################################### ########## 대한 Chown -R mysql을한다 : mysql / 응용 프로그램 / MySQLdata라면 / usr / 지방 / mysql을 / 빈 /의 mysqld --defaults-파일은 = / 응용 프로그램 / MySQLdata라면 / $ PORT / my.cnf의 --initialize --user = mysql을 / usr / 지방 / mysql을 / 빈 / mysql_ssl_rsa_setup의 --defaults-파일 = / 응용 프로그램 / MySQLdata라면 / $ PORT / 의 my.cnf # ################# ################################## 에코 " 부팅시 mysqld를 시작합니다 " # 에선 -s / 응용 프로그램 / MySQLdata라면을 /$PORT/my.cnf /etc/my.cnf에 # 은 cp -rf /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 형태 # chkconfig를 --add mysql을 #에 chkconfig를 mysql을 #의 서비스 mysql을 정지 #의 서비스 MySQL의 시작 # 에선 -s /app/mysqldata/$PORT/mysql.sock /tmp/mysql.sock /app/mysqldata/scripts/mysql_db_startup.sh 3306> / 응용 프로그램 / MySQLdata라면 / 3306 /mysql_db_startup.log 2> & 1 chmod를 + X /etc/rc.d/에 rc.local에 에코 ' /app/mysqldata/scripts/mysql_db_startup.sh 3306> /app/mysqldata/3306/mysql_db_startup.log 2> & 1 ' >> 은 / etc / rc.local에 잠을 5 에코 " 업데이트 루트 암호 " tmppasswd =`그렙 비밀번호 /app/mysqldata/$PORT/error.log | AWK ' {인쇄 $ NF} '/ usr / 지방 / mysql을 / 빈 / mysql을 -uroot -p $ tmppasswd -S /app/mysqldata/$PORT/mysql.sock --connect 만료 비밀번호 -e " ( 'msds007') 암호 = 암호를 설정 " / usr / 지방 / mysql을 / 빈 / mysql을 -uroot -pmsds007 -S /app/mysqldata/$PORT/mysql.sock -e " 모두에 부여 *. * dba_user하기 @ 'msds007'식별 '%' " 는 / usr을 / 지역 / mysql을 / 빈 / mysql을 -uroot -pmsds007 -S /app/mysqldata/$PORT/mysql.sock -e " 플러시 권한 " / usr / 지방 / mysql을 / 빈 / mysql을 -uroot -pmsds007 -S / 응용 프로그램 / MySQLdata라면 /$PORT/mysql.sock -e " 사용자, 호스트, mysql 데이터베이스에서 user에서 authentication_string " } PrepareENV InstallMySQL InitMySQL