本文讲述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升级方法
需要下载的包和安装顺序依次是:
- mysql-community-common
- mysql-community-libs
- mysql-community-libs-compat
- mysql-community-client
- mysql-community-server
RPM升级步骤如下:
- 下载rpm包,点击此处访问官方下载地址
- 备份数据
- 关闭服务
- 升级版本,按以上指定的顺序依次yum安装
- 启动服务
本实例中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源码非编译版本的安装与升级方法