{"id":58,"date":"2021-01-08T09:31:29","date_gmt":"2021-01-08T01:31:29","guid":{"rendered":"http:\/\/www.anger.ltd\/?p=58"},"modified":"2022-03-17T14:45:20","modified_gmt":"2022-03-17T06:45:20","slug":"one-key-install-mysql-5-7","status":"publish","type":"post","link":"https:\/\/www.anger.ltd\/index.php\/2021\/01\/08\/one-key-install-mysql-5-7\/","title":{"rendered":"One key Install MySql 5.7"},"content":{"rendered":"\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\n##################################################\n#  auth:anger                                    #\n#  mail:yxmingh@hotmail.com                      #\n##################################################\n#  description:                                  #\n#      mysql install using yum                   #\n##################################################\n#  version:0.1                                   #\n##################################################\n#  take care! script must be tested before used  #\n#  TAKE CARE! SCRIPT MUST BE TESTED BEFROE USED  #\n##################################################\n\n\nyum install yum-utils wget expect -y\nwget https:\/\/dev.mysql.com\/get\/mysql80-community-release-el7-3.noarch.rpm\nrpm -i mysql80-community-release-el7-3.noarch.rpm\nrpm --import https:\/\/repo.mysql.com\/RPM-GPG-KEY-mysql-2022\nyum-config-manager --enable mysql57-community\nyum-config-manager --disable mysql80-community\nyum install mysql-community-server -y\n\n# motify my.conf\n\ncat > \/etc\/my.cnf &lt;&lt; EOF\n&#91;mysqld]\nport = 3306\nsocket = \/var\/lib\/mysql\/mysql.sock\n\nbasedir = \/var\/lib\/mysql\ndatadir = \/var\/lib\/mysql\npid-file = \/var\/run\/mysqld\/mysqld.pid\nuser = mysql\nbind-address = 0.0.0.0\nserver-id = 1\n\ncharacter-set-server = utf8mb4\n\nskip-name-resolve\n#skip-networking\nback_log = 300\n\nmax_connections = 1000\nmax_connect_errors = 6000\nopen_files_limit = 65535\ntable_open_cache = 128\nmax_allowed_packet = 500M\nbinlog_cache_size = 1M\nmax_heap_table_size = 8M\ntmp_table_size = 16M\n\nread_buffer_size = 2M\nread_rnd_buffer_size = 8M\nsort_buffer_size = 8M\njoin_buffer_size = 8M\nkey_buffer_size = 4M\n\nthread_cache_size = 8\n\nquery_cache_type = 1\nquery_cache_size = 8M\nquery_cache_limit = 2M\n\nft_min_word_len = 4\n\nlog_bin = mysql-bin\nbinlog_format = mixed\nexpire_logs_days = 7\n\nlog_error = \/var\/log\/mysqld.log\nslow_query_log = 1\nlong_query_time = 1\nslow_query_log_file = \/var\/log\/mysql-slow.log\n\nperformance_schema = 0\nexplicit_defaults_for_timestamp\n\nskip-external-locking\n\ndefault_storage_engine = InnoDB\ninnodb_file_per_table = 1\ninnodb_open_files = 500\ninnodb_buffer_pool_size = 64M\ninnodb_write_io_threads = 4\ninnodb_read_io_threads = 4\ninnodb_thread_concurrency = 0\ninnodb_purge_threads = 1\ninnodb_flush_log_at_trx_commit = 2\ninnodb_log_buffer_size = 2M\ninnodb_log_file_size = 32M\ninnodb_log_files_in_group = 3\ninnodb_max_dirty_pages_pct = 90\ninnodb_lock_wait_timeout = 120\n\nbulk_insert_buffer_size = 8M\nmyisam_sort_buffer_size = 8M\nmyisam_max_sort_file_size = 10G\nmyisam_repair_threads = 1\n\ninteractive_timeout = 28800\nwait_timeout = 28800\n\nsql_mode = \n\n&#91;mysqldump]\nquick\nEOF\n\nMem=`free -m | awk '\/Mem:\/{print $2}'`\n\nsed -i \"s@max_connections.*@max_connections = $((${Mem}\/3))@\" \/etc\/my.cnf\nif &#91; ${Mem} -gt 1500 -a ${Mem} -le 2500 ]; then\n    sed -i 's@^thread_cache_size.*@thread_cache_size = 16@' \/etc\/my.cnf\n    sed -i 's@^query_cache_size.*@query_cache_size = 16M@' \/etc\/my.cnf\n    sed -i 's@^myisam_sort_buffer_size.*@myisam_sort_buffer_size = 16M@' \/etc\/my.cnf\n    sed -i 's@^key_buffer_size.*@key_buffer_size = 16M@' \/etc\/my.cnf\n    sed -i 's@^innodb_buffer_pool_size.*@innodb_buffer_pool_size = 128M@' \/etc\/my.cnf\n    sed -i 's@^tmp_table_size.*@tmp_table_size = 32M@' \/etc\/my.cnf\n    sed -i 's@^table_open_cache.*@table_open_cache = 256@' \/etc\/my.cnf\nelif &#91; ${Mem} -gt 2500 -a ${Mem} -le 3500 ]; then\n    sed -i 's@^thread_cache_size.*@thread_cache_size = 32@' \/etc\/my.cnf\n    sed -i 's@^query_cache_size.*@query_cache_size = 32M@' \/etc\/my.cnf\n    sed -i 's@^myisam_sort_buffer_size.*@myisam_sort_buffer_size = 32M@' \/etc\/my.cnf\n    sed -i 's@^key_buffer_size.*@key_buffer_size = 64M@' \/etc\/my.cnf\n    sed -i 's@^innodb_buffer_pool_size.*@innodb_buffer_pool_size = 512M@' \/etc\/my.cnf\n    sed -i 's@^tmp_table_size.*@tmp_table_size = 64M@' \/etc\/my.cnf\n    sed -i 's@^table_open_cache.*@table_open_cache = 512@' \/etc\/my.cnf\nelif &#91; ${Mem} -gt 3500 ]; then\n    sed -i 's@^thread_cache_size.*@thread_cache_size = 64@' \/etc\/my.cnf\n    sed -i 's@^query_cache_size.*@query_cache_size = 64M@' \/etc\/my.cnf\n    sed -i 's@^myisam_sort_buffer_size.*@myisam_sort_buffer_size = 64M@' \/etc\/my.cnf\n    sed -i 's@^key_buffer_size.*@key_buffer_size = 256M@' \/etc\/my.cnf\n    sed -i 's@^innodb_buffer_pool_size.*@innodb_buffer_pool_size = 1024M@' \/etc\/my.cnf\n    sed -i 's@^tmp_table_size.*@tmp_table_size = 128M@' \/etc\/my.cnf\n    sed -i 's@^table_open_cache.*@table_open_cache = 1024@' \/etc\/my.cnf\nfi\n\n# my.conf \u7247\u6bb5\u5f15\u7528\u4e8e\uff1ahttps:\/\/oneinstack.com\/\n\nsystemctl enable mysqld\nsystemctl start mysqld\n\n\n# find password by python\nmysql_pwd_line=`cat \/var\/log\/mysqld.log | grep \"password is generated\"`\n\n# for python2\n# todo : python version check\nmysql_pwd=\"`python -c \"print '$mysql_pwd_line'.split(' ')&#91;-1]\"`\"\n\n# change default password\n# password policy\n# add root@% \n# modify root@local and root@% password to 'password'\ncat > \/tmp\/mysql_expect &lt;&lt; EOF\n#!\/usr\/bin\/expect -f\n\nset timeout -1\nspawn mysql -uroot -p&#91;lindex \\$argv 0]\nmatch_max 100000\nexpect  \"*mysql> \"\nsend -- \"ALTER USER root@localhost IDENTIFIED BY 'KJEz#@PAtT5isWKV';\"\nsend -- \"\\r\"\nexpect  \"*mysql> \"\nsend -- \"set global validate_password_policy=0;\"\nsend -- \"\\r\"\nexpect  \"*mysql> \"\nsend -- \"set global validate_password_length=6;\"\nsend -- \"\\r\"\nexpect  \"*mysql> \"\nsend -- \"CREATE USER root@'%' IDENTIFIED BY 'pa$$w0rd';\"\nsend -- \"\\r\"\nexpect  \"*mysql> \"\nsend -- \"grant all on *.* to root@'%';\"\nsend -- \"\\r\"\nexpect  \"*mysql> \"\nsend -- \"ALTER USER root@localhost IDENTIFIED BY 'pa$$w0rd';\"\nsend -- \"\\r\"\nexpect  \"*mysql> \"\nsend -- \"flush privileges;\"\nsend -- \"\\r\"\nexpect  \"*mysql> \"\nsend -- \"exit\\r\"\nexpect eof\nEOF\nchmod a+x \/tmp\/mysql_expect &amp;&amp; \/tmp\/mysql_expect $mysql_pwd\n\n# print info\necho -e '''\nroot@\\e&#91;30;1;1;43mlocalhost\\e&#91;0m password is : \\e&#91;30;1;1;43mpa$$w0rd\\e&#91;0m\nroot@\\e&#91;30;1;1;43m%\\e&#91;0m password is : \\e&#91;30;1;1;43mpa$$w0rd\\e&#91;0m\n'''\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-58","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.anger.ltd\/index.php\/wp-json\/wp\/v2\/posts\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.anger.ltd\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.anger.ltd\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.anger.ltd\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.anger.ltd\/index.php\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":2,"href":"https:\/\/www.anger.ltd\/index.php\/wp-json\/wp\/v2\/posts\/58\/revisions"}],"predecessor-version":[{"id":225,"href":"https:\/\/www.anger.ltd\/index.php\/wp-json\/wp\/v2\/posts\/58\/revisions\/225"}],"wp:attachment":[{"href":"https:\/\/www.anger.ltd\/index.php\/wp-json\/wp\/v2\/media?parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.anger.ltd\/index.php\/wp-json\/wp\/v2\/categories?post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.anger.ltd\/index.php\/wp-json\/wp\/v2\/tags?post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}