MySQL自动安装脚本

环境要求:centos:6.8
                MySQL:5.7.20
                MySQL安装文件名:mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
                MySQL源文件路径:/usr/local/src
                MYSQL脚本文件:/usr/local/src/install_mysql.sh

1、脚本如下:

点击(此处)折叠或打开

  1. #/bin/sh
  2. #px 2017-11-29
  3. #mysql install
  4. #email:kitten-pan@163.com & 752684428
  5. #version 2.0
  6. #mysql-version mysql5.7.20

  7. source_path=/usr/local/src
  8. install_path=/usr/local/mysql
  9. install_name=mysql-5.7.20-linux-glibc2.12-x86_64

  10. ##检测本机环境
  11. env_fun()
  12. {
  13. echo "============检测本机环境,please wait ..."
  14. username=`cat /etc/passwd |grep mysql|cut -c 1-5`
  15.     if [ "$username" = "mysql" ];then
  16.         echo "MySQL account is exits..."
  17.         return 10
  18.     else
  19.         echo "mysql account is not exits,ready add..."
  20.         groupadd mysql
  21.         useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql
  22.         return 12
  23.     fi
  24. }

  25. ##判断MySQL是否安装
  26. check_fun()
  27. {
  28. rpm_name=`rpm -aq |grep mysql-server`
  29. echo $rpm_name
  30.     if [ ! $rpm_name ];then
  31.         echo "begin check the source install,please wait for a moment..."
  32.             if [ -d $install_path ];then
  33.                 echo "source install is exist,quit..."
  34.                 exit 0
  35.             else
  36.                 echo "本机未安装MySQL,稍后为你安装..."
  37.                 install_fun
  38.                 op_fun
  39.                 
  40.             fi
  41.     else
  42.         echo -n "rpm MySQL已经安装,是否删除?[yes|no]"
  43.         read select
  44.             if [ $select = yes ];then
  45.                 rpm -e $rpm_name --nodeps
  46.                 rm -rf /var/log/mysqld.log
  47.                 check_fun
  48.             else
  49.                 exit 0
  50.             fi
  51.     fi
  52. }

  53. ###安装MySQL
  54. install_fun()
  55. {
  56. read -p "Input a mysql version:" -t 30 mysql_version
  57. read -p "Input a mysql port:" -t 30 mysql_port
  58. read -p "Input a mysql_server_id:" -t 30 mysql_server_id
  59. cd $source_path && echo "解压中,please waiting..."
  60. tar -zxvf ${install_name}.tar.gz && mv $install_name $install_path
  61. ##创建数据目录
  62. mkdir -pv /data/mysqldata
  63. ###给MySQL目录的MySQL账号权限
  64. cd /usr/local && chown mysql.mysql mysql
  65. chown -R mysql.mysql /data/mysqldata
  66. cd $install_path && bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata

  67. cd support-files && cp -rf mysql.server /etc/init.d/mysqld
  68. sed -i 's#datadir\=\/usr\/local\/mysql\/data#\datadir\=\/data\/mysqldata#g' /etc/init.d/mysqld

  69. cat > /etc/my.cnf << EOF
  70. [client]
  71. port = 3309
  72. socket = /tmp/mysql.sock
  73. default-character-set = utf8

  74. [mysqld]
  75. ##mysql-version=5.7.20
  76. port = 3309
  77. socket = /tmp/mysql.sock
  78. datadir = /data/mysqldata
  79. basedir = /usr/local/mysql
  80. pid-file = /data/mysqldata/mysqld.pid
  81. user = mysql
  82. server-id = 1
  83. lower_case_table_names = 1
  84. character-set-server = utf8
  85. back_log = 300
  86. max_connections = 1000
  87. max_connect_errors = 6000
  88. open_files_limit = 65535
  89. table_open_cache = 128
  90. max_allowed_packet = 4M
  91. binlog_cache_size = 1M
  92. max_heap_table_size = 8M
  93. tmp_table_size = 16M

  94. read_buffer_size = 2M
  95. read_rnd_buffer_size = 8M
  96. sort_buffer_size = 8M
  97. join_buffer_size = 8M
  98. key_buffer_size = 4M

  99. thread_cache_size = 8
  100. query_cache_type = 0
  101. query_cache_size = 2M
  102. query_cache_limit = 2M

  103. ft_min_word_len = 4

  104. log_bin = mysql-bin
  105. binlog_format = row
  106. expire_logs_days = 30

  107. log-error=/data/mysqldata/mysqld.log
  108. slow_query_log = 1
  109. long_query_time = 1
  110. slow_query_log_file = /data/mysqldata/mysql-slow.log

  111. performance_schema = 0
  112. explicit_defaults_for_timestamp

  113. skip-external-locking
  114. default-time_zone = '+8:00'

  115. default_storage_engine = InnoDB

  116. innodb_file_per_table = 1
  117. innodb_data_file_path = ibdata1:300M:autoextend
  118. innodb_open_files = 5000
  119. innodb_buffer_pool_size = 2048M
  120. innodb_write_io_threads = 4
  121. innodb_read_io_threads = 8
  122. innodb_thread_concurrency = 0
  123. innodb_purge_threads = 1
  124. innodb_flush_log_at_trx_commit = 2
  125. innodb_log_buffer_size = 128M
  126. innodb_log_file_size = 256M
  127. innodb_log_files_in_group = 2
  128. innodb_max_dirty_pages_pct = 90
  129. innodb_lock_wait_timeout = 120

  130. bulk_insert_buffer_size = 8M
  131. myisam_sort_buffer_size = 8M
  132. myisam_max_sort_file_size = 10G
  133. myisam_repair_threads = 1
  134. interactive_timeout = 28800
  135. wait_timeout = 300

  136. [mysqldump]
  137. quick
  138. max_allowed_packet = 16M

  139. [myisamchk]
  140. key_buffer_size = 8M
  141. sort_buffer_size = 8M
  142. read_buffer = 4M
  143. write_buffer = 4M

  144. EOF
  145. echo "export PATH=/$PATH:/usr/local/mysql/bin">>/etc/profile
  146. echo 'export MYSQL_PS1="(\u@\h:\p) [\d]>"' >> /etc/profile
  147. source /etc/profile

  148. service mysqld restart
  149. }

  150. op_fun()
  151. {
  152. chmod 755 /etc/init.d/mysqld
  153. chkconfig --add mysqld
  154. chkconfig --level 345 mysqld on
  155. }


  156. main(){
  157. echo "###==================================================###"
  158. echo "###welcome to make install mysql with this script###"
  159. echo "###copyright 2013 by px###"
  160. echo "###==================================================###"
  161. sleep 5
  162. env_fun
  163. re=$?
  164. if [ re = 10 ];then
  165.     check_fun
  166. else
  167.     check_fun
  168. fi
  169. }
  170. main
  171. exit 0
