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;
相关推荐
..过云雨13 小时前
03.【Linux系统编程】基础开发工具1(yum软件安装、vim编辑器、编辑器gcc/g++)
linux·c语言·笔记·学习
青草地溪水旁13 小时前
Linux 高性能 I/O 事件通知机制的核心系统调用—— `epoll_ctl`
linux·c语言·c++
不会c嘎嘎13 小时前
Linux -- 基于TCP服务器实现一个简单的电商网站
linux·服务器·tcp/ip
程序leo源13 小时前
Linux_基础指令(二)
android·linux·运维·服务器·青少年编程
江团1io014 小时前
深入解析MVCC:多版本并发控制的原理与实现
java·经验分享·mysql
君宝14 小时前
Linux ALSA架构:PCM_OPEN流程 (二)
java·linux·c++
-Xie-14 小时前
Mysql杂志(十四)——Mysql逻辑架构
数据库·mysql·架构
葵花日记14 小时前
LINUX--编译器gcc/g++
linux·运维·服务器
csdn_aspnet15 小时前
Linux Node.js 安装及环境配置详细教程
linux·node.js
PAQQ15 小时前
解决 ubuntu 重启串口号变化
linux·运维·ubuntu