mysql低版本源代码安装
前言
如果不使用最新版本的mysql,但是低版本的mysql官方不提供编译好的安装包,只能自己编译安装了。以下步骤和参数针对5.6、5.7生效,新版本有变动请阅读官方文档介绍。
版本停更提示:5.6 已于 2021-02、5.7 已于 2023-10 结束官方支持(EOL),两者均不再有安全补丁,新项目请直接上 8.0/8.4 LTS。老库升级前注意 8.0 的行为差异:
差异点 5.7 及以前 8.0+ 默认字符集/排序规则 latin1(编译默认)/ utf8 utf8mb4 / utf8mb4_0900_ai_ci(建表不显式声明排序规则时行为不同,统一排序规范的团队会踩索引失效坑) 认证插件 mysql_native_password caching_sha2_password——老的客户端/驱动(5.1 系 jdbc、老版 Navicat 等)直接连不上,需升级驱动或临时 default_authentication_plugin=mysql_native_passwordQuery Cache 可用 已移除(高并发下锁竞争严重,官方放弃),以前靠 QC 的读多写少优化思路作废 GROUP BY 排序 隐式排序 不再隐式 ORDER BY,依赖隐式排序的 SQL 结果会乱 数据字典 FRM/MYD/MYI 文件 合并进 InnoDB,不支持从 8.0 直接降级,升级前务必备份 编译安装的思路(本文正文)在 8.0 时代依然适用,但更推荐用官方 yum/apt 仓库或 tar 包二进制安装,省时且不易踩编译依赖坑。
1、环境检测
使用下面的命令检查是否安装有MySQL Server
|
|
2、下载源码
|
|
或者web下载
历史各版本下载:https://downloads.mysql.com/archives/community/
Source Code -> Generic Linux 通用tar包
3、安装编译环境
安装编译代码需要的包
|
|
4、开始编译
编译安装,取决服务器性能,时间会比较久,请耐心等待
|
|
5、创建用户
设置权限 使用下面的命令查看是否有mysql用户及用户组
cat /etc/passwd 查看用户列表
cat /etc/group 查看用户组列表
如果没有就创建
groupadd mysql
useradd -g mysql mysql
修改/usr/local/mysql权限
chown -R mysql:mysql /data/mysql/
6、初始化配置
进入安装路径
|
|
进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表
scripts/mysql_install_db --basedir=/data/mysql --datadir=/data/mysql/data --user=mysql
6.1 配置my.cnf
打开my.cnf后,在文件内的[mysqld]下增加如下两行设置:
|
|
注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置
6.2 启动MySQL
添加服务,拷贝服务脚本到init.d目录,并设置开机启动
|
|
6.3 配置环境变量
MySQL启动成功后,root默认没有密码,我们需要设置root密码。
设置之前,我们需要先设置PATH,要不不能直接调用mysql
修改/etc/profile文件,在文件末尾添加
|
|
现在,我们可以在终端内直接输入mysql进入,mysql的环境了
执行下面的命令修改root密码
|
|
若要设置root用户可以远程访问,执行
|
|
红色的password为远程访问时,root用户的密码,可以和本地不同。
6.4 配置防火墙
防火墙的3306端口默认没有开启,若要远程访问,需要开启这个端口
|
|
然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:
|
|
OK,一切配置完毕,你可以访问你的MySQL了~
- 原文作者:Anttu
- 原文链接:https://anTtutu.github.io/post/2018-08-14-mysql_install/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。