Linux(centos)安装 MySQL 8 数据库(图文详细教程)

前言


前几天写了个window系统下安装Mysql的博客,收到很多小伙伴私信需要Linux下安装Mysql的教程,今天这边和大家分享一下,话不多说,看教程。

一、删除以前安装的MySQL服务

一般安装程序第一步都需要清除之前的安装痕迹,要不然可能会有版本,依赖冲突等问题,这里步骤和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版本。

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

复制代码
mkdir /usr/local/mysql/
cd /usr/local/mysql/
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar

解压文件

复制代码
tar -xvf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar

使用rpm 安装

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

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

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

复制代码
rpm -ivh mysql-community-common-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.35-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.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.35-1.el8.x86_64.rpm
rpm -ivh mysql-community-server-8.0.35-1.el8.x86_64.rpm

查看已安装的 MySQL 的版本

复制代码
mysql --version

如果后期业务需要区分大小写的话就配置my.cnf
注意:MySQL 不区分表名、数据库名和数据库模式名的大小写,需要先加lower_case_table_names=1,mysql8.0只能初始化时候配置,后面修改比较麻烦

复制代码
vi /etc/my.cnf

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

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

绿色的active(running)就是启动成功,到这里就是安装完成了。

三、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 'Abu123456.';
4.开放远程访问权限,其他主机可以连接数据库,可以使用navicat等工具进行操作。
复制代码
#选择数据库
use mysql;
#设置 root 用户任意地方可以访问
update user set host='%' where user='root';
#刷新权限
flush privileges;

5.这里就可以使用工具去尝试连接了,连接成功,如果连接失败就去看看防火墙的3306端口是否开放。

相关推荐
西北大程序猿13 分钟前
单例模式与锁(死锁)
linux·开发语言·c++·单例模式
酷爱码34 分钟前
在 Linux 中修改 Apache HTTP Server(httpd)默认端口的完整指南
linux·http·apache
jiunian_cn37 分钟前
【Linux】Linux权限
linux·服务器·mysql
betazhou1 小时前
有没有 MariaDB 5.5.56 对应 MySQL CONNECTION_CONTROL 插件
linux·数据库·mysql·oracle·mariadb
Elohim8151 小时前
数据库SQLite基础
数据库·sqlite
TDengine (老段)1 小时前
TDengine 支持的平台汇总
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
烟雨书信2 小时前
Linux中MySQL的逻辑备份与恢复
linux·运维·mysql
wkj0012 小时前
QuaggaJS 配置参数详解
java·linux·服务器·javascript·quaggajs
大熊猫侯佩2 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(四)
数据库·swiftui·apple watch
藥瓿亭2 小时前
K8S认证|CKS题库+答案| 5.日志审计
linux·运维·docker·云原生·容器·kubernetes·cka