暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

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任何版本,如有问题,请大家随时联系我。


文中的概念来源于互联网,如有侵权,请联系我删除。

欢迎关注公众号:小周的数据库进阶之路,一起交流数据库、中间件和云计算等技术。欢迎觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!感兴趣的朋友可以加我微信,拉您进群与业界的大佬们一起交流学习。


文章转载自小周的数据库进阶之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论