先用这个脚本运行
#!/bin/bash
# mysql 5.7 update scripts
# Author: wdlinux
# Url: http://www.wdlinux.cn
# Modify: slrainy
IN_DIR="/www/wdlinux"
if [ ! $1 ];then
MYS_VER="5.7.26"
else
MYS_VER=$1
fi
echo "升级有风险 操作需谨慎,请先备份好数据"
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-${MYS_VER}-linux-glibc2.12-x86_64.tar.gz ];then
wget -c http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-${MYS_VER}-linux-glibc2.12-x86_64.tar.gz
fi
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}-linux-glibc2.12-x86_64 ];then
tar zxvf mysql-${MYS_VER}-linux-glibc2.12-x86_64.tar.gz
fi
mv mysql-${MYS_VER}-linux-glibc2.12-x86_64 mysql-${MYS_VER}
mkdir mysql-${MYS_VER}/data
cp -R mysql-${MYS_VER}/* $IN_DIR/mysql-${MYS_VER}
chown -R mysql:mysql ./mysql
echo "START CONFIGURING MYSQL"
sleep 3
[ $? != 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 /mnt/mysql_bk ];then
mkdir -p /mnt/mysql_bk
cp -pR /www/wdlinux/mysql/var/* /mnt/mysql_bk
fi
rm -f /www/wdlinux/mysql
ln -sf $IN_DIR/mysql-$MYS_VER /www/wdlinux/mysql
cd $IN_DIR/mysql-$MYS_VER
./bin/mysqld --initialize --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
cp /www/wdlinux/mysql/support-files/mysql.server /www/wdlinux/init.d/mysqld
chmod 755 /www/wdlinux/init.d/mysqld
cp /www/wdlinux/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
service mysqld restart
ln -sf $IN_DIR/mysql/lib/libmysqlclient.so.20.3.13 /usr/lib/libmysqlclient.so.20
cd ..
rm -rf mysql-${Ver}/
# rm -rf mysql-${Ver}.tar.gz
sleep 2
service mysqld restart
sleep 2
# 或者把备份的数据库复制回来,注意不要覆盖performance_schema
# cp -pR /mnt/mysql_bk/* /www/wdlinux/mysql/data/
echo "强制修改mysql的root密码,在忘记mysql密码时有用"
echo "sh /www/wdlinux/tools/mysql_root_chg.sh"
echo "wdcp3.0使用以下命令"
echo "sh /www/wdlinux/wdcp/shell/mysqlrootchp.sh"
echo
echo "-------------------------------------------------------------"
echo "数据库需要初始化,自动生成的密码会存入mysql的日志,默认在/var/log/mysql/error.log"
echo "shell进入mysql,更改密码命令:Password = PASSWORD('yourpass')"
echo "或者把备份的数据库复制回来,注意不要覆盖performance_schema"
echo "执行/www/wdlinux/mysql-5.7.17/bin下的mysql_upgrade更新数据库结构"
echo
echo "此时查看mysql日志,应该一切正常了,但新手朋友注意了,此时你的httpd无法启动了,需要编译安装php。"
echo "我提供了三个版本,根据你的喜好选择,当然,你也可以输入版本号,安装任何你喜欢的。"
echo
2、改mysql目录
vi /www/wdlinux/init.d/mysqld
vi /etc/init.d/mysqld
改这两个目录
basedir=/www/wdlinux/mysql
datadir=/www/wdlinux/mysql/data
启动:service mysqld restart
报错
mysql [ERROR] unknown variable ‘thread_concurrency=8’
my.cnf禁掉这行
3、强制修改mysql的root密码,在忘记mysql密码时也可以用
老版本用这个
sh /www/wdlinux/tools/mysql_root_chg.sh
wdcp3.0使用以下命令:
sh /www/wdlinux/wdcp/shell/mysqlrootchp.sh