前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql安装,升级

mysql安装,升级

原创
作者头像
萧晚歌
修改2021-11-08 09:19:28
7920
修改2021-11-08 09:19:28
举报
文章被收录于专栏:linux技术分享linux技术分享

获取mysql软件

代码语言:javascript
复制
 https://dev.mysql.com/downloads/mysql/
 https://dev.mysql.com/doc/refman/8.0/en/

mysql安装方式

代码语言:javascript
复制
1,源码安装
2,二进制安装 (解压即用)
3, yum安装,需要网络

确认当前mysql版本的mysql支持的平台

代码语言:javascript
复制
https://www.mysql.com/support/supportedplatforms/database.html
https://www.mysql.com/support/eol-notice.html

创建数据库管理用户

代码语言:javascript
复制
useradd -s /sbin/nologin mysql

创建数据和日志目录

代码语言:javascript
复制
mkdir -p /data/mysql/data_3306
mkdir -p /data/mysql/binlog_3306

上传软件并解压

省略

制作软连接

代码语言:javascript
复制
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

这里需要做升级,所以做了两个软连接

设置环境变量

代码语言:javascript
复制
vim /etc/profile
export PATH=/root/mysql-57/bin:/bin:$PATH
source /etc/profile
mysql -V #可以看到mysql版本证明以上操作正确

我这里把包放在了root下

把mysql软件和创建的目录都给mysql用户权限

代码语言:javascript
复制
chown  -R mysql.mysql /data /root/*

进行初始化操作

代码语言:javascript
复制
#--initialize-insecure 不安全的 , 没有密码,没有密码策略
#initialize  安全的模式,没次初始化完成都会生成临时密码,只能登陆数据库,需要人为修改后才能正常管理数据库

mysqld --initialize-insecure --user=mysql --basedir=/root/mysql-57 --datadir=/data/mysql/data_3306

#在mysql5.6版本中初始化命令跟5.7和8.0不一样

代码语言:javascript
复制
/usr/local/mysql56/scripts/mysql_install_db --user=mysql --basedir=/root/mysql-57 --datadir=/dta/mysql/data_3306

准备数据库启动配置文件

代码语言:javascript
复制
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数据库有很多启动方式

代码语言:javascript
复制
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有哪些是不支持的需要看

代码语言:javascript
复制
https://dev.mysql.com/doc/refman/8.0/en/added-deprecated-removed.html

mysql8.0的新功能 #注其实mysql5.7就有了,只是支持的不太好

代码语言:javascript
复制
https://downloads.mysql.com/archives/shell/

下载linux通用

你升级到哪个版本就下载哪个版本的mysql-shell,上传系统并解压,做软连接

添加mysql-shell的环境变量

代码语言:javascript
复制
vim /etc/profile
export PATH=/root/mysql-57/bin:/root/mysql-sh/bin:$PATH
source /etc/profile

在数据库授权用户

代码语言:javascript
复制
grant all on *.* to root@'10.0.0.%' identified by '123';
mysql 8.0 不支持此命令了

使用mysql-shell检测升级问题

代码语言:javascript
复制
mysqlsh  root:123@172.31.224.229:3306 -e  "util.checkForServerUpgrade()" >/tmp/upgrade.log

文件里面会记录详细的不满足升级的条件

升级新版本 理念就是用新版本的软件启动旧版本数据

1修改配置文件

代码语言:javascript
复制
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

修改环境变量

代码语言:javascript
复制
vim /etc/profile
export PATH=/root/mysql-80/bin:/root/mysql-sh/bin:$PATH
source /etc/profile
mysql -V #坚持环境变量是否切换成功

把原来数据库停止

升级之前必须备份数据 必须备份数据 必须备份数据 ,一旦升级mysql8.0无法回退 不备份就等死

用高版本启动程序启动

方法很多

代码语言:javascript
复制
cp mysql.server  /etc/init.d/mysqld 
systemctl start mysqld
可以通过数据路径下的主机名称.err日志查看升级过程

此方法属于就地升级,生产一般采用迁移升级配合备份,切记,切记,切记 一旦升级无法回退

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档