mysql安装脚本(代码片段)

锦衣admin 锦衣admin     2022-11-29     238

关键词:

MySQL安装脚本

操作系统MySQL版本
CentOS7.6最小化安装mysql-5.7.31
IP10.1.1.10
安装目录/usr/local/mysql
数据目录/usr/local/mysql/data
套接字/tmp/mysql.sock

CentOS 7初始化

操作系统初始化脚本:

#!/bin/bash
# Desc:系统初始化
os_init () 

hostnamectl set-hostname $name
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i.bak '/^SELINUX=/c\\SELINUX=disabled' /etc/selinux/config

sed -i.bak '/^UUID=/c\\UUID="af42de51-8836-44d0-8b20-1ebfa7818bc7"' $nic_name
sed -i '4a\\IPADDR=10.1.1.10' $nic_name
sed -i '/^BOOTPROTO="/c\\BOOTPROTO="static"' $nic_name
sed -i '5a\\DNS2=114.114.114.114' $nic_name
sed -i '5a\\DNS1=8.8.8.8' $nic_name
sed -i '5a\\GATEWAY=10.1.1.2' $nic_name
sed -i '5a\\NETMASK=255.255.255.0' $nic_name	

systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl restart network



if !(rpm -q wget);then
    yum install -y wget
fi
tar -zcPf /etc/yum.repos.d/repo.tar.gz /etc/yum.repos.d/C*.repo
rm -f /etc/yum.repos.d/*.repo
wget -O /etc/yum.repos.d/CentOS-tencent-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
yum clean all
yum makecache


main () 
nic_name=/etc/sysconfig/network-scripts/ifcfg-ens33
read -p "Host name is:" name
os_init
yum install bash-completion vim net-tools ntp -y


main

MySQL5.7安装

MySQL安装脚本:

#!/bin/bash
# Desc:MySQL安装脚本

# 根据版本安装
mysql_install () 
[ -f /etc/my.cnf ] && mv /etc/my.cnf /etc/my.cnf.bak
if ! (id mysql &>/dev/null);then
	useradd -r -s /sbin/nologin mysql
fi
if [ -n "$mysql_glibc" ];then 
    mkdir /usr/local/mysql && tar xf $mysql_glibc.tar.gz -C /usr/local/mysql --strip-components 1
    yum install libaio -y &> /dev/null
fi
if [ -n "$mysql_source" ];then
    mkdir ./$mysql_source 2>/dev/null && tar xf $mysql_source.tar.gz -C ./$mysql_source --strip-components 1 2>/dev/null
    yum -y install cmake ncurses-devel openssl-devel gcc-c++ libaio-devel &> /dev/null
fi


# 修改配置文件
mysql_cnf () 
case $mycnf in
ab|AB|a|B)
cat >> /usr/local/mysql/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/master.err
log-bin=/usr/local/mysql/data/binlog
server-id=10
character_set_server=utf8mb4
EOF
;;
gtids|GTIDs|g|G)
cat >> /usr/local/mysql/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/master.err
log-bin=/usr/local/mysql/data/binlog
server-id=10
character_set_server=utf8mb4
gtid-mode=on
log-slave-updates=1
enforce-gtid-consistency
EOF
;;
esac




# MySQL设置
mysql_init () 
   cd /usr/local/mysql
   mkdir mysql-files
   chown -R mysql.mysql mysql-files/
   chmod 750 mysql-files/
   chown -R mysql.mysql /usr/local/mysql
   mysql_cnf
   bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &> /root/pass.txt
   bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
   cp support-files/mysql.server /etc/init.d/mysql
   echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
   source /etc/profile
   
   service mysql start
   pass=`awk 'NR==7print $NF' /root/pass.txt`
   mysqladmin -uroot password '123' -p$pass
    mysql -e "flush privileges;" -uroot -p123

mysql_secure_installation <<EOF
123
No
No
Y
Y
Y
Y
EOF
chkconfig --add mysql
chkconfig mysql on


# 安装glibc版本
sql_glibc () 
if [[ $mysql_glibc = *glibc* ]];then
	mysql_init
fi


# 安装源码版
sql_source () 
if [[ $mysql_source = mysql* ]];then
   cd ./$mysql_source

   cmake . \\
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \\
-DMYSQL_DATADIR=/usr/local/mysql/data \\
-DMYSQL_TCP_PORT=3306 \\
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \\
-DWITH_INNOBASE_STORAGE_ENGINE=1 \\
-DWITH_PARTITION_STORAGE_ENGINE=1 \\
-DWITH_FEDERATED_STORAGE_ENGINE=1 \\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \\
-DWITH_MYISAM_STORAGE_ENGINE=1 \\
-DENABLED_LOCAL_INFILE=1 \\
-DEXTRA_CHARSETS=all \\
-DDEFAULT_CHARSET=utf8mb4 \\
-DDEFAULT_COLLATION=utf8mb4_general_ci \\
-DWITH_SSL=system \\
-DWITH_BOOST=boost
make && make install
mysql_init
fi



# 主调函数
main () 
read -p "解压的MySQL_glibc版本,如mysql-5.7.31-linux-glibc2.12-x86_64,:" mysql_glibc
read -p "解压的MySQL_源码包版本,如mysql-boost-5.7.30,:" mysql_source
read -p "需要搭建哪种主从复制,如ab | GTIDs |  :" mycnf

mysql_install
sql_glibc
sql_source

main

MySQL5.6安装

使用脚本安装MySQL并初始化:

  • MySQL在安全配置的时候设置密码
#!/bin/bash
read -p "请输入需要安装的MySQL源码包,如mysql-5.6.33:" mysql_source

mkdir ./$mysql_source && tar xf $mysql_source.tar.gz -C ./$mysql_source --strip-components 1

if !(id mysql &> /dev/null);then
   useradd -r -s /sbin/nologin -M mysql
fi
[ -f /etc/my.cnf ] && mv /etc/my.cnf /etc/my.cnf.bak



# 安装依赖
 yum -y install cmake bison-devel ncurses-devel libaio-devel

# 配置+编译安装
cd $mysql_source/
cmake \\
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \\
-DMYSQL_DATADIR=/usr/local/mysql/data \\
-DSYSCONFDIR=/etc \\
-DENABLED_LOCAL_INFILE=1 \\
-DWITH_PARTITION_STORAGE_ENGINE=1 \\
-DEXTRA_CHARSETS=all \\
-DDEFAULT_CHARSET=utf8mb4 \\
-DDEFAULT_COLLATION=utf8mb4_general_ci \\
-DWITH_SSL=bundled
make && make install

# 将MySQL的配置文件拷贝一份到/etc目录下
if [ -d /usr/local/mysql ];then
   cd /usr/local/mysql
   cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

# 授权并初始化MySQL
   chown -R mysql:mysql /usr/local/mysql
   /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
fi
#安全配置服务、自启动和环境变量
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile
service mysqld start
chkconfig --add mysqld
chkconfig mysqld on

# 对MySQL进行安全配置,删除匿名用户,利用expect自动交互套件执行
if ! (rpm -q expect &> /dev/null);then
yum -y install expect
fi

/usr/bin/expect <<-EOF
set timeout 20
spawn mysql_secure_installation
expect 
 "enter for none"  send "\\r"; exp_continue 
 " password:"  send "123\\r"; exp_continue  
 "Y/n"   send "Y\\r"; exp_continue 
 "Cleaning up"  send "\\r"

expect eof
EOF

脚本实现二进制mariadb数据库的安装(代码片段)

...于关系型数据库,通过此实验掌握mariadb数据库的二进制安装二、实验准备mariadb-10.2.23-linux-x86_64.tar.gz安装包,虚拟机需要安装expect包三、实验脚本vim/data/mysql.sh#!/bin/bash#creategroupuser创建用于mysql服务的组和用户groupadd-r-g336mysql#创... 查看详情

安装mysql8-shell脚本自动安装(代码片段)

...功能介绍:在不联网的情况下,服务器centos系统安装mysql8。并且自动化运行sql文件生成里面的表格。mysql8tar安装包,安装脚本,卸载脚本资源都在百度网盘链接都放在百度网盘,永久分享,有需要自取。仅... 查看详情

linux自动部署--sh脚本安装jdk,tomcat,mysqlclient(代码片段)

linux自动部署–sh脚本安装jdk,tomcat,mysqlclient文章目录linux自动部署--sh脚本安装jdk,tomcat,mysqlclient1sh脚本创建用户组及用户2.sh脚本安装jdk3.sh脚本安装tomcat4.sh脚本安装mysql-client,sh执行mysql命令环境linux注意替换自己的安装包和路径root... 查看详情

centos安装多实例数据库(代码片段)

在Centos下安装多个MySql5.7①下载MySql解压版安装包②编写安装脚本③将脚本和安装包放置同一目录④编写my.cnf文件并放置在/etc/目录下⑤赋予脚本运行权限并运行⑥修改默认密码①下载MySql解压版安装包点击传送门:MySql下载下载... 查看详情

shbash脚本安装apache,mysql和php以及phpmyadmin和一些调整。对于debian和ubuntu。要运行,请将脚本复制到se(代码片段)

查看详情

sqoop安装及使用(代码片段)

SQOOP安装及使用文章目录SQOOP安装及使用SQOOP安装1、上传并解压2、修改文件夹名字3、修改配置文件4、修改环境变量5、添加MySQL连接驱动6、测试准备MySQL数据登录MySQL数据库创建student数据库切换数据库并导入数据另外一种导入数... 查看详情

sqoop安装及使用(代码片段)

SQOOP安装及使用文章目录SQOOP安装及使用SQOOP安装1、上传并解压2、修改文件夹名字3、修改配置文件4、修改环境变量5、添加MySQL连接驱动6、测试准备MySQL数据登录MySQL数据库创建student数据库切换数据库并导入数据另外一种导入数... 查看详情

docker容器启动mysql执行初始化sql脚本实现(代码片段)

...里面体现).本文详细讲解如何实现这一过程.准备工作本地安装docker且安装docker-compose.机器上安装的是dockerdesktop,所以docker-compose不用额外安装,其他环境去github上安装对应版本的docker-compose即可.其次mysql的docker镜像,选择mysql版本是8.... 查看详情

docker容器启动mysql执行初始化sql脚本实现(代码片段)

...里面体现).本文详细讲解如何实现这一过程.准备工作本地安装docker且安装docker-compose.机器上安装的是dockerdesktop,所以docker-compose不用额外安装,其他环境去github上安装对应版本的docker-compose即可.其次mysql的docker镜像,选择mysql版本是8.... 查看详情

docker中安装mysql(代码片段)

文章目录使用docker安装MySQL为什么使用docker安装MySQL使用docker安装MySQL的好处软件版本与文档安装MySQL安装脚本说明注意事项使用docker安装MySQL为什么使用docker安装MySQL  在软件开发中,由于项目需要,以及新技术的学习&#... 查看详情

mysql常用命令~(代码片段)

MYSQL常用命令~九周目安装目录数据库目录/var/lib/mysql配置文件/usr/share/mysql(mysql.sercer命令及配置文件)相关命令/user/bin/(mysqladminmysqldump命令)启动脚本/etc/init.d/mysql(启动脚本文件mysql的目录)系统管理链接Mysqlmysql-h主机地址-u用... 查看详情

一键编译安装lamp(代码片段)

...码包php:php-7.3.5tar.bz2源码包以上所有源码包存,以及一键安装脚本存放在root家目录下,运行一键安装脚本。脚本运行完毕,使用浏览器访问测试页一键安装脚本#!/bin/bashL 查看详情

一键部署mysql(直接坐等结束就完事了!!)(代码片段)

将安装包(mysql-boost-5.7.20.tar.gz)拖至/opt目录下,编一个脚本文件,然后source执行脚本,等脚本执行完成,即可使用mysql-uroot-p点击回车(无密码,在Xshell中方如果显示无mysql命令的话Xshell重新连接即可)即... 查看详情

sqoop安装及使用(代码片段)

SQOOP安装及使用文章目录SQOOP安装及使用SQOOP安装1、上传并解压2、修改文件夹名字3、修改配置文件4、修改环境变量5、添加MySQL连接驱动6、测试准备MySQL数据登录MySQL数据库创建student数据库切换数据库并导入数据另外一种导入数... 查看详情

在linux中使用shell脚本自动化安装jdk1.8和mysql5.7(代码片段)

写在前面如果你是在windows里写好,直接拖到虚拟机运行脚本,可能会遇到一些问题,如:badinterpreter:Nosuchfileordirectory方式①:这种情况,可以在非编辑模式下输入:setfileformat=unix然后后执行:x或者:wq或者... 查看详情

lnmp源码部署脚本(代码片段)

LNMP部署脚本部署版本:NginxMySQLphpnginx-1.14.2.tar.gzmysql-5.6.33.tar.gzphp-7.2.12.tar.gzMySQL数据库密码:123Nginx和php的子进程运行用户为wwwLNMP部署脚本:#!/bin/bash#Desc:LNMP源码部署脚本#安装MySQL源码mysql_inst 查看详情

python自动备份脚本(代码片段)

...,并且解决备份文件过多的问题。前提:备份的本机必须安装Mysql,否则Mysql命令报错。使用:linux一般自带python,执行脚本:pythonsql_bak.py即可。  (PS:如果不小心python后面没输入内容,可输入exit()即可推荐python命令行)#-*-codi... 查看详情

linux自动部署--sh脚本安装jdk,tomcat,mysqlclient(代码片段)

linux自动部署–sh脚本安装jdk,tomcat,mysqlclient文章目录linux自动部署--sh脚本安装jdk,tomcat,mysqlclient1sh脚本创建用户组及用户2.sh脚本安装jdk3.sh脚本安装tomcat4.sh脚本安装mysql-client,sh执行mysql命令环境linux注意替换自己的安装包和路径root... 查看详情