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;
相关推荐
不太可爱的叶某人1 小时前
【学习笔记】MySQL技术内幕InnoDB存储引擎——第5章 索引与算法
笔记·学习·mysql
量子联盟3 小时前
原创-基于 PHP 和 MySQL 的证书管理系统,免费开源
开发语言·mysql·php
飞翔的佩奇4 小时前
Java项目:基于SSM框架实现的旅游协会管理系统【ssm+B/S架构+源码+数据库+毕业论文】
java·数据库·mysql·毕业设计·ssm·旅游·jsp
Two_brushes.4 小时前
【linux 网络】网络基础
linux·网络
Code Warrior4 小时前
【Linux】基础开发工具(3)
linux·服务器
guygg885 小时前
ubuntu手动编译VTK9.3 Generating qmltypes file 失败
linux·运维·ubuntu
JeffersonZU5 小时前
Linux/Unix 套接字Socket编程(socket基本概念,流程,流式/数据报socket,Unix domain socket示例)
linux·c语言·tcp/ip·udp·unix·gnu
Two_brushes.6 小时前
【linux网络】网络编程全流程详解:从套接字基础到 UDP/TCP 通信实战
linux·开发语言·网络·tcp/udp
夕泠爱吃糖6 小时前
Linux中的静态库和动态库
linux·运维·服务器