MySQL数据库一键安装脚本,适合任何版本

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: MySQL数据库一键安装脚本,适合任何版本

一、安装包和脚本准备:

下载所需的安装包上传至任务目录下,这里我以8.0.33版本为例,安装包大家自行去MySQL官网下载。

官网地址:https://dev.mysql.com/downloads/mysql/

  1. 链接: https://pan.baidu.com/s/10KFBi40h2oGURQTm9Z9IvQ
  2. 提取码: dgex

二、安装:

编辑好脚本,赋予脚本执行权限,然后source执行脚本。只需要输入自己所需要的版本号即可轻松完成数据库的安装。

  1. [root@localhost ~]#chmod +x mysql_install.sh
  2. [root@localhost ~]#source mysql_install.sh

三、脚本:

  1. #!/bin/bash
  2. echo "-----------------------------开始MYSQL安装--------------------------------------"
  3. start_time=$(date +%s)
  4. echo -e "\e[31m***************一键安装mysql任何版本数据库******************\e[0m"
  5. echo -e "输入安装版本,如\e[31m8.0.27\e[0m"
  6. read version
  7. find / -name mysql | xargs rm -rf
  8. port=$(netstat -antup|grep mysql|wc -l)
  9. if [ $port != 0 ]
  10. then echo "mysql进程存在,请先杀掉进程"
  11. ps -ef |grep mysqld
  12. exit 1
  13. fi
  14. echo "-----------------创建所需目录及用户并上传安装包----------------------------"
  15. # 获取当前所在目录位置
  16. current_dir=$(pwd)
  17. echo "当前所在目录位置: $current_dir"
  18. # 目标路径
  19. target_dir="/opt"
  20. # 检查目标路径是否存在,如果不存在则创建
  21. if [ ! -d "$target_dir" ]; then
  22.    mkdir -p "$target_dir"
  23.    echo "已创建目录: $target_dir"
  24. fi
  25. # 移动当前目录下的所有文件到目标路径
  26. mv $current_dir/* $target_dir
  27. echo "已将当前目录下所有文件移动至 $target_dir"
  28. mkdir -p  /data/mysql
  29. groupadd mysql
  30. useradd -r -g mysql mysql
  31. cd /opt/
  32. tar -xvf mysql-$version-linux-glibc2.12-x86_64.tar.xz
  33. mv mysql-$version-linux-glibc2.12-x86_64/  /usr/local/
  34. cd /usr/local/
  35. mv mysql-$version-linux-glibc2.12-x86_64/ mysql
  36. chown -R mysql.mysql /usr/local/mysql/
  37. echo "-----------------------------卸载原有的mysql组件--------------------------"
  38. yum list installed | grep mariadb
  39. yum -y remove mariadb*
  40. yum remove mariadb*
  41. chown mysql:mysql -R /data/mysql
  42. touch /etc/my.cnf
  43. chmod 644 /etc/my.cnf
  44. MYSQL_ROOT_PASSWORD=123456
  45. cat <<EOF >/etc/my.cnf
  46. [mysqld]
  47. user=mysql
  48. basedir=/usr/local/mysql
  49. datadir=/data/mysql
  50. socket=/tmp/mysql.sock
  51. log-error=/data/mysql/mysql.err
  52. pid-file=/data/mysql/mysql.pid
  53. server_id=1
  54. port=3306
  55. character-set-server=utf8
  56. innodb_rollback_on_timeout = ON
  57. character-set-server = utf8
  58. collation-server=utf8_general_ci
  59. sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
  60. lower_case_table_names=1
  61. max_connections=10000
  62. sync_binlog=1
  63. binlog_format=row
  64. log-bin=mysql-bin
  65. expire_logs_days=30
  66. [mysql]
  67. socket=/tmp/mysql.sock
  68. default-character-set=utf8
  69. [client]
  70. EOF
  71. echo "-----------------------------------初始化数据库-----------------------------------"
  72. cd /usr/local/mysql/bin
  73. ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
  74. cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
  75. path=$(grep 'MYSQL_HOME' /etc/profile|wc -l)
  76. if [ $path !=  0 ]
  77.  then
  78.    echo -e "\e[31m MYSQL_HOME路径存在\e[0m"
  79.  else
  80.    echo "export MYSQL_HOME=/usr/local/mysql/bin" >> /etc/profile
  81.    echo "export PATH=\$PATH:\$MYSQL_HOME"        >> /etc/profile
  82.    source /etc/profile
  83. fi
  84. echo "---------------------------------启动MYSQL服务---------------------------------------"
  85. service mysql start
  86. echo 'export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib'>>/etc/profile
  87. sleep 3
  88. source /etc/profile
  89. cat /data/mysql/mysql.err|grep password
  90. chkconfig --add mysql
  91. chkconfig mysql on
  92. chkconfig --list mysql
  93. echo "-----------------------------恭喜!MYSQL安装成功--------------------------------------"
  94. end_time=$(date +%s)
  95. execution_time=$((end_time - start_time))
  96. echo "脚本执行时间:${execution_time} 秒"
  97. MYSQL_OLDPASSWORD=`awk '/A temporary password/{print $NF}' /data/mysql/mysql.err`
  98. mysqladmin  -uroot -p${MYSQL_OLDPASSWORD} password ${MYSQL_ROOT_PASSWORD}
  99. mysql -uroot -p123456 -e "update mysql.user set host ='%' where user ='root';"
  100. mysql -uroot -p123456 -e "flush privileges;"
  101. mysql -uroot -p123456

说明:此脚本适用于mysql任何版本,如有问题,请大家随时联系我。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
9天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
23 4
|
10天前
|
SQL 关系型数据库 MySQL
go语言中安装数据库驱动
【11月更文挑战第1天】
30 5
|
8天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
13天前
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
39 5
|
15天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
49 3
|
4天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
32 0
|
7天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
22 1
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
61 3
Mysql(4)—数据库索引
|
16天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
82 1