升级原因
由于服务器中MySQL版本是5.7等级太低,在数据量少的时候看不出来问题,但是一但超过三千就会导致整表查询过慢。(我这是一万条数据,使用*查询需要7s以上)
使用慢查询没法解决的问题,就去看了下版本号,发现最新的稳定版本是8.0,自己的是5.7,就产生了跟新MySQL版本的想法
踩坑原因
找了升级版本的方法就开始按照步骤操作,结果CV太过迅速就在没有备份数据的情况下将MySQL卸载了,还删除了所有的安装文件夹。发现时候已经太迟,于是联系了阿里的售后服务,等待反馈时间超过十二个小时,给我的回复是无法解决,找不到数据记录,需要找第三方或者购买阿里服务(单次处理价格3K起),要不是用户量不多和本地有一条半个月前的备份就得泉水重开了。
所以升级前一点要先进行数据备份
升级步骤
卸载MySQL(卸载前先进行备份)
查询与关闭MySQL服务
查询MySQL服务 ps ajx | grep mysql
查询mariadb
服务 ps ajx | greg mariadb
关闭MySQL服务 systemctl stop mysqld
卸载对应的MySQL
检查MySQL安装包 rpm -qa | grep mysql
删除安装包 rpm -ev +包名
批量删除安装包 rpm -qa | grep mysql | xargs yum -y remove
(删除后使用rpm -qa | grep mysql检查一遍)
查找含有MySQL的目录 find / -name mysql
删除含有MySQL的目录 rm -rf +文件路径
删除my.cnf文件 rm -rf /etc/my.cnf
安装MySQL
选择安装MySQL目录 /use/local
下载MySQL wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz
解压MySQL tar xvJf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz
重命名文件夹 mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql
打开mysql文件夹 cd mysql
创建data文件夹 mkdir data
创建用户组 groupadd mysql
创建用户和密码 useradd -g mysql mysql
授权用户 chown -R mysql.mysql /usr/local/mysql
切换到bin文件目录 cd bin
初始化基础信息得到mysql初始密码
./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize
切换到etc文件目录 cd etc
新建my.cnf文件 mkdir my.cnf
my.cnf的配置信息:
[mysqld]
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
切换到 /usr/local/mysql文件 cp -a ./support-files/mysql.server /etc/init.d/mysql
授权 chmod +x /etc/init.d/mysql
添加服务 chkconfig --add mysql
启动MySQL service mysql start
查看启动状态 service mysql status
将MySQL命令添加到服务 ln -s /usr/local/mysql/bin/mysql /usr/bin
登录MySQL mysql -uroot -p
输入前面生成的初始密码
修改ROOT密码 123456是自己设置的新密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
执行命令使密码生效 flush privileges;
选择MySQL数据库 use mysql;
修改远程连接并生效 update user set host='%' where user='root';
执行命令使密码生效 flush privileges;
连接数据库
出现这个的原因是这个数据库的旧的连接记录需要新建一个数据库名字用一样的就行
最后将备份的数据重新导入就可以正常使用了
PS
PS
PS
进行MySQL的操作前一定要备份,备份,再备份