一:readme:

 、此脚本仅仅适合于5.7免面编译安装版本。
、安装是需自己选择mysql软件安装包:例如mysql-5.7.-linux-glibc2.-x86_64.tar.gz或者mysql-5.7.-linux-glibc2.-x86_64.tar.gz;请选择glibc版及免编译版本。
、此脚本可选择自动下载和手动上传安装软件包进行安装。
选择自动下载安装请提前获取下载地址并根据提示输入下载URL;如选择手动上传需提前下载好软件包并确认系统中有lrzsz包。
.安装过程中需要手动输入安装路径以及mysql数据存储路径,请提前规划好。也可根据提示输入路径。。
5安装完成后请注意提示,因为脚本会输出此次安装后的登录密码,请记住登录密码。可使用/etc/init.d/mysqld start|stop|restart进行启停。启动后请使用所给的登录密码登录(每次安装登录密码随机)。

二:脚本代码:

 #!/bin/sh
##########################################
# this script is created by xuxuedong. #
# e_mail:***@qq.com #
# qqinfo:*** #
# This is install Mysql5. #
# version:1.1 #
##########################################
. /etc/init.d/functions
#set env
export PATH=$PATH:/bin:/sbin:/usr/sbin
export LANG="zh_CN.GB18030"
packge=/home/admin/tools # Require root to run this script. 判断是否是root用户执行。
#if [[ "$(whoami)" != "root" ]]; then
# echo "Please run this script as root." >&
# exit
#fi
#Show users how to install.让用户选择如何安装
menu ( ){ cat<<END
.手动上传安装
.网络下载安装
.[exit]
pls input the num that you want:
END }
menu
read num
echo "you choice $num"
#upload the packge by user 用户自己上传安装文件
function upload(){
if [ -e $packge ]
then
cd ${packge}&rz
else
mkdir -p ${packge}&cd ${packge}&rz
fi
if [ $? -eq ]
then
action "THE sofeware is upload to ${packge}" /bin/true
else
action "THE sofeware is upload fail" /bin/false
fi
}
###############################
#donwload the packge from URL 用户自己输入下载路径
function WGET(){
while True
do
if [ -e $packge ]
then
cd ${packge}
read -p "input donwload URL:" URL
if [$URL != z ]
then
wget $URL
if [ $? -eq ]
then
action "THE sofeware is download to ${packge}" /bin/true
break
else
Continue
fi
else
mkdir -p ${packge}&cd ${packge}
fi
fi
done
if [ $? -eq ]
then
action "THE sofeware is upload to ${packge}" /bin/true
else
action "THE sofeware is upload fail" /bin/false
fi
}
########################
##install Mysql 自动安装 可用while循环实现只有输入目录才能执行
function InsTall(){
read -p "input a installdir for install mysql(example /application/newmysql):" installdir
if [ -e $installdir ]
then
action "THE dir is exist" /bin/true
else
mkdir -p $installdir
fi
# Installdir = $installdir
read -p "input a mysqldata_dir for mysql_data(example /application/newmysql/3306data):" mysqldata_dir
if [ -e $mysqldata_dir ]
then
action "THE dir is exist" /bin/true
else
mkdir -p $mysqldata_dir
fi
# Mysqldata_dir = $mysqldata_dir
cd ${packge}
echo "`ls -l mysql*`"
read -p "please input you want to install version:" ver
tar -zxf $ver -C $installdir
cd $installdir
echo "`ls -l `"
read -p "please input you want to install version:" installroot_dir
rm -rf ${mysqldata_dir}/*
${installroot_dir}/bin/mysqld --initialize --basedir=${installdir} --datadir=${mysqldata_dir}
if [ $? -eq 0 ]
then
action "mysql is install initialize" /bin/true
else
action "mysql is install initialize false" /bin/false
exit
fi
ln -s ${installroot_dir}/bin $installdir/bin
cp ${installroot_dir}/support-files/mysql.server /etc/init.d/mysqld
cp ${installroot_dir}/support-files/my-default.cnf /etc/my.cnf
cat >>/etc/my.cnf <<EOF
[client]
port=3306
user=iddbs
password ='newpassword'
socket=${mysqldata_dir}/mysql.sock
[mysqld]
max_connections=1000
max_user_connections=500
wait_timeout=200
user=iddbs
server-id=5
port=3306
basedir=$installdir
datadir=${mysqldata_dir}
socket=${mysqldata_dir}/mysql.sock
pid-file=${mysqldata_dir}/mysql.pid
log-bin=${mysqldata_dir}/mysql-bin
relay-log=${mysqldata_dir}/relay-bin
log-error=${mysqldata_dir}/mysql-error.log
interactive_timeout=172800
wait_timeout=172800
max_allowed_packet=16M
expire_logs_days=7
auto-increment-increment=2
auto-increment-offset=1
character-set-server=utf8
collation_server=utf8_general_ci
innodb_data_file_path=ibdata1:1G:autoextend
innodb-buffer-pool-size=15G
binlog_format=row
relay_log_recovery=1
log_bin_trust_function_creators=1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
lower_case_table_names = 1
character_set_server = utf8
event_scheduler = on
[mysqldump]
quick
max_allowed_packet = 16M [mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
default-character-set = utf8 [myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
EOF echo "export PATH=$PATH:${installdir}/bin">>/etc/profile
source /etc/profile
echo "mysql login password for root is:`cat ${mysqldata_dir}/mysql-error.log | grep password`"
}
function quit(){
if [ "$num" -eq 3 ]
then
echo "logout..."
exit 0
fi
} case $num in
1)
upload
InsTall
;;
2)
WGET
InsTall
;;
3)
quit
;; *)
echo "USAG:1|2|3"
esac

三:完成登录数据库后操作:

  由于mysql5.7基于安全考虑对于通过第一次安装密码进行登录后,无法进行操作的问题(不能查看库、表等):

  请点击此处

最新文章

  1. 【分布式协调器】Paxos的工程实现-cocklebur选举
  2. Problem B Boxes in a Line
  3. JS Math算数
  4. 【CSS】使用CSS改变超链接样式
  5. 在fedora20下面手动为自己的安装程序创建桌面图标
  6. 企业版IDP的申请及“In House”发布
  7. css案例学习之div+a实现菜单
  8. C++继承分析
  9. TLS详解
  10. 仿QQ菜单栏:消息,电话菜单
  11. JavaScript 下拉框 左边添加至右边
  12. spring security 4.2后出现CouldnotverifytheprovidedCSRFtokenbecauseyoursessionwasnotfound
  13. 【RF库XML测试】Get Elements
  14. Oracle11g温习-第六章:控制文件
  15. 【刷题】BZOJ 2157 旅游
  16. 路由跟踪tracert
  17. linux中pipe和dup2详解
  18. 微软职位内部推荐-Principal Development Lead - SharePoint
  19. HDU 1045 dfs
  20. JS获取元素计算过后的样式

热门文章

  1. fatal error C1902: 程序数据库管理器不匹配;请检查安装解决
  2. 让Spinner中的文字居中
  3. liunx目录/etc下相关配置
  4. C++基础--完善Socket C/S ,实现客户端,服务器端断开重连
  5. 转:Ubuntu12.04编译VLC,在linux上运行
  6. 面试题:sql数据查询
  7. Mina学习之---mina整体流程介绍
  8. hdu-1181
  9. androidEditTextinputType及android:imeOptions=”actionDone”(转)
  10. Atom 基本使用