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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 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任何版本,如有问题,请大家随时联系我。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
16天前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 22.04.1上安装MySQL 8.0及设置root密码的注意事项
这些是在Ubuntu 22.04.1 系统上安装MySQL 8.0 及设置root密码过程中必须考虑的关键点。正确的遵循这些步骤可确保MySQL的安装过程既顺利又安全。
311 20
|
10天前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
55 10
|
2月前
|
关系型数据库 MySQL Linux
安装MySQL 5.7到红帽系RHEL8+系列上
本文介绍了在RHEL 8及以上系统中安装MySQL 5.7的两种方法:解压安装与RPM包安装。涵盖环境准备、目录配置、数据盘挂载、初始化及服务启动等关键步骤,适用于红帽系(8+)部署MySQL 5.7。
|
4月前
|
关系型数据库 MySQL Linux
实现MySQL数据库的定时自动备份脚本。
拿走,不谢,这个脚本配方(指引)保证你的数据库数据像蛋糕店一样地天天更新,还能确保老旧的蛋糕(数据)不会堆积满仓库。这下可好,数据安全有保障,数据库管理员也能轻松一点,偶尔闲下来的时候,煮杯咖啡,看个剧岂不美哉?别忘了偶尔检查一下你的自动备份是否正常工作,以防万一蛋糕机器出了点小差错。
200 20
|
4月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
357 17
|
4月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
297 11
|
3月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
560 1
|
4月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
3月前
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
203 62

推荐镜像

更多