2、执行自动安装脚本
    需要填写MySQL的版本信息、端口信息、serverid信息等

点击(此处)折叠或打开

  1. sh install_mysql.sh
  2. ###==================================================###
  3. ###welcome to make install mysql with this script###
  4. ###copyright 2013 by px###
  5. ###==================================================###
  6. ============检测本机环境,please wait ...
  7. mysql account is not exits,ready add...

  8. begin check the source install,please wait for a moment...
  9. 本机未安装MySQL,稍后为你安装...
  10. Input a mysql version:5.7.20
  11. Input a mysql port:3309
  12. Input a mysql_server_id:1
  13. 解压中,please waiting...
3、自动安装完毕 启动
# service mysqld  restart
MySQL server PID file could not be found!                  [FAILED]
Starting MySQL.............                                          [  OK  ]

4、登入MySQL 修改密码

点击(此处)折叠或打开

  1. [root@ct562 mysqldata]# mysql -uroot -p
  2. Enter password:
  3. Welcome to the MySQL monitor. Commands end with ; or \g.
  4. Your MySQL connection id is 3
  5. Server version: 5.7.20-log

  6. Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

  7. Oracle is a registered trademark of Oracle Corporation and/or its
  8. affiliates. Other names may be trademarks of their respective
  9. owners.

  10. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

  11. (root@localhost:mysql.sock) [(none)]>
  12. (root@localhost:mysql.sock) [(none)]>
  13. (root@localhost:mysql.sock) [(none)]>
  14. (root@localhost:mysql.sock) [(none)]>
  15. (root@localhost:mysql.sock) [(none)]>
  16. (root@localhost:mysql.sock) [(none)]>set password for root@'localhost' =PASSWORD('sysdba@321')




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29987453/viewspace-2149405/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29987453/viewspace-2149405/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值