mysql前言
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
mysql 下载
Mysql下载 | Mysql 管理 |
download | download |
Linux 各系统下载使用参考
Red Hat | Rocky Linux | Oracle Linux | AlmaLinux | ubuntu | suselinux | esxi | RHEL标准安装 | 系统安装参考 | YUM参考 | MobaXterm 远程连接工具 | Red Hat Enterprise 9.0 文档 | Kickstart 生成器 |
download | download | download | download | download | download | download | 参考 | 参考 | 配置参考 | download | 参考 | Kickstart |
版本兼容性 |
安装 Mysql 5
-
创建安装自动化脚本
- 以下基于Redhat系统
- 安装位置 /usr/local/mysql
- 数据目录/data/mysql_data3306
- 配置文件/etc/my.cnf
- mysql用户名密码 root/Ciasm@123
- Redhat 9 functions使用需要执行安装yum install initscripts -y
- curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXX' #更改自己的企业微信机器人地址
- curl -o /etc/yum.repos.d/redhat.repo http://mirrors.aliyun.com/repo/Centos-8.repo #阿里在线repo
- yum install figlet -y #用于将文字转换为放大艺术字(使用figlet Mysql显示)
vim /mysql5_install.sh
#!/bin/sh
# -*- coding: utf-8 -*-
# Author: CIASM
# Date: 2023/04/01
<<!
_
_ __ ___ _ _ ___ __ _| |
| '_ ` _ \| | | / __|/ _` | |
| | | | | | |_| \__ \ (_| | |
|_| |_| |_|\__, |___/\__, |_|
|___/ |_|
!
source /etc/rc.d/init.d/functions
#Define data path variables
data_downloads=/data/downloads
#Define MYSQL path variables
echo "Define MYSQL path variables"
sleep 3
MYSQL_URL=https://cdn.mysql.com/archives/mysql-5.7/
MYSQL_FILE=mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
MYSQL_PREFIX=/usr/local/mysql
MYSQL_glibc=mysql-5.7.40-linux-glibc2.12-x86_64
function mysql_package (){
echo "mysql package"
sleep 3
timedatectl set-timezone Asia/Shanghai
yum install epel-release -y
yum remove postfix mariadb-libs -y
yum install -y wget protobuf-lite libaio numactl-libs numactl policycoreutils-python-utils net-tools libncurses*
}
function install_mysql (){
echo "install mysql "
sleep 3
if [ ! -d ${MYSQL_PREFIX} ];then
mysql_package
mkdir -p $data_downloads
wget -N -P $data_downloads ${MYSQL_URL}${MYSQL_FILE}
tar -xf $data_downloads/${MYSQL_FILE} -C $data_downloads
if [ $? -eq 0 ];then
mv $data_downloads/$MYSQL_glibc /usr/local/mysql
mysql_config
action "The MYSQL Install Sussess..." /bin/true
else
action "The MYSQL Install Failed..." /bin/false
exit 1
fi
else
echo -e "\033[31mThe MYSQL already Install...\033[0m"
fi
}
function mysql_config (){
echo "mysql config"
sleep 3
useradd mysql -r -s /sbin/nologin
mkdir -p /data/mysql_data3306
chown root.mysql -R /usr/local/mysql
cat >>/etc/my.cnf<<EOF
[client]
default-character-set=utf8mb4
port = 3306
socket = /data/mysql_data3306/mysql.sock
[mysqld]
datadir = /data/mysql_data3306
socket = /data/mysql_data3306/mysql.sock
log-error = /var/log/mysql_3306.log
port = 3306
user = mysql
log-bin=mysql-bin
server-id=1
performance_schema = off
innodb_buffer_pool_size = 32M
bind_address = 0.0.0.0
skip-name-resolve = 0
lower_case_table_names=1
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci
log_timestamps = SYSTEM
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
max_connections=1000
innodb_file_per_table=1
innodb_file_format=Barracuda
log_bin_trust_function_creators=on
[mysql]
default-character-set=utf8mb4
EOF
#Creating log output
echo "Creating log output"
sleep 3
touch /var/log/mysql_3306.log && chown -R mysql:mysql /var/log && chmod 755 /var/log/mysql*
echo "initialized database"
sleep 3
#Initialize each instance: After initialization, the password will be generated in the log. Remember to save it and use it later.
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data3306 --log_error=/var/log/mysql_3306.log
#Open SSL connections for each instance
/usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data3306 --log_error=/var/log/mysql_3306.log
echo "Configure the database startup service"
sleep 3
#Copying server the Startup Script
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
#start mysql
echo "start mysql"
sleep 3
service mysqld start
chkconfig --add mysqld
chkconfig mysqld on
#Mysql environment variable
echo "Mysql environment variable"
sleep 3
ln -s /usr/local/mysql/bin/* /usr/bin/
echo "limits config"
cat >>/etc/security/limits.conf<<EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOF
#system Maximum config
echo "system Maximum number of connections"
echo "fs.file-max=65535" >> /etc/sysctl.conf
#Resetting the Default Password
echo "mysql initialize default password"
sleep 3
mysql -S /data/mysql_data3306/mysql.sock -p`cat /var/log/mysql_3306.log | grep 'password is generated' | awk '{print $NF}'` --connect-expired-password -e "alter user root@localhost identified by 'Ciasm@123'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Ciasm@123' WITH GRANT OPTION; FLUSH PRIVILEGES;"
#firewall config
echo "config"
sleep 3
firewall-cmd --zone=public --add-port=3306/tcp --permanent && firewall-cmd --reload
#Delete mysql the downloaded installation package
echo "Delete mysql the downloaded installation package"
sleep 3
rm -rf $data_downloads/$MYSQL_FILE
}
function Deployment_completion_notification (){
host_ID=`dmidecode -s system-serial-number | sed -r 's/\s+//g'`
host_IP=`ifconfig -a | grep inet | grep -v '127.0.0.1' | awk '{ print $2}' | awk 'NR==1'`
memory_Size=`dmidecode -t memory | grep Size | grep -v No | awk '{sum+=$2} END {printf "%.0fG\n",sum/1^C4}'`
CPU_Model=`cat /proc/cpuinfo | grep 'model name' | awk '{print $6}' | uniq`
Disk_size=`fdisk -l | grep "sda:" | awk '{print $3$4}'`
redhat_version=`cat /etc/redhat-release | grep "release" | awk '{print $6}'`
redhat_core=`cat /proc/version | grep "version" | awk '{print $3}'`
mysqld_server=`service mysqld status | awk '{print $3}'`
mysqld_version=`mysql -V | awk '{print $5}'`
curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXX' \
-H 'Content-Type: application/json' \
-d '
{
"msgtype": "markdown",
"markdown": {
"content": " **system check** <font color=\"info\"> complete </font> \n
> **Host IP Address** \n
[http://'$host_IP'](http://'$host_IP') \n
> **Hardware information** \n
hostSN:<font color=\"info\"> '$host_ID' </font> \n
CPU_Model:<font color=\"info\"> '$CPU_Model' </font> \n
memory_Size:<font color=\"info\"> '$memory_Size' </font> \n
Disk_size:<font color=\"info\"> '$Disk_size' </font> \n
System_version:<font color=\"info\"> '$redhat_version' </font> \n
system_core:<font color=\"info\"> '$redhat_core' </font> \n
> **mysql install** \n
mysql_version:<font color=\"info\"> '$mysqld_version' </font> \n
mysql_server:<font color=\"info\"> '$mysqld_server' </font> \n",
}
}'
}
function main (){
install_mysql
Deployment_completion_notification
}
main
执行一键安装mysql
sh /mysql5_install.sh
安装完成企业微信提醒
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)