原创| 开发动态| 一个月前| 阅读 125 次 | 0赞同 0反对
概述:mysql8.0已经上线了4个年头了,但是在生产环境中为了稳定安定评定的运营,DBA们暂时不对环境中的Mysql5.6或者5.7下手,今天板砖参考wdcp论坛中的基友的帖子来试验了一番Mysql5.6升级Mysql8.0.19。
以下脚本请复制另存为sh文件并上传服务器www文件夹,然后ssh登录服务器,运行命令 sh xxx.sh
升级的时候请注意以下变量,如IN_DIR 、备份文件夹,不过板砖建议你单独运行以下备份数据文件夹的命令:
service mysqld stop mkdir -p /www/wdlinux/mysql_bk cp -pR /www/wdlinux/mysql/data/* /www/wdlinux/mysql_bk mv /www/wdlinux/etc/my.cnf /www/wdlinux/etc/my_old.cnf上述备份文件的命令在上一篇Mysql5.5升级Mysql5.6已经用过了,安全,建议先行备份,在执行下面的文件
#!/bin/bash # mysql 8.0 update scripts # Author: wdlinux # Url: http://www.wdlinux.cn # Modify: windsage IN_DIR="/www/wdlinux" if [ ! $1 ];then MYS_VER="8.0.19" else MYS_VER=$1 fi echo "升级有风险 操作需谨慎" echo "欢迎学习交流互助提高" echo "qq:242013800" echo read -p "DO YOU REALLY WANT TO UPDATE? (Y/N): " yn if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then echo "MYSQL IS NOW UPDATING!" else exit fi echo echo "-------------------------------------------------------------" echo if [ ! -f mysql-boost-${MYS_VER}.tar.gz ];then # 因mysql5.7需要boost,所以这个直接是包含boost的源码包 wget -c https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-${MYS_VER}.tar.gz fi yum install -y cmake bison libmcrypt-devel libjpeg-devel libpng-devel freetype-devel curl-devel openssl-devel libxml2-devel zip unzip if [ ! -d $IN_DIR/mysql-${MYS_VER} ];then mkdir -p $IN_DIR/mysql-${MYS_VER} # 数据库文件夹默认要求是data mkdir -p $IN_DIR/mysql-${MYS_VER}/data fi if [ ! -d mysql-${MYS_VER} ];then tar zxvf mysql-${MYS_VER}.tar.gz fi cd mysql-${MYS_VER} echo "START CONFIGURING MYSQL" sleep 3 mkdir -p build cd build/ make clean cmake. \ -DCMAKE_INSTALL_PREFIX=$IN_DIR/mysql-$MYS_VER \ -DSYSCONFDIR=$IN_DIR/etc \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_SSL=bundled \ -DWITH_DEBUG=OFF \ -DWITH_EXTRA_CHARSETS=complex \ -DENABLED_PROFILING=ON \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DENABLE_DOWNLOADS=1 \ -DWITH_BOOST=../boost/boost_1_68_0/ [ $? != 0 ] && echo "NO! CONFIGURE ERROR! :(" && exit echo "START MAKE" sleep 3 make [ $? != 0 ] && echo "NO! MAKE ERROR! :(" && exit echo "START MAKE INSTALL" sleep 3 make install [ $? != 0 ] && echo "NO! MAKE INSTALL ERROR! :(" && exit service mysqld stop # 建立备份文件夹,这个可以自定义设置,建议一开始就先备份,不要问我为什么,这样可视化安全更放心 if [ ! -d /www/wdlinux/mysql_bk ];then mkdir -p /www/wdlinux/mysql_bk cp -pR /www/wdlinux/mysql/data/* /www/wdlinux/mysql_bk fi rm -f /www/wdlinux/mysql ln -sf $IN_DIR/mysql-$MYS_VER /www/wdlinux/mysql sh scripts/mysql_install_db.sh --user=mysql --basedir=/www/wdlinux/mysql --datadir=/www/wdlinux/mysql/data chown -R mysql.mysql /www/wdlinux/mysql chown -R mysql.mysql /www/wdlinux/mysql/data mv /www/wdlinux/mysql/data/mysql /www/wdlinux/mysql/data/mysqlo cp support-files/mysql.server /www/wdlinux/init.d/mysqld chmod 755 /www/wdlinux/init.d/mysqld service mysqld restart ln -sf $IN_DIR/mysql/lib/libmysqlclient.so.20. /usr/lib/libmysqlclient.so.20 cd .. rm -rf mysql-${Ver}/ # rm -rf mysql-${Ver}.tar.gz sleep 2 service mysqld restart sleep 2 mysqld --initialize --user=mysql --console # 或者把备份的数据库复制回来,注意不要覆盖performance_schema # cp -pR /mnt/mysql_bk/* /www/wdlinux/mysql/data/ echo echo "-------------------------------------------------------------" echo "数据库需要初始化,自动生成的密码会存入mysql的日志,默认在/var/log/mysql/error.log" echo echo "此时查看mysql日志,应该一切正常了,但新手朋友注意了,此时你的httpd无法启动了,需要编译安装php。" echo
本频道需要登陆后才能评论,请登录