シェルスクリプトでMySQL-5.7.22-Perconaのバージョンをインストールします。

!/ 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_pa​​cket = 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 = 1loose_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

 

おすすめ

転載: www.cnblogs.com/allenhu320/p/11304834.html