Linux 原生安装最新版MySQL 8.4 不分发行版Linux系统通用

Linux 下安装最新版MySQL 8.4不分发行版 Linux系统通用

    Linux下安装mysql8的方式很多通过系统带的包管理器apt|yum|dpkg 等工具安装简单快捷,但是每种方式多多少少有些区别懒得记,为什么就不统一呢? 而且安装文件分布位置不是很清楚,管理服务命令还不一样 。想到这里我就要吐🤢🤢🤢🤢🤢🤢。
    纯纯浪费我时间、脑容量。真的很无语! 还好MySQL官方提供了二进制安装包可以在Linux系统下通用。无论是基于Debian的Ubuntu系列还是Redhat系列的CentOS是可以,终于可以只用专注一种安装方式了。
    下面就使用MySQL 二进制安装包方式安装,我的软件目录、数据目录、配置文件目录、日志目录、PID文件目录 ,自己安装的都清楚知道。有一种更能掌握掌控的感觉,更放心!
     亲测 CentOS 8、Ubuntu 20.04、Ubuntu 18.04 OK !

准备工作

切换到root账户

ubuntu系统 执行 sudo -i 切换到root 方便操作

查看系统是否支持glibc2.28

因为安装的版本比较新需要新版glic2.28

redhat、centos系列使用以下命令

strings /lib64/libc.so.6 | grep GLIBC_2.28

有输出版本号证明支持
在这里插入图片描述

debian、ubuntu系列使用以下命令

strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_2.28

若是不支持需要添加 GLIBC_2.28 查看这篇教程安装
在这里插入图片描述

移除旧版本

如果你安装过mysql 为了防止出现奇奇怪怪问题,我们把旧版本卸载删除相关包和残留文件

redhat、centos系列使用yum命令

	# yum 查询已安装的 MySQL 相关包
	rpm -qa | grep -i mysql
	# 卸载 MySQL 相关包
	yum remove mysql-*
	# 卸载完再查询还有无相关包
	rpm -qa | grep -i mysql

debian、ubuntu系列使用apt命令

	# 卸载mysql相关
    apt-get remove --purge mysql-*
    # 清除残留
    apt-get autoremove
    apt-get autoclean

删除相关配置文件和安装目录

   rm -rf /etc/my.cnf
   rm -rf /var/lib/mysql
   rm -rf /etc/mysql

安装mysql依赖

安装mysql所需要的依赖

redhat、centos系列使用yum命令

yum install -y libaio
yum install -y ncurses-compat-libs

debian、ubuntu系列使用apt命令

apt-get install libaio1

下载MySQL

官网下载页面 获取下载链接

注意查看系统架构,地球人都知道查看系统架构命令 uname -m。如果你是arm架构选择arm版本的二进制包
在这里插入图片描述

wget命令下载安装包

# -P 指定下载目录
wget -P /soft https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz

.

开始安装mysql

创建运行mysql的用户和用户组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
解压安装包

解压到 /usr/local/

tar xvf /soft/mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz -C /usr/local/

如果你的tar 命令不支持解压.xz格式 使用下面命令解压

xz -dcv /soft/mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz | tar x -C /usr/local/

解压后目录名太长改成 mysql

mv /usr/local/mysql-8.4.0-linux-glibc2.28-x86_64 /usr/local/mysql
修改权限创建目录

依次执行下面命令

# 创建数据目录,根据自己需求调整
mkdir -p /disk/mysqldata

cd /usr/local/mysql
mkdir mysql-files
mkdir log
touch log/error.log
chmod 750 mysql-files
chown mysql:mysql -R /usr/local/mysql/
chown mysql:mysql /disk/mysqldata
初始化mysql
#--basedir 安装目录  --datadir数据存储目录 可以按需调整
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/disk/mysqldata

查看初始化日志 root账户的初始化密码输出在日志中

#初始化日志输出到 /usr/local/mysql/log/error.log 文件中

#查看该文件
cat /usr/local/mysql/log/error.log

在这里插入图片描述

设置配置文件

配置文件位于 /etc/my.cnf
创建配置文件
vim /etc/my.cnf

文件中写入以下内容(配置文件根据自己需要调整)

[client]
# 指定了客户端与服务器通信的套接字文件路径
socket = /tmp/mysql.sock

[mysqld_safe]
# 错误日志的存放位置。
log_error = /disk/mysqldata/error.log
# 存放服务器进程 ID 的文件
pid_file = /disk/mysqldata/mysqld.pid

[mysql]
socket = /tmp/mysql.sock

[mysqld]
# mysql 的运行用户 这里的用户一定要和初始化时的用户一致
user = mysql
# 指定 MySQL 服务监听的端口为 3306
port = 3306
# 指定 MySQL 的安装目录
basedir = /usr/local/mysql
# 指定数据文件的存储位置。
datadir = /disk/mysqldata
socket  = /tmp/mysql.sock
# 日志目录
log_error = /usr/local/mysql/log/error.log
# 设置SQL 模式
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

启动mysql

初始化后已经自动注册了系统服务 使用 systemctl 命令管理

启动

systemctl start mysqld

如果启动报错使用 journalctl -u mysqld.service 命令查看日志

查看状态

systemctl status mysqld

active (running) 表示运行中
在这里插入图片描述

停止

systemctl stop mysqld

重启

systemctl restart mysqld

设置mysql开机自启

systemctl enable mysqld

若是不能执行 systemctl mysqld 相关命令,有的系统上mysql初始化完会自动创建单元服务配置文件,有的没有。 没有关系小问题。 没有自动创建我们就手动创建

创建单元服务配置文件

sudo sudo vi /lib/systemd/system/mysql.service

填入以下内容

[Unit]
Description=MySQL Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
User=mysql
Group=mysql
TimeoutSec=300
PrivateTmp=true

[Install]
WantedBy=multi-user.target

然后重新加载单元配置

sudo systemctl daemon-reload

现在就可以执行 systemctl start mysqld 相关命令了

修改默认密码

登录mysql

# 回车后输入刚刚日志中的默认密码
/usr/local/mysql/bin/mysql -h 127.0.0.1 -p

若是报错 /usr/local/mysql/bin/mysql: error while loading shared libraries: libncurses.so.6: cannot open shared object file: No such file or directory
需要安装 libncurses6

修改密码

# 执行SQL 修改密码 BY 'root'; 这里就是设置的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

设置root可远程连接,这样我们就可以使用navicat连接数据库了

use mysql;
select host, user from user;
update user set host = '%' where user='root';
flush privileges;

Navicat 连接成功! 若以上都没有问题还是连接不上请检查防火墙、安全组
在这里插入图片描述

完!

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

20000_ZuuuuYao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值