centos7一键安装mysql5.6脚本
今年还有2个月就要过年了,对于我们公司来说,今年年底怕是最忙的时候,最近测试人员要经常来对mysql进行测试,为了方便他们在不同的情况下测试,特地写了个mysql自动安装脚本,这样他们只需要修改下my.cnf的配置就可以使用了,其实我这个脚本也可以在centos5和6上进行安装,但估计有些依赖包没有进行安装,并且也只在centos7上进行了测试安装,所以如果有问题的话,请自行修改.
系统:centos 7(64位)
脚本内容:
cat /root/soft_shell/auto_install_mysql.sh
002 | PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin:~/bin |
006 | if [ $( id -u) != "0" ]; then |
007 | echo "Error: You must be root to run this script, please use root to install" |
012 | NET_NUM=` ping -c 4 www.baidu.com | awk '/packet loss/{print $6}' | sed -e 's/%//' ` |
013 | if [ -z "$NET_NUM" ] || [ $NET_NUM - ne 0 ]; then |
014 | echo "Please check your internet" |
019 | echo "===========================" |
020 | mysqlrootpwd= "mfkqxxr" |
021 | echo "Please input the root password of mysql:" |
022 | read -p "(Default password: mfkqxxr):" mysqlrootpwd |
023 | if [ "$mysqlrootpwd" = "" ]; then |
024 | mysqlrootpwd= "mfkqxxr" |
026 | echo "===========================" |
027 | echo "MySQL root password:$mysqlrootpwd" |
028 | echo "===========================" |
031 | echo "===========================" |
033 | echo "Install MySQL 5.6.34,Please input y" |
034 | echo "Don't install MySQL,Please input n or press Enter" |
035 | read -p "(Please input y or n):" isinstallmysql56 |
037 | case "$isinstallmysql56" in |
038 | y|Y|Yes|YES| yes |yES|yEs|YeS|yeS) |
039 | echo "You will install MySQL 5.6.34" |
043 | echo "You will exit install MySQL" |
047 | echo "INPUT error,You will exit install MySQL" |
051 | function InitInstall() |
054 | rm -rf /etc/localtime |
055 | ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
057 | yum install -y ntpdate |
058 | ntpdate -u pool.ntp.org |
064 | yum -y remove mysql-server mysql mysql-libs |
065 | yum -y remove php-mysql |
066 | yum -y install yum-fastestmirror |
069 | function CheckAndDownloadFiles() |
071 | echo "============================check files==================================" |
072 | if [ -s mysql-5.6.34-linux-glibc2.5-x86_64. tar .gz ]; then |
073 | echo "mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz [found]" |
077 | echo "============================check files==================================" |
080 | function InstallMySQL56() |
082 | echo "============================Install MySQL 5.6.34==================================" |
083 | user_mysql=` cat /etc/ passwd | grep mysql| awk -F : '{print $1}' ` |
084 | if [ -s /etc/my.cnf ]; then |
088 | if [ -z "$user_mysql" ]; then |
090 | useradd -s /sbin/nologin -M -g mysql mysql |
092 | echo "user mysql already exists!" |
096 | mkdir -p /var/log/mysql |
098 | tar zxf mysql-5.6.34-linux-glibc2.5-x86_64. tar .gz |
099 | mv mysql-5.6.34-linux-glibc2.5-x86_64 /usr/ local /mysql |
100 | chown -R mysql:mysql /data/mysql |
101 | chown -R mysql:mysql /usr/ local /mysql |
106 | socket= /data/mysql/mysql.sock |
107 | default-character- set =utf8 |
110 | default-character- set =utf8 |
114 | socket= /data/mysql/mysql.sock |
115 | basedir= /usr/ local /mysql |
117 | open_files_limit = 3072 |
120 | max_connect_errors = 100000 |
121 | table_open_cache = 512 |
122 | external-locking = FALSE |
123 | max_allowed_packet = 32M |
126 | thread_cache_size = 51 |
127 | query_cache_size = 32M |
129 | max_heap_table_size = 96M |
131 | slow_query_log_file = /var/log/mysql/slow.log |
132 | log-error = /var/log/mysql/error.log |
137 | binlog_cache_size = 4M |
138 | max_binlog_cache_size = 4096M |
139 | max_binlog_size = 1024M |
143 | read_rnd_buffer_size = 16M |
144 | bulk_insert_buffer_size = 64M |
145 | character- set -server=utf8 |
146 | default-storage-engine = InnoDB |
148 | innodb_buffer_pool_dump_at_shutdown = 1 |
149 | innodb_buffer_pool_load_at_startup = 1 |
150 | binlog_rows_query_log_events = 1 |
151 | explicit_defaults_for_timestamp = 1 |
158 | transaction_isolation = REPEATABLE-READ |
159 | innodb_additional_mem_pool_size = 16M |
160 | innodb_buffer_pool_size = 512M |
162 | innodb_data_file_path = ibdata1:1024M:autoextend |
163 | innodb_flush_log_at_trx_commit = 1 |
164 | innodb_log_buffer_size = 16M |
165 | innodb_log_file_size = 512M |
166 | innodb_log_files_in_group = 2 |
167 | innodb_max_dirty_pages_pct = 50 |
168 | innodb_file_per_table = 1 |
169 | innodb_locks_unsafe_for_binlog = 0 |
171 | interactive_timeout = 14400 |
176 | max_allowed_packet = 32M |
179 | /usr/ local /mysql/scripts/mysql_install_db --basedir=/usr/ local /mysql --datadir=/data/mysql --defaults- file =/etc/my.cnf --user=mysql |
180 | cp /usr/ local /mysql/support-files/mysql.server /etc/init.d/mysqld |
181 | chmod +x /etc/init.d/mysqld |
182 | chkconfig --add mysqld |
184 | sed -i "s:^datadir=.*:datadir=/data/mysql:g" /etc/init.d/mysqld |
185 | cat > /etc/ld.so.conf.d/mysql.conf<<EOF |
188 | /etc/init.d/mysqld start |
190 | /usr/ local /mysql/bin/mysqladmin -u root password $mysqlrootpwd |
192 | cat > /tmp/mysql_sec_script<<EOF |
194 | update user set password=password( '$mysqlrootpwd' ) where user= 'root' ; |
195 | select Host,User,Password,Select_priv,Grant_priv from user; |
196 | delete from mysql.user where not (user= 'root' ) ; |
197 | delete from mysql.user where user= '' ; |
198 | delete from user where user= '' ; |
199 | delete from user where password= '' ; |
200 | delete from user where host= '' ; |
206 | /usr/ local /mysql/bin/mysql -u root -p$mysqlrootpwd -h localhost < /tmp/mysql_sec_script |
208 | rm -f /tmp/mysql_sec_script |
210 | /etc/init.d/mysqld restart |
211 | echo 'export PATH=$PATH:/usr/local/mysql/bin' >>/etc/profile |
213 | echo "============================MySQL 5.6.34 install completed=========================" |
216 | function CheckInstall() |
218 | echo "===================================== Check install ===================================" |
222 | if [ -s /usr/ local /mysql/bin/mysql ] && [ -s /usr/ local /mysql/bin/mysqld_safe ] && [ -s /etc/my.cnf ]; then |
226 | echo "Error: /usr/local/mysql not found!!!MySQL install failed." |
229 | if [ "$ismysql" = "ok" ]; then |
230 | echo "Install MySQL 5.6.34 completed! enjoy it." |
231 | echo "=========================================================================" |
234 | echo "Sorry,Failed to install MySQL!" |
235 | echo "You can tail /root/mysql-install.log from your server." |
240 | InitInstall 2>&1 | tee /root/mysql- install .log |
241 | CheckAndDownloadFiles 2>&1 | tee -a /root/mysql- install .log |
242 | InstallMySQL56 2>&1 | tee -a /root/mysql- install .log |
243 | CheckInstall 2>&1 | tee -a /root/mysql- install .log |
执行命令:
chmod 500 /root/soft_shell/auto_install_mysql.sh
sh /root/soft_shell/auto_install_mysql.sh
标签: mysql 安装 shell install 一键 二进制 centos7
评论: