Linux(centos)安装 MySQL 8

一、删除已有MySQL服务

1.卸载Mysql
安装软件删除

查看之前是否安装过Mysql

复制代码
[root@localhost ~]# rpm -qa |grep -i mysql
mysql80-community-release-el8-1.noarch
mysql-community-server-8.0.27-1.el8.x86_64
mysql-community-client-plugins-8.0.27-1.el8.x86_64
mysql-community-libs-8.0.27-1.el8.x86_64
mysql-community-client-8.0.27-1.el8.x86_64
bt-mysql57-5.7.34-1.el8.x86_64
mysql-community-common-8.0.27-1.el8.x86_64
[root@iZuf65saybbvavxkh38cdiZ mysql]# 

yum remove 将以上内容删除

复制代码
yum remove mysql80-community-release-el8-1.noarch
yum remove mysql-community-server-8.0.27-1.el8.x86_64
yum remove mysql-community-client-plugins-8.0.27-1.el8.x86_64
yum remove mysql-community-libs-8.0.27-1.el8.x86_64
yum remove mysql-community-client-8.0.27-1.el8.x86_64
yum remove bt-mysql57-5.7.34-1.el8.x86_64
yum remove mysql-community-common-8.0.27-1.el8.x86_64

检查是否卸载干净

复制代码
rpm -qa |grep -i mysql
删除历史数据

查找mysql相关目录

复制代码
[root@localhost ~]# find / -name mysql
find: '/proc/29250/task/29250/net': Invalid argument
find: '/proc/29250/net': Invalid argument
/etc/logrotate.d/mysql
/var/lib/selinux/targeted/active/modules/100/mysql
/var/lib/selinux/targeted/tmp/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/share/selinux/targeted/default/active/modules/100/mysql

对这些目录进行删除

复制代码
rm -rf /etc/logrotate.d/mysql
rm -rf /var/lib/selinux/targeted/active/modules/100/mysql
rm -rf /var/lib/selinux/targeted/tmp/modules/100/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /usr/bin/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/share/selinux/targeted/default/active/modules/100/mysql

删除/etc/my.cnf 文件

复制代码
rm -rf /etc/my.cnf

删除 /var/log/mysql/mysqld.log文件

复制代码
rm -rf /var/log/mysql/mysqld.log
2.卸载mariadb

查看是否有安装 mariadb,该软件与 MySQL 数据库有冲突,需要卸载

复制代码
# 如果是 CentOS7 可以检测出已经安装了 mariadb
rpm -qa | grep mariadb

删除mariadb相关

复制代码
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

二、下载、安装MysQL

下载网址:Mysql官网下载地址 也可以自己去官网找

选择对应版本,这里进去默认是最新的版本,如果想要下载历史版本,点击旁边的Archives里面查找,下载RPM Bundle 版本。

下载完成后使用工具传输到自己安装的路径下,或者直接使用wget命令进行下载。

复制代码
mkdir /usr/local/mysql/
cd /usr/local/mysql/
wget wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.42-1.el7.x86_64.rpm-bundle.tar

解压文件

复制代码
tar -xvf MySQL-8.0/mysql-8.0.42-1.el7.x86_64.rpm-bundle.tar

使用rpm 安装

必须按照顺序执行命令,否则会出现依赖错误的报错

复制代码
rpm -ivh mysql-community-common-8.0.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.42-1.el7.x86_64.rpm

如果是20版本以上的话按照这个顺序来执行

复制代码
rpm -ivh mysql-community-common-8.0.42-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.42-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.0.42-1.el8.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.42-1.el8.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.42-1.el8.x86_64.rpm
rpm -ivh mysql-community-server-8.0.42-1.el8.x86_64.rpm

查看已安装的 MySQL 的版本

复制代码
mysql --version

如果后期业务需要区分大小写的话就配置my.cnf()

复制代码
MySQL 8.0在Linux系统中默认会检查以下路径的配置文件(按优先级从高到低):
    /etc/my.cnf
    /etc/mysql/my.cnf
    ~/.my.cnf(用户级配置)
    可通过命令mysql --help | grep "Default options"查看完整加载顺序‌12。

sudo vim /etc/mysql/my.cnf

具体内容

复制代码
[mysqld] 
datadir=/data/mysql/80   #数据库文件存储路径‌
socket=/data/mysql/80/mysql.sock # 指定Socket文件路径
character-set-server=utf8mb4  # 定义 MySQL 服务实例的默认字符集
lower_case_table_names=1  # 表名大小写不敏感(需初始化前设置)‌:ml-citation{ref="3,4" data="citationList"}

log-error=/var/log/mysqld.log  # 日志存储路径
pid-file=/var/run/mysqld/mysqld.pid  # PID 记录


[client]
socket=/data/mysql/80/mysql.sock

Mysql的常用命令,这里进行启动。

复制代码
#开机自启
systemctl enable mysqld
#启动
systemctl start mysqld
#查看状态
systemctl status mysqld
#重启
systemctl restart mysqld
#关闭
systemctl stop mysqld
#关闭开机自启
systemctl disable mysqld

三、Mysql的使用

1.获取 root 用户的初始密码
复制代码
cat /var/log/mysqld.log | grep root@localhost
2.使用 root 用户登录到 MySQL 服务
复制代码
mysql -u root -p
3.修改 root 的初始化密码(这里由于数据库默认有个密码强度策略,所以需要有大小写和特殊字符,后面可以修改密码策略)
复制代码
alter user root@localhost identified by 'Aa123456.';
4.开放远程访问权限,其他主机可以连接数据库,可以使用navicat等工具进行操作。
复制代码
#选择数据库
use mysql;
#设置 root 用户任意地方可以访问
update user set host='%' where user='root';
#刷新权限
flush privileges;
相关推荐
Coder个人博客19 小时前
Linux6.19-ARM64 mm mmu子模块深入分析
大数据·linux·车载系统·系统架构·系统安全·鸿蒙系统
剩下了什么21 小时前
MySQL JSON_SET() 函数
数据库·mysql·json
java搬砖工-苤-初心不变1 天前
MySQL 主从复制配置完全指南:从原理到实践
数据库·mysql
Doro再努力1 天前
Vim 快速上手实操手册:从入门到生产环境实战
linux·编辑器·vim
wypywyp1 天前
8. ubuntu 虚拟机 linux 服务器 TCP/IP 概念辨析
linux·服务器·ubuntu
Doro再努力1 天前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene1 天前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
忧郁的橙子.1 天前
02-本地部署Ollama、Python
linux·运维·服务器
醇氧1 天前
【linux】查看发行版信息
linux·运维·服务器
No8g攻城狮1 天前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu