首页 > 数据库 >MySQL万能一键安装脚本

MySQL万能一键安装脚本

时间:2024-10-16 19:47:33浏览次数:3  
标签:万能 MySQL 一键 echo etc innodb usr mysql local

说明:此脚本,适合glibc2.12所有版本的数据库安装。

安装包下载地址:MySQL :: Download MySQL Community Server

#!/bin/bash
echo "-----------------------------开始MYSQL安装--------------------------------------"
start_time=$(date +%s)
echo -e "\e[31m***************一键安装mysql任何版本数据库******************\e[0m"
echo -e "输入安装版本,如\e[31m8.0.27\e[0m"
read version
#find / -name mysql | xargs rm -rf
port=$(netstat -antup|grep mysql|wc -l)
if [ $port != 0 ]
then echo "mysql进程存在,请先杀掉进程"
ps -ef |grep mysqld
exit 1
fi
echo "-----------------创建所需目录及用户并上传安装包----------------------------"
# 获取当前所在目录位置
current_dir=$(pwd)
echo "当前所在目录位置: $current_dir"
# 目标路径
target_dir="/opt"
# 检查目标路径是否存在,如果不存在则创建
if [ ! -d "$target_dir" ]; then
    mkdir -p "$target_dir"
    echo "已创建目录: $target_dir"
fi
# 移动当前目录下的所有文件到目标路径
mv $current_dir/mysql* $target_dir
echo "已将当前目录下所有文件移动至 $target_dir"
mkdir -p  /data/mysql
groupadd mysql
useradd -r -g mysql mysql
cd /opt/
tar -xvf mysql-$version-linux-glibc2.12-x86_64.tar.xz
mv mysql-$version-linux-glibc2.12-x86_64/  /usr/local/
cd /usr/local/
mv mysql-$version-linux-glibc2.12-x86_64/ mysql
chown -R mysql.mysql /usr/local/mysql/
echo "-----------------------------卸载原有的mysql组件--------------------------"
yum list installed | grep mariadb
yum remove mariadb* -y >/dev/null 2>&1
chown mysql:mysql -R /data/mysql
touch /etc/my.cnf
chmod 644 /etc/my.cnf
MYSQL_ROOT_PASSWORD=123456
cat <<EOF >/etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
server_id=1
port=3306
sort_buffer_size = 4M
join_buffer_size = 4M
read_buffer_size = 8M
read_rnd_buffer_size = 4M
tmp_table_size = 32M
max_heap_table_size = 32M
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
innodb_flush_method=O_DIRECT
innodb_use_fdatasync = ON
character-set-server=utf8mb4
innodb_rollback_on_timeout = ON
innodb_file_per_table=on
innodb_stats_on_metadata=on
innodb_autoinc_lock_mode=2
log_queries_not_using_indexes =1
innodb_print_all_deadlocks=1
auto_increment_increment=1
auto_increment_offset=1
log_throttle_queries_not_using_indexes = 60
interactive_timeout = 600
wait_timeout = 600
lock_wait_timeout = 3600
innodb_buffer_pool_size=2G
max_binlog_size = 1073741824 
expire_logs_days=7
lower_case_table_names=1
max_connections=10000
binlog_format=row
log-bin=mysql-bin
gtid-mode=on
log-slave-updates=1
enforce-gtid-consistency=on
master-verify-checksum = 1
slave_skip_errors=1062
slave-skip-errors=all
default_authentication_plugin=mysql_native_password
[mysql]
socket=/tmp/mysql.sock
prompt="\u@\h:\d>"
[client]
EOF
echo "-----------------------------------初始化数据库-----------------------------------"
cd /usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
path=$(grep 'basedir' /etc/profile|wc -l)
if [ $path !=  0 ]
  then
    echo -e "\e[31m MYSQL_HOME路径存在\e[0m"
  else
    echo "export basedir=/usr/local/mysql/bin" >> /etc/profile
    echo "export PATH=\$PATH:\$basedir"        >> /etc/profile
    source /etc/profile
fi
echo "---------------------------------启动MYSQL服务---------------------------------------"
service mysql start
echo 'export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib'>>/etc/profile
sleep 3
source /etc/profile
cat /data/mysql/mysql.err|grep password
chkconfig --add mysql
chkconfig mysql on
chkconfig --list mysql
echo "-----------------------------恭喜!MYSQL安装成功--------------------------------------"
end_time=$(date +%s)
execution_time=$((end_time - start_time))
echo "脚本执行时间:${execution_time} 秒"
MYSQL_OLDPASSWORD=`awk '/A temporary password/{print $NF}' /data/mysql/mysql.err`
mysqladmin  -uroot -p${MYSQL_OLDPASSWORD} password ${MYSQL_ROOT_PASSWORD}
mysql -uroot -p123456 -e "update mysql.user set host ='%' where user ='root';flush privileges;"
mysql -uroot -p123456 -e "grant BACKUP_ADMIN on *.* to 'root'@'%';flush privileges;"
mysql -uroot -p123456

 欢迎关注公众号《小周的数据库进阶之路》,更多精彩知识和干货尽在其中。

