1. [root@HE2 ~]# cat mysql_auto_install.sh
  2. ###### 二进制自动安装数据库脚本root密码MANAGER将脚本和安装包放在/root目录即可###############
  3. ######数据库目录/usr/local/mysql############
  4. ######数据目录/data/mysql############
  5. ######慢日志目录/data/slowlog############
  6. ######端口号默认3306其余参数按需自行修改############
  7.  
  8. ##################
  9. #author ##################
  10. #!/bin/bash
  11.  
  12. # Check if user is root
  13. if [ $(id -u) != "" ]; then
  14. echo "Error: You must be root to run this script, please use root to install"
  15. exit
  16. fi
  17.  
  18. clear
  19. echo "========================================================================="
  20. echo "A tool to auto-compile & install MySQL 5.7.15 on Redhat/CentOS Linux "
  21. echo "========================================================================="
  22. cur_dir=$(pwd)
  23.  
  24. #set mysql root password
  25. echo "==========================="
  26.  
  27. mysqlrootpwd="MANAGER"
  28. echo -e "Please input the root password of mysql:"
  29. read -p "(Default password: MANAGER):" mysqlrootpwd
  30. if [ "$mysqlrootpwd" = "" ]; then
  31. mysqlrootpwd="MANAGER"
  32. fi
  33. echo "==========================="
  34. echo "MySQL root password:$mysqlrootpwd"
  35. echo "==========================="
  36.  
  37. #which MySQL Version do you want to install?
  38. echo "==========================="
  39.  
  40. isinstallmysql57="n"
  41. echo "Install MySQL 5.7.15,Please input y"
  42. read -p "(Please input y , n):" isinstallmysql57
  43.  
  44. case "$isinstallmysql57" in
  45. y|Y|Yes|YES|yes|yES|yEs|YeS|yeS)
  46. echo "You will install MySQL 5.7.15"
  47.  
  48. isinstallmysql57="y"
  49. ;;
  50. *)
  51. echo "INPUT error,You will exit install MySQL 5.7.15"
  52.  
  53. isinstallmysql57="n"
  54. exit
  55. esac
  56.  
  57. get_char()
  58. {
  59. SAVEDSTTY=`stty -g`
  60. stty -echo
  61. stty cbreak
  62. #dd if=/dev/tty bs= count= > /dev/null
  63. stty -raw
  64. stty echo
  65. stty $SAVEDSTTY
  66. }
  67. echo ""
  68. echo "Press any key to start...or Press Ctrl+c to cancel"
  69. char=`get_char`
  70.  
  71. # Initialize the installation related content.
  72. function InitInstall()
  73. {
  74. cat /etc/issue
  75. uname -a
  76. MemTotal=`free -m | grep Mem | awk '{print $2}'`
  77. echo -e "\n Memory is: ${MemTotal} MB "
  78. #Set timezone
  79. #rm -rf /etc/localtime
  80. #ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  81.  
  82. #Delete Old Mysql program
  83. rpm -qa|grep mysql
  84. rpm -e mysql
  85.  
  86. #Disable SeLinux
  87. if [ -s /etc/selinux/config ]; then
  88. sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  89. fi
  90. setenforce
  91.  
  92. }
  93.  
  94. #Installation of depend on and optimization options.
  95. function InstallDependsAndOpt()
  96. {
  97. cd $cur_dir
  98.  
  99. cat >>/etc/security/limits.conf<<EOF
  100. * soft nproc
  101. * hard nproc
  102. * soft nofile
  103. * hard nofile
  104. EOF
  105.  
  106. echo "fs.file-max=65535" >> /etc/sysctl.conf
  107. }
  108.  
  109. #Install MySQL
  110. function InstallMySQL57()
  111. {
  112. echo "============================Install MySQL 5.7.15=================================="
  113. cd $cur_dir
  114.  
  115. #Backup old my.cnf
  116. #rm -f /etc/my.cnf
  117. if [ -s /etc/my.cnf ]; then
  118. mv /etc/my.cnf /etc/my.cnf.`date +%Y%m%d%H%M%S`.bak
  119. fi
  120.  
  121. echo "============================MySQL 5.7.15 installing…………========================="
  122. #mysql directory configuration
  123. tar xvf /root/mysql-5.7.-linux-glibc2.-x86_64.tar.gz
  124. mv /root/mysql-5.7.-linux-glibc2.-x86_64 /usr/local/mysql
  125. groupadd mysql -g
  126. useradd -u -g mysql -s /sbin/nologin -d /home/mysql mysql
  127. mkdir -p /data/mysql
  128. mkdir -p /data/slowlog
  129. chown -R mysql:mysql /data/mysql
  130. chown -R mysql:mysql /usr/local/mysql
  131. chown -R mysql:mysql /data/slowlog
  132.  
  133. #edit /etc/my.cnf
  134. SERVERID=`ifconfig eth0 | grep "inet addr" | awk '{ print $2}'| awk -F. '{ print $3$4}'`
  135. cat >>/etc/my.cnf<<EOF
  136. [client]
  137. port=
  138. socket=/tmp/mysql.sock
  139. default-character-set=utf8
  140.  
  141. [mysql]
  142. no-auto-rehash
  143. default-character-set=utf8
  144.  
  145. [mysqld]
  146. port=
  147. character-set-server=utf8
  148. socket=/tmp/mysql.sock
  149. basedir=/usr/local/mysql
  150. datadir=/data/mysql
  151. explicit_defaults_for_timestamp=true
  152. lower_case_table_names=
  153. back_log=
  154. max_connections=
  155. max_connect_errors=
  156. table_open_cache=
  157. external-locking=FALSE
  158. max_allowed_packet=32M
  159. sort_buffer_size=2M
  160. join_buffer_size=2M
  161. thread_cache_size=
  162. query_cache_size=32M
  163. #query_cache_limit=4M
  164. transaction_isolation=REPEATABLE-READ
  165. tmp_table_size=96M
  166. max_heap_table_size=96M
  167.  
  168. ###***slowqueryparameters
  169. long_query_time=
  170. slow_query_log =
  171. slow_query_log_file=/data/slowlog/slow.log
  172.  
  173. ###***binlogparameters
  174. log-bin=mysql-bin
  175. binlog_cache_size=4M
  176. max_binlog_cache_size=4096M
  177. max_binlog_size=1024M
  178. binlog_format=MIXED
  179. expire_logs_days=
  180.  
  181. ###***relay-logparameters
  182. #relay-log=/data//relay-bin
  183. #relay-log-info-file=/data//relay-log.info
  184. #master-info-repository=table
  185. #relay-log-info-repository=table
  186. #relay-log-recovery=
  187.  
  188. #***MyISAMparameters
  189. key_buffer_size=16M
  190. read_buffer_size=1M
  191. read_rnd_buffer_size=16M
  192. bulk_insert_buffer_size=1M
  193.  
  194. #skip-name-resolve
  195.  
  196. ###***master-slavereplicationparameters
  197. server-id=$SERVERID
  198. #slave-skip-errors=all
  199.  
  200. #***Innodbstorageengineparameters
  201. innodb_buffer_pool_size=512M
  202. innodb_data_file_path=ibdata1:10M:autoextend
  203. #innodb_file_io_threads=
  204. innodb_thread_concurrency=
  205. innodb_flush_log_at_trx_commit=
  206. innodb_log_buffer_size=16M
  207. innodb_log_file_size=512M
  208. innodb_log_files_in_group=
  209. innodb_max_dirty_pages_pct=
  210. innodb_buffer_pool_dump_pct=
  211. innodb_lock_wait_timeout=
  212. innodb_file_per_table=on
  213.  
  214. [mysqldump]
  215. quick
  216. max_allowed_packet=32M
  217.  
  218. [myisamchk]
  219. key_buffer=16M
  220. sort_buffer_size=16M
  221. read_buffer=8M
  222. write_buffer=8M
  223.  
  224. [mysqld_safe]
  225. open-files-limit=
  226. log-error=/data/mysql/error.log
  227. pid-file=/data/mysql/mysqld.pid
  228.  
  229. EOF
  230.  
  231. /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql --initialize-insecure
  232.  
  233. cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  234. chmod /etc/init.d/mysqld
  235. chkconfig --add mysqld
  236. chkconfig --level mysqld on
  237.  
  238. cat >> /etc/ld.so.conf.d/mysql-x86_64.conf<<EOF
  239. /usr/local/mysql/lib
  240. EOF
  241. ldconfig
  242.  
  243. if [ -d "/proc/vz" ];then
  244. ulimit -s unlimited
  245. fi
  246.  
  247. /etc/init.d/mysqld start
  248.  
  249. cat >> /etc/profile <<EOF
  250. export PATH=$PATH:/usr/local/mysql/bin
  251. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib
  252. EOF
  253.  
  254. /usr/local/mysql/bin/mysqladmin -u root password $mysqlrootpwd
  255.  
  256. cat > /tmp/mysql_sec_script<<EOF
  257. use mysql;
  258. delete from mysql.user where user!='root' or host!='localhost';
  259. grant all privileges on *.* to 'sys_admin'@'%' identified by 'MANAGER';
  260. flush privileges;
  261. EOF
  262.  
  263. /usr/local/mysql/bin/mysql -u root -p$mysqlrootpwd -h localhost < /tmp/mysql_sec_script
  264.  
  265. #rm -f /tmp/mysql_sec_script
  266.  
  267. #/etc/init.d/mysqld restart
  268.  
  269. echo "============================MySQL 5.7.15 install completed========================="
  270. }
  271.  
  272. function CheckInstall()
  273. {
  274. echo "===================================== Check install ==================================="
  275. clear
  276. ismysql=""
  277. echo "Checking..."
  278.  
  279. if [ -s /usr/local/mysql/bin/mysql ] && [ -s /usr/local/mysql/bin/mysqld_safe ] && [ -s /etc/my.cnf ]; then
  280. echo "MySQL: OK"
  281. ismysql="ok"
  282. else
  283. echo "Error: /usr/local/mysql not found!!!MySQL install failed."
  284. fi
  285.  
  286. if [ "$ismysql" = "ok" ]; then
  287. echo "Install MySQL 5.7.15 completed! enjoy it."
  288. echo "========================================================================="
  289. netstat -ntl
  290. else
  291. echo "Sorry,Failed to install MySQL!"
  292. echo "You can tail /root/mysql-install.log from your server."
  293. fi
  294. }
  295.  
  296. #The installation log
  297. InitInstall >& | tee /root/mysql-install.log
  298. InstallDependsAndOpt >& | tee -a /root/mysql-install.log
  299. InstallMySQL57 > /dev/null
  300. CheckInstall >& | tee -a /root/mysql-install.log

