mysql5.7升级为mysql8.0.33(mysql版本升级)
最近有个升级mysql版本的操作,记录一下过程。
1、先对数据库进行备份。
2、安装软件
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
rpm -ivh mysql80-community-release-el7-5.noarch.rpm
yum install mysql-community-server-8.0.33 -y
配置文件,注意配置文件有些参数可能不适合mysql8的版本,所以在初始化过程中需要不断的调试参数,配置文件参考:
# cat /etc/my.cnf
[client]
port = 3306
[mysqld]
datadir=/www/mysql
port = 3306
default_storage_engine = InnoDB
socket=/var/lib/mysql/mysql.sock
ft_min_word_len=1
skip-external-locking
skip-name-resolve
max_allowed_packet=256M
back_log = 500
max_user_connections = 300
max_connect_errors = 10000000
slow_query_log
long_query_time = 2
innodb_buffer_pool_size=512M
log_bin_trust_function_creators=1
max_connections=5000
transaction_isolation=READ-COMMITTED
group_concat_max_len=102400
innodb_buffer_pool_instances = 4
log-error=/var/log/mysqld.log
lower_case_table_names = 1
#sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION'
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
开始初始化:
mkdir /www/mysql
chown -R mysql:mysql /www/mysql
rm -rf /www/mysql/*
mysqld --initialize --user=mysql --datadir=/www/mysql //初始化
tail -30f /var/log/mysqld.log 通过日志文件查看是否初始化成功。临时密码会保存在这个文件里面。
初始化成功后,启动服务:
systemctl start mysqld
3、软件安装完成后,基础操作
首次登录成功需要修改密码:
SET PASSWORD = PASSWORD('YourNewPassword');
开始创建数据库,并且恢复,注意查看原来的库的编码情况:
SHOW CREATE DATABASE dbname;
创建库,并授权:
CREATE DATABASE `dbname` /*!40100 DEFAULT CHARACTER SET utf8 */
CREATE USER 'user'@'%' IDENTIFIED BY 'passwd';
GRANT ALL PRIVILEGES ON dbname.* TO 'user'@'%';
恢复:
use dbname;
source bak.sql;
验证测试。
总结:先备份——安装mysql8.0.33版本——配置文件——初始化,调试——启动服务——创建库——恢复——测试。