标签:万能,MySQL,一键,echo,etc,innodb,usr,mysql,local
From: https://blog.csdn.net/qq_36936192/article/details/142974058

相关文章

  • 实战!oracle 19c一键安装脚本分享
    #!/bin/bash#一键安装oracle数据库#修改主机名hostnamectlset-hostnamemyoracle#添加主机名与IP对应记录public_ip=$(hostname-I|grep-o-e'[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}'|head-n1)node_name=$(hostname)echo-e"${public_ip}${no......
  • MySQL8一键物理备份脚本分享
    一、Xtrabackup介绍xtrabackup是由Percona公司开发的一个用于MySQL数据库物理热备的工具,开源免费,目前官方最新版本是8.0.35,也支持8.0.37版本数据库,本文已经过测试。另外8.1,8.2和8.3也支持。它具有如下优点:(1)备份速度快,物理备份可靠;(2)在备份期间不间断地处理事务;(3)支持备份......
  • MySQL
    mysql的版本号:mysql:5.7.26mysql:5.0以下的是正统MySQLmysql:5.3-5.5mysql:5.8mysql特点:开源程序的源代码是对用户开放的用户可以免费获取、使用、修改双授权社区版:免费、没有技术支持商业版:收费、有完善的售后支持跨平台可以运行在Windows、Linux、mac稳定轻量级:My......
  • 2024/10/16 日 日志 --》关于Mysql的中DQL的初步学习笔记与整理
    在前几天已经进行了Mysql的初步准备和学习,接下来我将继续向后推进。以下为课程学习整理,方便记忆和复习。点击查看代码-------DQL----基础查询--1.查询多个字段--SELECT字段列表form表名 ;--selcet*form表名;--查询所有数据--2.去除重复记录--selectdist......
  • Elasticsearch与MySQL的概念对比
    我们统一的把mysql与elasticsearch的概念做一下对比:MySQLElasticsearch说明TableIndex索引(index),就是文档的集合,类似数据库的表(table)RowDocument文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式ColumnFiled字段(Field),就是JSON文......
  • jeecgboot 3.7.1 一键将生成好的代码复制到前后端项目目录,并执行SQL插入菜单的python
    importshutilimportosimportmysql.connectorfrommysql.connectorimportErrorbase_dir="D:/pro/JeecgBoot-v3.7.1"code_dir="/gendcode"package_name="meetrice"#MySQL连接配置config={'user':'root......
  • 关系型数据库(mysql/InnoDB)的前世今生
    博主专注于Java程序开发,旨在与各路大神做技术交流,觉得不错的朋友,点个关注,有想深度交流,也可参考博主其他文章:java知识体系搭建-CSDN博客前言本文将汇总介绍关系型数据库的常用知识,理论偏多,希望大家都能对关系型数据库有个总体的认识。具体应用,大家需要在工作中自行融汇。介绍......
  • 高可用 proxysql + mysql MGR
    MGR配置安装系统:centos7.9yuminstallhttps://repo.percona.com/yum/percona-release-latest.noarch.rpmpercona-releaseenable-onlyps-8x-innovationreleasepercona-releaseenabletoolsreleaseyuminstallpercona-server-server第一台机器配置#mgr#basic......
  • 倒排索引及ES相关概念对比MySQL
    一、倒排索引1、先把文档内容进行分词,形成词条与文档ID的对应关系,叫做词条库,词条具备唯一性,建立索引2、对搜索内容进行分词,分词后得到一个关键词列表,根据关键词去词条库中匹配,在找对应的文档ID列表3、然后根据文档ID列表,找到对应的文档信息对比:   二、ES相关概念对比My......
  • LLAMAFACTORY:一键优化大型语言模型微调的利器
    人工智能咨询培训老师叶梓转载标明出处模型适配到特定的下游任务,通常需要进行微调(fine-tuning),这一过程往往需要大量的计算资源。为了解决这一问题,来自北京航空航天大学和北京大学的研究人员共同开发了LLAMAFACTORY,这是一个统一的框架,集成了多种前沿的高效训练方法,使得用户可......