mysql 5.7安装脚本的更多相关文章

  1. mysql多实例安装脚本

    #! /bin/bash # v.mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz # only install master mysql # time:2016-0 ...

  2. [svc]lnmp一键安装脚本(含有np与mysql分离)

    基于lanny一键安装包:(含lnmp所需软件及配置文件) 安装nginx: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliy ...

  3. mysql 自动备份和nginx自动安装脚本

    一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...

  4. 【排障】编译安装Mysql并使用自启动脚本mysqld后报错

    本文用于记录在某次个人实验搭建DZ论坛,在编译安装部署mysql环节时出的错到最终排除错误的过程, 前面采用DZ官网所采用的编译安装mysql的过程就省去,主要从报错处开始讲述. (题外话,经此一役后 ...

  5. MySQL安装脚本0104-亲试ok

    #!/bin/bash export host_ip=192.168.7.79 export password=123456   echo '#1.取master主机ip的后三位作为master的se ...

  6. MySQL安装脚本最佳实践

    MySQL安装脚本最佳实践 2018年9月19日 17:01 #!/bin/bash   export host_ip=192.168.7.206   echo '#1.取master主机ip的后三位 ...

  7. shell脚本专题之-----------全自动编译安装mysql(免安装版)

    mysql的编译安装,在博客 开源服务专题之--------mysql的编译安装 中已经说明了,但是还是比较麻烦,尤其是一大堆命令,来手动执行,稍有不慎,就会出错.生产上一般都是先在本地测试环境进行自 ...

  8. mysql自动化安装脚本(二进制安装)

    为了日后安装数据库方便,遂写了一个自动安装MySQL的脚本: 测试可以安装mariadb和MySQL-5.7.X 安装前配置好对应的my.cnf文件放在/tmp路径下 将启动脚本mysql3306放在 ...

  9. jdk+tomcat+mysql一键安装脚本

    最近在搞一个web项目部署,每次都要安装jdk.配置环境变量.安装tomcat和mysql.对于非开发人员,还是有点难度的,经常出错,然后就整理了一个自动化的脚本. JDKinstall.bat @e ...

随机推荐

  1. CM5(Cloudera Manager 5) + CDH5(Cloudera's Distribution Including Apache Hadoop 5)的安装详细文档

    参考 :http://www.aboutyun.com/thread-9219-1-1.html Cloudera Manager5及CDH5在线(cloudera-manager-installer ...

  2. IE-“无法浏览网页” 教你十招解决疑难杂症

    “无法浏览网页” 教你十招解决疑难杂症 相信大家也有遇到过像IE不能上网浏览的问题.下面就来给大家介绍一下常见原因和解决方法: 一.网络设置的问题 这种原因比较多出现在需要手动指定IP.网关.DNS服 ...

  3. Python学习(2)

    python基础学习(二)2.1 python定义函数用def,没有返回类型?def myabs(x) if x>0: return x python定义的函数可以多个直接一起返回,这一点和ja ...

  4. Java获取泛型的Class对象

    工作中瞄到的,在此收集了 public class RawDao<T> { protected Class<T> clazz; @SuppressWarnings(" ...

  5. 仰视源代码,实现memcpy

    C++实现内存的复制 通常我们使用深复制就是通过内存复制实现的,可是对象的复制涉及到基类派生类及其相关类的问题.这里不讨论. 目的为了可以明确内存复制的底层实现. void* memcpy(void* ...

  6. Edit显示行号

    Edit显示代码行号 关键点 使用这个类然后关联Edit的变量为 LineNumberEdit类型的 实现过程 //////////////////////////////////////////// ...

  7. Nginx/Apache图片缩略图技术

    1,目的 2,使用方式 3,Nginx + Linux 缩略图实现 3.1,原理 3.2,nginx配置实现 3.3,例子 4,Apache + Windows缩略图实现 4.1,环境 4.2,原理 ...

  8. mongdb使用场景

    你期望一个更高的写负载 默认情况下,对比事务安全,MongoDB更关注高的插入速度.如果你需要加载大量低价值的业务数据,那么MongoDB将很适合你的用例.但是必须避免在要求高事务安全的情景下使用Mo ...

  9. 关于no system images installed for this target解决方法

    (1)国外网站都被屏蔽,连不上下载地址了 修改hosts文件(C:\Windows\System32\drivers\etc\hosts),在最后添加如下内容 127.0.0.1 localhost ...

  10. IAP升级功能编写初期的一些困惑与疑问---完毕功能后的总结

    IAP的源代码等资料我上传了,压缩包内有12个文件,,http://download.csdn.net/detail/f907279313/7524849(要积分的辛苦收集的你们就给点积分吧) 还有还 ...