#!/ binに/ bashの MySQL_Package = Percona-サーバー5.7.22-22- Linux.x86_64.ssl101.tar.gz Package_Source = Percona-サーバー5.7.22-22- Linux.x86_64.ssl101 PORT = 3306 PrepareENV() { #MySQLのローカルを削除 mysqlのはmysql-削除-yのyum サーバー のrm -rfの/ etc / my.cnfの userdelの - Rのmysql groupdelグループmysqlの エコー" mysqlのソフトNPROC 65536 mysqlのハードNPROC 65536 mysqlのソフトNOFILE 65536 NOFILE mysqlのハードを 65536 「>> /etc/security/limits.confを groupaddのmysqlの は、useradd -g mysqlの-s / sbinに/ nologinに-dは/ usr / local / mysqlの/ - MNのmysql のyum -yのgccはgcc-C ++をインストールします yumを -yインストールperlのperlの- develの YUM opensslをインストール-yのncursesのncurses-develのdevelのバイソン } InstallMySQL() { タールzxvf $ {MySQL_Package} MV $ {Package_Source}は/ usr / local / MySQLの 場合は [$?- EQ 0];その後、 エコー" に成功MySQLをインストールしてください!" のchown -R mysqlの:mysqlのは/ usr / local / mysqlの エコー ' :$ PATH輸出PATH =は/ usr / local / mysqlの/ binに' >> /ルート/ .bash_profileの 他 エコー" MySQLエラー、終了をインストール!" の出口 Fiの } InitMySQL() { MKDIR -p /アプリ/ MySQLdataに/ { $ PORT / {データ、TMP、binlogで、redoログ、undolog}、バックアップ、スクリプト} # 初期設定ファイル エコー -e " [クライアント] ユーザー = dba_userの パスワード = msds007 [mysqlの] なし -auto- 焼き直し プロンプト(= \ U @ \ H)の\ D]> \ _ デフォルト-characterセット= utf8mb4 [mysqldを] ########基本設定######## サーバID = 1013306 ポート = 3306 ユーザー = MySQLの bindするアドレス = 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 = READ- COMMITTED explicit_defaults_for_timestamp = 1 join_buffer_size = 134217728 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 = TABLE 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 / redoログ/ 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 / local / 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 = 上の #1 binlog_checksum = NONE位のみグループの複製のための #1 グループ設定複製 #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 Fiの " > /app/mysqldata/scripts/mysql_env.ini のchmod 600 /アプリ/ MySQLdataに/スクリプト/ mysql_env.ini ################################################### # #使用するためscirptを行い 、エコー-e " #!/ binに/ shの ソース/アプリ/ MySQLdataに/スクリプト/ mysql_env.ini エコー" スタートアップのMySQLのサービス:localhost_ " $ {} HOST_PORT は/ usr / local / mysqlの/ binに/ mysqld_safeを- -defaults-ファイル= /アプリ/ MySQLdataに/ $ {} HOST_PORT /my.cnf& ' > /app/mysqldata/scripts/mysql_db_startup.sh エコー' #!/ binに/ SHの ソース/アプリ/ MySQLdataに/スクリプト/ mysql_env.ini エコー" :localhost_シャットダウンMySQLのサービス" $ {} HOST_PORT / usr / local / MySQLの/ binに/ mysqladminの-u $ {MYSQL_USER} -p $ {MYSQL_PASS} -S /アプリ/ MySQLdataに/ $ {HOST_PORT} / にmysql.sockシャットダウン ' > /app/mysqldata/scripts/mysql_db_shutdown.sh エコー -e " #!/ binに/ SHの ソース/アプリ/ MySQLdataに/スクリプト/ mysql_env.ini エコー" ログインMySQLのサービス:localhost_ " $ {} HOST_PORT は/ usr / local / mysqlの/ binに/ 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:輸出PATH = /アプリ/ MySQLdataに/スクリプト" >> /ルート/ .bash_profileの ########################################## ########## のchown -R mysqlの:mysqlの/アプリ/ MySQLdataに は/ usr / local / mysqlの/ binに/ mysqldを--defaults-ファイル= /アプリ/ MySQLdataに/ $ PORT / my.cnfの--initialize --user = mysqlの は/ usr / local / mysqlの/ binに/ mysql_ssl_rsa_setup --defaults-ファイル= /アプリ/ MySQLdataに/ $ PORT / my.cnfの ################## ################################## エコー" ブート時にmysqldを起動する" #LN -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の開始 #LN -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 エコー" の更新rootパスワード" tmppasswd = `grepのパスワード/app/mysqldata/$PORT/error.log | awkは' {印刷$ NF} '/ usr / local / mysqlの/ binに/ mysqlの-uroot -p $ tmppasswd -S /app/mysqldata/$PORT/mysql.sock --connect-期限切れのパスワード-e " に設定したパスワード=パスワード( 'msds007')" / USR /ローカル/ mysqlの/ binに/ mysqlの-uroot -pmsds007 -S /app/mysqldata/$PORT/mysql.sock -e " 助成金のすべての*。* '%' @ dba_userする'msds007'によって識別される" は/ usr /ローカル/ mysqlの/ binに/ mysqlの-uroot -pmsds007 -S /app/mysqldata/$PORT/mysql.sock -e " フラッシュ特権" は/ usr / local / mysqlの/ binに/ mysqlの-uroot -pmsds007 -S /アプリ/ MySQLdataに/$PORT/mysql.sock -e " mysql.userからauthentication_string、ユーザ、ホストを選択し、" } PrepareENV InstallMySQL InitMySQL