0


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-getinstall 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
chmod750 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初始化完会自动创建单元服务配置文件,有的没有。 没有关系小问题。 没有自动创建我们就手动创建

创建单元服务配置文件

sudosudovi /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=300PrivateTmp=true

[Install]WantedBy=multi-user.target

然后重新加载单元配置

sudo systemctl daemon-reload

现在就可以执行

systemctl start mysqld

相关命令了

修改默认密码

登录mysql

# 回车后输入刚刚日志中的默认密码
/usr/local/mysql/bin/mysql -h127.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'; 这里就是设置的密码ALTERUSER'root'@'localhost' IDENTIFIED BY'root';

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

use mysql;select host,userfromuser;updateuserset host ='%'whereuser='root';
flush privileges;

Navicat 连接成功!

若以上都没有问题还是连接不上请检查防火墙、安全组

在这里插入图片描述

完!

标签: linux mysql 运维

本文转载自: https://blog.csdn.net/weixin_42703501/article/details/139533319
版权归原作者 20000_ZuuuuYao 所有, 如有侵权,请联系我们删除。

“Linux 原生安装最新版MySQL 8.4 不分发行版Linux系统通用”的评论:

还没有评论