Board logo

标题: [教程] 升级到MYSQL8.0脚本 [打印本页]

作者: windsage    时间: 2019-3-9 16:25     标题: 升级到MYSQL8.0脚本

  1. #!/bin/bash
  2. # mysql 8.0 update scripts
  3. # Author: wdlinux
  4. # Url: http://www.wdlinux.cn
  5. # Modify: windsage

  6. IN_DIR="/www/wdlinux"

  7. if [ ! $1 ];then
  8.         MYS_VER="8.0.15"
  9. else
  10.         MYS_VER=$1
  11. fi

  12. echo "升级有风险 操作需谨慎"
  13. echo "欢迎学习交流互助提高"
  14. echo "qq:242013800"
  15. echo
  16. read -p "DO YOU REALLY WANT TO UPDATE? (Y/N): " yn
  17. if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
  18.         echo "MYSQL IS NOW UPDATING!"
  19. else
  20.         exit
  21. fi
  22. echo
  23. echo "-------------------------------------------------------------"
  24. echo


  25. if [ ! -f mysql-${MYS_VER}.tar.gz ];then
  26. # 因mysql5.7需要boost,所以这个直接是包含boost的源码包
  27.         wget -c https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-${MYS_VER}.tar.gz -O mysql-${MYS_VER}.tar.gz
  28. fi
  29. yum install -y cmake bison libmcrypt-devel libjpeg-devel libpng-devel freetype-devel curl-devel openssl-devel libxml2-devel zip unzip
  30. if [ ! -d $IN_DIR/mysql-${MYS_VER} ];then
  31. mkdir -p $IN_DIR/mysql-${MYS_VER}
  32. # 数据库文件夹默认要求是data
  33. mkdir -p $IN_DIR/mysql-${MYS_VER}/data
  34. fi

  35. if [ ! -d mysql-${MYS_VER} ];then
  36. tar zxvf mysql-${MYS_VER}.tar.gz
  37. fi
  38. cd mysql-${MYS_VER}
  39. echo "START CONFIGURING MYSQL"
  40. sleep 3
  41. make clean
  42. cmake \
  43. -DCMAKE_INSTALL_PREFIX=$IN_DIR/mysql-$MYS_VER \
  44. -DSYSCONFDIR=$IN_DIR/etc \
  45. -DDEFAULT_CHARSET=utf8 \
  46. -DDEFAULT_COLLATION=utf8_general_ci \
  47. -DWITH_SSL=bundled \
  48. -DWITH_DEBUG=OFF \
  49. -DWITH_EXTRA_CHARSETS=complex \
  50. -DENABLED_PROFILING=ON \
  51. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  52. -DWITH_MYISAM_STORAGE_ENGINE=1 \
  53. -DWITH_MEMORY_STORAGE_ENGINE=1 \
  54. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  55. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  56. -DENABLE_DOWNLOADS=1 \
  57. -DWITH_BOOST=boost/boost_1_68_0/
  58. [ $? != 0 ] && echo "NO! CONFIGURE ERROR!  :(" && exit
  59. echo "START MAKE"
  60. sleep 3
  61. make
  62. [ $? != 0 ] && echo "NO! MAKE ERROR!  :(" && exit
  63. echo "START MAKE INSTALL"
  64. sleep 3
  65. make install
  66. [ $? != 0 ] && echo "NO! MAKE INSTALL ERROR!  :(" && exit
  67. service mysqld stop
  68. # 建立备份文件夹,这个可以自定义设置
  69. if [ ! -d /mnt/mysql_bk ];then
  70. mkdir -p /mnt/mysql_bk
  71. cp -pR /www/wdlinux/mysql/var/* /mnt/mysql_bk
  72. fi
  73. rm -f /www/wdlinux/mysql
  74. ln -sf $IN_DIR/mysql-$MYS_VER /www/wdlinux/mysql
  75. sh scripts/mysql_install_db.sh --user=mysql --basedir=/www/wdlinux/mysql --datadir=/www/wdlinux/mysql/data
  76. chown -R mysql.mysql /www/wdlinux/mysql
  77. chown -R mysql.mysql /www/wdlinux/mysql/data
  78. mv /www/wdlinux/mysql/data/mysql /www/wdlinux/mysql/data/mysqlo
  79. cp support-files/mysql.server /www/wdlinux/init.d/mysqld
  80. chmod 755 /www/wdlinux/init.d/mysqld
  81. service mysqld restart
  82. ln -sf $IN_DIR/mysql/lib/libmysqlclient.so.20. /usr/lib/libmysqlclient.so.20
  83. cd ..
  84. rm -rf mysql-${Ver}/
  85. # rm -rf mysql-${Ver}.tar.gz
  86. sleep 2
  87. service mysqld restart
  88. sleep 2
  89. mysqld --initialize --user=mysql --console
  90. # 或者把备份的数据库复制回来,注意不要覆盖performance_schema
  91. # cp -pR /mnt/mysql_bk/* /www/wdlinux/mysql/data/  
  92. echo
  93. echo "-------------------------------------------------------------"
  94. echo "数据库需要初始化,自动生成的密码会存入mysql的日志,默认在/var/log/mysql/error.log"
  95. echo
  96. echo "此时查看mysql日志,应该一切正常了,但新手朋友注意了,此时你的httpd无法启动了,需要编译安装php。"
  97. echo
复制代码
有不足的地方欢迎指出
作者: admin    时间: 2019-3-10 10:53

数据文件,最好不要直接复制,版本差距大时,应该会有问题
可以使用mysqldump导出再导入
作者: windsage    时间: 2019-4-25 10:02

  1. #!/bin/bash
  2. # mysql 8.0 update scripts
  3. # Author: wdlinux
  4. # Url: http://www.wdlinux.cn
  5. # Modify: windsage

  6. IN_DIR="/www/wdlinux"

  7. if [ ! $1 ];then

  8.         MYS_VER="8.0.15"
  9. else
  10.         MYS_VER=$1
  11. fi

  12. echo "升级有风险 操作需谨慎"
  13. echo "欢迎学习交流互助提高"
  14. echo "qq:242013800"
  15. echo
  16. read -p "DO YOU REALLY WANT TO UPDATE? (Y/N): " yn
  17. if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
  18.         echo "MYSQL IS NOW UPDATING!"
  19. else
  20.         exit
  21. fi
  22. echo
  23. echo "-------------------------------------------------------------"
  24. echo


  25. if [ ! -f mysql-boost-${MYS_VER}.tar.gz ];then
  26. # 因mysql5.7需要boost,所以这个直接是包含boost的源码包
  27.         wget -c https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-${MYS_VER}.tar.gz
  28. fi
  29. yum install -y cmake bison libmcrypt-devel libjpeg-devel libpng-devel freetype-devel curl-devel openssl-devel libxml2-devel zip unzip
  30. if [ ! -d $IN_DIR/mysql-${MYS_VER} ];then
  31. mkdir -p $IN_DIR/mysql-${MYS_VER}
  32. # 数据库文件夹默认要求是data
  33. mkdir -p $IN_DIR/mysql-${MYS_VER}/data
  34. fi

  35. if [ ! -d mysql-${MYS_VER} ];then
  36. tar zxvf mysql-${MYS_VER}.tar.gz
  37. fi
  38. cd mysql-${MYS_VER}
  39. echo "START CONFIGURING MYSQL"
  40. sleep 3
  41. mkdir -p build
  42. cd  build/
  43. make clean
  44. cmake. \
  45. -DCMAKE_INSTALL_PREFIX=$IN_DIR/mysql-$MYS_VER \
  46. -DSYSCONFDIR=$IN_DIR/etc \
  47. -DDEFAULT_CHARSET=utf8 \
  48. -DDEFAULT_COLLATION=utf8_general_ci \
  49. -DWITH_SSL=bundled \
  50. -DWITH_DEBUG=OFF \
  51. -DWITH_EXTRA_CHARSETS=complex \
  52. -DENABLED_PROFILING=ON \
  53. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  54. -DWITH_MYISAM_STORAGE_ENGINE=1 \
  55. -DWITH_MEMORY_STORAGE_ENGINE=1 \
  56. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  57. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  58. -DENABLE_DOWNLOADS=1 \
  59. -DWITH_BOOST=../boost/boost_1_68_0/
  60. [ $? != 0 ] && echo "NO! CONFIGURE ERROR!  :(" && exit
  61. echo "START MAKE"
  62. sleep 3
  63. make
  64. [ $? != 0 ] && echo "NO! MAKE ERROR!  :(" && exit
  65. echo "START MAKE INSTALL"
  66. sleep 3
  67. make install
  68. [ $? != 0 ] && echo "NO! MAKE INSTALL ERROR!  :(" && exit
复制代码
  1. service mysqld stop
  2. # 建立备份文件夹,这个可以自定义设置
  3. if [ ! -d /mnt/mysql_bk ];then
  4. mkdir -p /mnt/mysql_bk
  5. cp -pR /www/wdlinux/mysql/var/* /mnt/mysql_bk
  6. fi
  7. rm -f /www/wdlinux/mysql
  8. ln -sf $IN_DIR/mysql-$MYS_VER /www/wdlinux/mysql
  9. sh scripts/mysql_install_db.sh --user=mysql --basedir=/www/wdlinux/mysql --datadir=/www/wdlinux/mysql/data
  10. chown -R mysql.mysql /www/wdlinux/mysql
  11. chown -R mysql.mysql /www/wdlinux/mysql/data
  12. mv /www/wdlinux/mysql/data/mysql /www/wdlinux/mysql/data/mysqlo
  13. cp support-files/mysql.server /www/wdlinux/init.d/mysqld
  14. chmod 755 /www/wdlinux/init.d/mysqld
  15. service mysqld restart
  16. ln -sf $IN_DIR/mysql/lib/libmysqlclient.so.20. /usr/lib/libmysqlclient.so.20
  17. cd ..
  18. rm -rf mysql-${Ver}/
  19. # rm -rf mysql-${Ver}.tar.gz
  20. sleep 2
  21. service mysqld restart
  22. sleep 2
  23. mysqld --initialize --user=mysql --console
  24. # 或者把备份的数据库复制回来,注意不要覆盖performance_schema
  25. # cp -pR /mnt/mysql_bk/* /www/wdlinux/mysql/data/  
  26. echo
  27. echo "-------------------------------------------------------------"
  28. echo "数据库需要初始化,自动生成的密码会存入mysql的日志,默认在/var/log/mysql/error.log"
  29. echo
  30. echo "此时查看mysql日志,应该一切正常了,但新手朋友注意了,此时你的httpd无法启动了,需要编译安装php。"
  31. echo
复制代码
修改了一下  解决In-source builds are not allowed
作者: 冬至雨    时间: 2019-5-18 12:03

这个脚本对菜鸟来说,是比较困难的
作者: 24447678@qq.com    时间: 2019-5-24 17:38

START CONFIGURING MYSQL
make: *** 没有规则可以创建目标“clean”。 停止。


报错了啊
作者: andylau918    时间: 2019-7-10 13:44

有站長能成功更新嗎?謝謝
作者: yixianbin    时间: 2019-8-9 15:36

没有  我准备试试




欢迎光临 WDlinux官方论坛 (http://wdlinux.cn/bbs/) Powered by Discuz! 7.2