【MySQL】Linux安装MySQL

一、center OS环境准备

为了在Linux系统中查看MySQL5.8与8.0版本的区别
我们要准备两个虚拟机,需要的软件:VMware和CentOS7

因为博主之前在学习redis的时候已经安装过一个虚拟机了,所以我就直接克隆了一个CentOS2.0
在这里插入图片描述
修改mac地址,点击克隆出来的虚拟机,选择管理,选择网络适配器,然后选择高级,在mac地址那里点击一下生成就可以了
在这里插入图片描述

修改主机名称:进入虚拟机,修改hostname然后重启

[root@myLinux2 ~]# vim /etc/hostname
myLinux2.0
[root@myLinux2 ~]# reboot

修改网络配置,包括修改IP地址,修改UUID

[root@myLinux2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" # 由dhcp改为static,将动态分配ip地址改为静态ip
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="ef554f10-4835-4ec8-8af5-d2391c417d9e"  # 修改UUID,避免克隆主机和原主机网卡UUID重复,对网络通信产生影响
DEVICE="ens33"
ONBOOT="yes"
#IP_ADDRESS
IPADDR="192.168.153.180" # 静态IP地址
NETMASK="255.255.255.0"  # 虚拟机和宿主机的子网掩码都是255.255.255.0
GATEWAY="192.168.1.2" # 网关,随便填的,后面可能会改
DNS1="192.168.1.2" # DNS服务器,随便填的,后面可能会改

使用:wq!保存后,执行Systemctl restart network重启网卡

注意:IPADDR有网段要求,我们打开Windows宿主机的cmd窗口,输入ipcongif查看网络配置
查看以太网适配器 VMware Network Adapter VMnet8:下面的IPV4地址,发现他是192.168.153网段的
所以虚拟机的静态IP也要在这个网段

这样一来,环境准备就算完成了

二、软件安装

1、首先,放一个MySQL官网地址在这:https://downloads.mysql.com/archives/
然后我们依次下载5.7版本和8.0版本的,注意要下载免费的MySQL Community Server社区版本

在这里插入图片描述

在这里插入图片描述
解压后,我们使用MobaXterm终端工具将解压后的文件上传到虚拟机
MySQL5.7
在这里插入图片描述
MySQL8.0
在这里插入图片描述

2、相关检查与依赖安装

  • 因为MySQL要在/tmp下创建tmp_db工具,所以要给/tmp文件比较大的权限
    chmod -R 777 /tmp
  • 检查依赖
    rpm -qa|grep libaio
    rpm -qa|grep net-tools
    在这里插入图片描述
  • 接下来,我们按照顺序进行安装,如果执行遇到这个报错
rpm -ivh mysql-community-libs-8.0.36-1.el7.x86_64.rpm
warning: mysql-community-libs-8.0.36-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID a8d3785c: NOKEY
error: Failed dependencies:mariadb-libs is obsoleted by mysql-community-libs-8.0.36-1.el7.x86_64

那就需要使用命令yum remove mysql-libs清除相关依赖

MySQL8.0

rpm -ivh mysql-community-common-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.36-1.el7.x86_64.rpm

MySQL5.7

rpm -ivh mysql-community-common-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.44-1.el7.x86_64.rpm

安装完成之后
在这里插入图片描述
在这里插入图片描述

3、服务初始化

# 初始化,保证数据库目录与文件的所有者为mysql登录用户
[root@myLinux2 mysql-8.0]# mysqld --initialize --user=mysql
# 查看MySQL相关信息,包括为root用户创建的临时密码
[root@myLinux2 mysql-8.0]# cat /var/log/mysqld.log

查看MySQL是否启动,如果是dead状态,用命令启动

[root@myLinux2 mysql-8.0]# systemctl status mysqld
● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: inactive (dead)Docs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.html
[root@myLinux2 mysql-8.0]#
[root@myLinux2 mysql-8.0]#
[root@myLinux2 mysql-8.0]# systemctl start mysqld

使用systemctl list-unit-files|grep mysqld.service查看进程是否为自启动
如果输出的信息不是enabled,那么使用systemctl enable mysqld.service将其设置成自启动,如果不希望自启动就使用systemctl disable mysqld.service

[root@myLinux2 mysql-8.0]# systemctl list-unit-files|grep mysqld.service
mysqld.service                                enabled

4、登录MySQL,需要重置root密码,重新登录才能进行操作

[root@myLinux2 mysql-8.0]# mysql -uroot -p
Enter password: #输入之前/var/log/mysqld.log中展示的密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
...
mysql>
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
# 修改root用户密码
mysql> alter user 'root'@'localhost' identified by '你的密码';
Query OK, 0 rows affected (0.00 sec)mysql> quit;
Bye
[root@myLinux2 mysql-8.0]#

5、实现远程连接

  • 测试网络是否可用
    首先确保我们telnet功能是打开的
    在这里插入图片描述
    使用ping和telnet测试之后,发现3306端口无法访问
    在这里插入图片描述

  • 放通防火墙指定端口

# 查看当前哪些端口是放通的
[root@myLinux1 ~]# firewall-cmd --list-all
# 把3306端口放通
[root@myLinux1 ~]# firewall-cmd --add-port=3306/tcp --permanent
success
# 重启防火墙
[root@myLinux1 ~]# firewall-cmd --reload
success
# 查看3306端口是否放通
[root@myLinux1 ~]#  firewall-cmd --query-port=3306/tcp
yes

在这里插入图片描述

  • 依次执行如下SQL语句,修改MySQL中root的host字段,一定要执行flush privileges;
show databases;
use mysql;
select host,user from user;
update user set host='%' where user = 'root';
flush privileges;
exit

然后使用systemctl restart mysqld重启MySQL服务,然后我们就可以连接成功了
在这里插入图片描述
但是MySQL8.0按照上面的步骤操作之后,会有一个报错,原因是是mysql登录验证的默认插件变更了,从mysql_native_password变为caching_sha2_password
在这里插入图片描述

为了解决这个问题,我们需要使用如下sql

use mysql;
alter user 'root'@'%' identified with mysql_native_password BY '你的密码';
flush privileges;

链接成功
在这里插入图片描述

三、卸载MySQL

因为前面博主改错了user表中的host,导致不管是从虚拟机还是从navicat都登不上MySQL8.0
所以只能重新安装

# 关闭MySQL服务
[root@myLinux2 ~]# systemctl status mysqld
# 查看MySQL安装状况
[root@myLinux2 ~]# rpm -qa|grep -i mysql
mysql-community-common-8.0.36-1.el7.x86_64
mysql-community-icu-data-files-8.0.36-1.el7.x86_64
mysql-community-client-plugins-8.0.36-1.el7.x86_64
mysql-community-client-8.0.36-1.el7.x86_64
mysql-community-server-8.0.36-1.el7.x86_64
mysql-community-libs-8.0.36-1.el7.x86_64
# 卸载已安装程序
[root@myLinux2 ~]# yum remove mysql-community-common-8.0.36-1.el7.x86_64
[root@myLinux2 ~]# yum remove mysql-community-icu-data-files-8.0.36-1.el7.x86_64
[root@myLinux2 ~]# yum remove mysql-community-client-plugins-8.0.36-1.el7.x86_64
# 删除MySQL相关文件
[root@myLinux2 ~]# find / -name mysql
/etc/selinux/targeted/active/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
[root@myLinux2 ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql
[root@myLinux2 ~]# rm -rf /var/lib/mysql
[root@myLinux2 ~]# rm -rf /usr/lib64/mysql
# 删除my.cnf(如果存在的话)
[root@myLinux2 ~]# find / -name my.cnf
[root@myLinux2 ~]#

这样就算卸载完成啦

如有错误,欢迎指正!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/20761.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32作业实现(二)串口控制led

目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…

深入理解Java中的List集合:解析实例、优化技巧与最佳实践

一:List 集合的基础 1.1 什么是 List 集合? List 集合是 Java 集合框架中的一种有序、可重复的数据结构,它继承自Collection 接口,允许存储多个元素。 与数组不同,List 集合的大小是动态可变的,可以根据…

通过指针变量访问整型变量

有两个与指针变量有关的运算符: (1)&:取地址运算符。 (2)*:指针运算符(或称间接访问运算符)。 例如:&a为变量a的地址,*p为指针变量p所指向的存储单元。 编写程序: 运行结果…

【面试经典150题】移除元素

目录 一.移除元素 一.移除元素 这题的思路非常清晰&#xff0c;可以使用迭代器遍历找到需要删除的元素使用erase删除即可&#xff1a; #include<iostream> #include<vector>using namespace std;class Solution { public:int removeElement(vector<int>&…

设计模式(六)结构型模式---桥接模式

文章目录 桥接模式简介结构优点UML图具体实现UML图代码实现 桥接模式简介 桥接模式是一种将抽象与实现分离&#xff0c;使它们独立变化。然后利用组合关系来代替继承关系&#xff0c;大大的降低了抽象和实现的耦合度的设计模式。实际使用&#xff1a; JDBC源码分析&#xff0c…

Xcode下载安装

1.Xcode可用版本判断&#xff1a; 2.Xcode下载安装&#xff1a; 方案1:AppStore 下载更新 若方案1失败则 方案2:指定版本Xcode包下载解压安装 苹果下载 3.Xcode命令行工具插件安装 xcode-select --install 备注&#xff1a; xcode_x.x.x.xip(压缩包存在时效性(使用前24h/…

Mac专用投屏工具:AirServer 7 for Mac 激活版下载

AirServer 7 是一款在 Windows 和 macOS 平台上运行的强大的屏幕镜像和屏幕录制软件。它能够将 iOS 设备、Mac 以及其他 AirPlay、Google Cast 和 Miracast 兼容设备的屏幕镜像到电脑上&#xff0c;并支持高质量的录制功能。总的来说&#xff0c;AirServer 7 是一款功能全面的屏…

Mybatis编写SQL

文章目录 一、用注解编写1.1 增普通增加获取自增ID 1.2 删和改1.3 查单表查询多表查询 二、用xml编写2.1 使用xml的流程2.2 增普通增加获取自增ID 2.3 删 和 改2.4 查 三、#{} 和 ${}3.1 #{} 、${}3.1 预编译 SQL 、即时编译SQL 两种写法是可以同时存在的 一、用注解编写 1.1 …

mediasoup基础概览

提示&#xff1a;本文为之前mediasoup基础介绍的优化 mediasoup基础概览 架构&#xff1a;2.特性&#xff1a;优点缺点 3.mediasoup常见类介绍js部分c 4.mediasoup类图5.业务类图 Mediasoup 是一个构建在现代 Web 技术之上的实时通信&#xff08;RTC&#xff09;解决方案&#…

快速排序详讲(两种方法)

目录 原理 实现方式 正常实现 理由 先从右到左&#xff0c;在从左到右 先从左到右&#xff0c;先从右到左 挖坑法 效率 优化 测试 代码 原理 快速排序是将最左侧的数字当作关键数字&#xff0c;将关键数字放在对应位置&#xff0c;且关键数字左侧均大于它&#xff…

模拟集成电路(6)----单级放大器(共源共栅级 Cascode Stage)

模拟集成电路(6)----单级放大器&#xff08;共源共栅级 Cascode Stage&#xff09; 大信号分析 对M1 V x ≥ V i n − V T H 1 V x V B − V G S 2 V B ≥ V i n − V T H 1 V G S 2 V_{x}\geq V_{in}-V_{TH1}\quad V_{x}V_{B}-V_{GS2}\\V_{B}\geq V_{in}-V_{TH1}V_{GS2} Vx…

每日一题《leetcode-- LCR 025.两数相加||》

https://leetcode.cn/problems/lMSNwu/ 分别把给定的两个链表翻转&#xff0c;然后从头开始相加。 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ //反转链表 struct ListNode* reverselist(struct ListNode*h…

进程——linux

目录 冯诺依曼体系结构&#xff08;计算机组成原理与体系结构&#xff09; 关于冯诺依曼&#xff0c;必须强调几点&#xff1a; 操作系统(Operator System) 概念 设计OS的目的 定位 如何理解 "管理" 总结 系统调用和库函数概念 承上启下 一、进程 基本概念…

盒模型及其应用(溢出、外边距塌陷)

一、盒模型 盒模型详解-CSDN博客 CSS学习笔记3&#xff1a;CSS三大特性、盒子模型-CSDN博客 1.盒模型组成 &#xff08;1&#xff09;padding padding和border都会撑大盒子&#xff0c;margin不会. 如果没有指定盒子的width/height&#xff0c;那么padding不会撑大盒子。 &am…

详解动态库和静态库

文章目录 前言静态库静态库制作静态库的生成发布静态库使用静态库安装静态库卸载静态库 动态库动态库的制作动态库的生成动态库的发布使用动态库 动态库VS静态库 前言 在C、C中我们使用过标准库&#xff0c;比如在使用strerror、vector、string等时&#xff0c;都只是调用了这…

【对算法期中卷子的解析和反思】

一、程序阅读并回答问题&#xff08;共30分&#xff09; #include<cstdio>#include<cstring>#include<iostream>using namespace std;char chess[10][10];int sign[10];int n, k, ans;void dfs(int x, int k) { if (k 0){ans;return; } if (xk-1 >…

智能学工系统实现学生管理

人才培养是高校的榜首要务&#xff0c;高校在抓好学生教育作业的一起&#xff0c;更多的是要加强对学生的办理作业。作为在校大学生健康成长的指导者和引路人&#xff0c;面临很多的学生办理作业内容杂乱&#xff0c;事无巨细&#xff0c;但在传统的办理方式下&#xff0c;尽管…

Java集合:数据存储与操作的瑞士军刀

Java集合概述 集合是用来存储多个元素的容器。文章从四个方面来概述下集合&#xff0c;让读者对集合有一个大致的了解。 一、 多样化的容器 Java 集合大致包含 2 大体系 Collection体系 List&#xff1a;存储有序、重复的元素 Set&#xff1a;存储无序、不可重复的元素…

摸鱼大数据——Hive函数7-9

7、日期时间函数 Hive函数链接&#xff1a;LanguageManual UDF - Apache Hive - Apache Software Foundation SimpleDateFormat (Java Platform SE 8 ) current_timestamp: 获取时间原点到现在的秒/毫秒,底层自动转换方便查看的日期格式 常用 to_date: 字符串格式时间…

【Self-Attention——Transform—Bert】相关的基础理论

1.Self-Attention模型图解 传统的循环神经网络&#xff0c;如上左图1&#xff0c;并不能解决并行化的问题&#xff0c;右图就是一个self-Attention可以实现并行化&#xff0c;并且能解决对于所有信息的读取利用。 将self—Attention替换相应的GRU或者RNN&#xff0c;就能实现从…