获取mysql软件
https://dev.mysql.com/downloads/mysql/
https://dev.mysql.com/doc/refman/8.0/en/
mysql安装方式
1,源码安装
2,二进制安装 (解压即用)
3, yum安装,需要网络
确认当前mysql版本的mysql支持的平台
https://www.mysql.com/support/supportedplatforms/database.html
https://www.mysql.com/support/eol-notice.html
创建数据库管理用户
useradd -s /sbin/nologin mysql
创建数据和日志目录
mkdir -p /data/mysql/data_3306
mkdir -p /data/mysql/binlog_3306
上传软件并解压
省略
制作软连接
ln -s mysql-5.7.26-linux-glibc2.12-x86_64 mysql-57
ln -s mysql-8.0.18-linux-glibc2.12-x86_64 mysql-80
这里需要做升级,所以做了两个软连接
设置环境变量
vim /etc/profile
export PATH=/root/mysql-57/bin:/bin:$PATH
source /etc/profile
mysql -V #可以看到mysql版本证明以上操作正确
我这里把包放在了root下
把mysql软件和创建的目录都给mysql用户权限
chown -R mysql.mysql /data /root/*
进行初始化操作
#--initialize-insecure 不安全的 , 没有密码,没有密码策略
#initialize 安全的模式,没次初始化完成都会生成临时密码,只能登陆数据库,需要人为修改后才能正常管理数据库
mysqld --initialize-insecure --user=mysql --basedir=/root/mysql-57 --datadir=/data/mysql/data_3306
#在mysql5.6版本中初始化命令跟5.7和8.0不一样
/usr/local/mysql56/scripts/mysql_install_db --user=mysql --basedir=/root/mysql-57 --datadir=/dta/mysql/data_3306
准备数据库启动配置文件
cat > /etc/my.cnf<<EFO
[mysqld] #服务器端配置
user=mysql
basedir=/root/mysql-57 #放软件的地方
datadir=/data/mysql/data_3306 #mysql数据存放地方
socket=/tmp/mysql.sock #本地登录时需要文件
server_id=6 #主从复制 mgr需要的
log_bin=/data/mysql/binlog_3306 #毕加二进制日志
port=3306 #启动端口
[mysql] #客户端
socket=/tmp/mysql.sock #连接时需要的文件
EFO
启动数据库 mysql数据库有很多启动方式
1在安装路径下有个脚本可以启动
/root/mysql-57/bin/mysqld_safe
mysqld_safe --defaults-file=/etc/my.cnf &
停止数据库
mysqladmin shutdown
2或者用centos自带的systemd管理
/root/mysql-57/support-files/mysql.server
cp mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
systemctl start mysqld
升级数据库
如何把mysql5.7升级到8.0
需要注意系统的参数升级到mysql8.0有哪些是不支持的需要看
https://dev.mysql.com/doc/refman/8.0/en/added-deprecated-removed.html
mysql8.0的新功能 #注其实mysql5.7就有了,只是支持的不太好
https://downloads.mysql.com/archives/shell/
下载linux通用
你升级到哪个版本就下载哪个版本的mysql-shell,上传系统并解压,做软连接
添加mysql-shell的环境变量
vim /etc/profile
export PATH=/root/mysql-57/bin:/root/mysql-sh/bin:$PATH
source /etc/profile
在数据库授权用户
grant all on *.* to root@'10.0.0.%' identified by '123';
mysql 8.0 不支持此命令了
使用mysql-shell检测升级问题
mysqlsh root:123@172.31.224.229:3306 -e "util.checkForServerUpgrade()" >/tmp/upgrade.log
文件里面会记录详细的不满足升级的条件
升级新版本 理念就是用新版本的软件启动旧版本数据
1修改配置文件
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/root/mysql-8.0
datadir=/data/mysql/data_3306
socket=/tmp/mysql.sock
server_id=6
log_bin=/data/mysql/binlog_3306
port=3306
[mysql]
socket=/tmp/mysql.sock
修改环境变量
vim /etc/profile
export PATH=/root/mysql-80/bin:/root/mysql-sh/bin:$PATH
source /etc/profile
mysql -V #坚持环境变量是否切换成功
把原来数据库停止
升级之前必须备份数据 必须备份数据 必须备份数据 ,一旦升级mysql8.0无法回退 不备份就等死
用高版本启动程序启动
方法很多
cp mysql.server /etc/init.d/mysqld
systemctl start mysqld
可以通过数据路径下的主机名称.err日志查看升级过程
此方法属于就地升级,生产一般采用迁移升级配合备份,切记,切记,切记 一旦升级无法回退
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。