MySQL5.7源码非编译版本的安装与升级方法

本文讲述MySQL5.7.29的源码非编译版本的安装过程,以及升级至5.7.34版本方法,编译安装那种费力又费心的事情必须忽略。

安装

下载源码包

cd /opt/installation
# 以Linux-Generic为例
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

配置安装环境

# 可能需要安装的依赖包
# yum -y install ncurses pcre perl

# 创建MySQL系统用户
groupadd -r mysql
useradd -r -g mysql -s /sbin/nologin -M mysql

# 创建数据目录
mkdir -p /data/mysql

# 根据实际需求配置基本环境
touch /var/log/mysqld.log
mkdir /var/run/mysql/
chown mysql.mysql /var/log/mysqld.log
chown -R mysql.mysql /var/run/mysql/

安装MySQL

# 解压并配置目录
tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
chown -R mysql.mysql mysql-5.7.29-linux-glibc2.12-x86_64
mv mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysql

# 设置启动脚本
ls -lrt /usr/local/mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 可能需要赋予执行权限
# chmod +x /etc/init.d/mysqld

# 设置开机启动
systemctl enable mysqld

# 添加环境变量
echo -e '\nexport PATH=/usr/local/mysql/bin:$PATH\n' >> /etc/profile

# 使环境变量生效
source /etc/profile

# 配置动态链接库(可选)
echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
ldconfig
ldconfig -v | grep mysql

配置MySQL

成功initialize数据库后,会自动生成一个默认密码,需牢记,因为在初始化时需要用到!

# 配置数据库时在"–datadir"目录中不能有数据文件
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

# 初始化数据库时进行重置root密码/访问权限等
mysql_secure_installation

# 启动数据库
systemctl start mysqld

# 检查数据库版本
mysql -V

升级

官方不支持跨大版本直接升级,支持直接升级的说明:

  • 小版本间升级,如:5.7.29到5.7.34
  • 跨一个版本升级,如:5.6.x到5.7.x

准备升级包

# 以Linux-Generic为例
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

# 解压并赋权
tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz
chown -R mysql.mysql mysql-5.7.34-linux-glibc2.12-x86_64
cd mysql.mysql mysql-5.7.34-linux-glibc2.12-x86_64

备份数据文件

如果以下mysql命令无法直接运行,请参照安装方法中配置环境变量,或者在数据库/usr/local/mysql/bin目录中执行命令。

# 关闭数据库
mysql -uroot -p --execute="SET GLOBAL innodb_fast_shutdown=0"
mysqladmin -uroot -p shutdown
# 找不到sock时尝试指定sock位置
# mysqladmin -uroot -p shutdown -S /tmp/mysql.sock

# 备份安装目录
cp -a /usr/local/mysql /opt/bak/mysql5.7.24
# 或者直接移走或打包
# mv /usr/local/mysql /opt/bak/mysql5.7.24
# tar zcvf mysql5724.tar.gz mysql5.7.24

# 备份数据目录
cp -a /data/mysql /opt/bak/mysqldata

升级数据库

# 复制新版本文件
\cp -a mysql-5.7.34-linux-glibc2.12-x86_64 /usr/local/mysql
# 或者直接移回
mv mysql-5.7.34-linux-glibc2.12-x86_64 /usr/local/mysql

# 启动mysqld
mysqld_safe --user=mysql --datadir=/data/mysql

# 执行mysql_upgrade 
mysql_upgrade -u root -p
# 找不到sock时尝试指定sock位置,也可以&后台运行
# mysql_upgrade -u root -p -S /tmp/mysql.sock &

# 替换启动脚本
\cp /mysql/support-files/mysql.server /etc/init.d/mysqld

# 重启数据库
mysqladmin -u root -p shutdown
/etc/init.d/mysqld start
# 通过systemd重启时需要重载
systemctl daemon-reload
systemctl restart mysqld

# 检查数据库版本
mysql -V

附加

RPM升级方法

需要下载的包和安装顺序依次是:

  1. mysql-community-common
  2. mysql-community-libs
  3. mysql-community-libs-compat
  4. mysql-community-client
  5. mysql-community-server

RPM升级步骤如下:

  1. 下载rpm包,点击此处访问官方下载地址
  2. 备份数据
  3. 关闭服务
  4. 升级版本,按以上指定的顺序依次yum安装
  5. 启动服务

本实例中MySQL的基本配置/etc/my.cnf如下,请根据实际情况修改。

[mysqld]
user=mysql
basedir = /usr/local/mysql
datadir = /data/mysql
socket = /tmp/mysql.sock
log-error = /var/log/mysqld.log
pid-file = /var/run/mysql/mysqld.pid

原创文章禁止转载:技术学堂 » MySQL5.7源码非编译版本的安装与升级方法

精彩评论

2+8=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