任务7:安装MySQL数据库

news2024/11/18 0:45:33

任务描述

知识点

  • MySQL数据库安装与使用

重  点

  • 基于CentOS系统,安装MySQL数据库

内  容

  • 安装MySQL数据库
  • 修改root用户密码

任务指导

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

安装MySQL数据库,需要以下几步:

  1. 关闭防火墙;
  2. 关闭selinux;
  3. 配置ntp服务;
  4. 主机同步中心时间可以使用阿里云时钟服务;
  5. 卸载老版本的MySQL;
  6. 离线安装MySQL;
  7. 配置MySQL(启动MySql并查看启动状态、修改字符集等);
  8. 重启MySQL;
  9. 首次登录并修改密码。

任务实现

1. 卸载老版本的MySQL(在master节点上执行以下操作)

  • 首先执行命令【# rpm -qa|grep mariadb 】查看是否有mariadb的安装包,没有可以无视;

  • 接下来,执行【# rpm -e --nodeps mariadb-libs】删除它。

  • 删除原有安装:先删除服务器上相关的依赖,否则安装会冲突。如果没有相关依赖,可以忽视,如果存在,则需要进行删除。
# rpm -qa |grep mysql
# rpm -qa |grep MySQL
# rpm -qa |grep mariadb

2. 离线安装MySQL

实验所需安装包均放入/home/software/mysql目录下,如没有请手动下载RPM安装包。

在https://dev.mysql.com/downloads/mysql/选择为Red Hat Enterprise Linux 7 / Oracle Linux 7 ,把os的版本选择为all。 直接下载mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar,所有的rpm包都在里面,然后rpm命令安装。

  • 解压压缩包:
# cd /home/software/mysql
# tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

解压后如图所示:

  • 使用rpm命令安装MySQL(一条命令即可解决)
# rpm -ivh mysql-community-* --nodeps --force

或逐个安装:

rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-devel-5.7.28-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-embedded-5.7.28-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-embedded-compat-5.7.28-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-embedded-devel-5.7.28-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-test-5.7.28-1.el7.x86_64.rpm --nodeps --force
  • 启动MySql并查看启动状态
# systemctl start mysqld 
# systemctl status mysqld
  • 修改字符集

当我们在mysql数据中存储中文数据或查询中文数据时,有时可能会显示乱码状态,此情况为mysql数据库中的编码格式的问题,为保证mysql数据库中存储的中文数据显示正常,需要通过修改my.cnf文件,将字符集改为UTF-8,命令如下;

通过修改my.cnf文件,将字符集改为UTF-8,命令如下;

# vim /etc/my.cnf 

在my.cnf文件的【mysqld】部分添加以下内容;

character-set-server=utf8

在文件末尾新增【client】段,并在【client】段添加以下内容;

[client]
default-character-set=utf8

修改好之后,重启mysqld服务,命令如下;

# systemctl restart mysqld 

3. 登录MySQL

注意:首次登录需要从/var/log/mysqld.log中查看root密码:

# grep "temporary password" /var/log/mysqld.log

使用查询到的密码登录MySQL。

# mysql  -uroot  -p   
密码:输入查询到的密码

首次登录后,要求必需立刻修改密码,通过show variables命令,查看密码策略,效果如下所示;

mysql> show variables like 'validate_password%';

如出现:You must reset your password using ALTER USER statement before executing this statement

提示我们首次登录需要立即修改密码,修改密码后即可查看!

11.png

参数解释:

validate_password_dictionary_file 指定密码验证的文件路径;

validate_password_length  密码最小长度;

validate_password_mixed_case_count  密码至少要包含的小写字母个数和大写字母个数;

validate_password_number_count  密码至少要包含的数字个数;

validate_password_policy 密码强度检查等级:0/LOW、1/MEDIUM、2/STRONG,默认为1       注意:   0/LOW:只检查长度;                    1/MEDIUM:检查长度、数字、大小写、特殊字符;                    2/STRONG:检查长度、数字、大小写、特殊字符字典文件。

validate_password_special_char_count密码至少要包含的特殊字符数

修改密码策略,命令如下:

mysql> set global validate_password_length=4;
mysql> set global validate_password_mixed_case_count=0;
mysql> set global validate_password_number_count=0;
mysql> set global validate_password_special_char_count=0;
mysql> set global validate_password_policy=0;

使用set password命令,修改root密码,效果如下所示;

mysql> set password for 'root'@'localhost'=password('root');
mysql> FLUSH PRIVILEGES;

设置开机启动,命令如下:

# systemctl enable mysqld 
# systemctl daemon-reload

4. 解决MySQL重启后无法创建“/var/run/mysqld/mysqld.pid”的问题

  • 问题描述:

CentOS 7.9机器重启后如果MySQL启动失败,出现以下错误:

[ERROR] /usr/sbin/mysqld: Can’t create/write to file ‘/var/run/mysqld/mysqld.pid’ (Errcode: 2 - No such file or directory)

  • 原因分析:

/var/run目录指向/run目录,而/run是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。可想而知,CentOS重启后,/var/run/mysqld目录也将消失,而mysql5.x的启动脚本中未自动创建该目录,所以会提示该错误!

  • 解决办法:

修改启动脚本,启动时若找不到/var/run/mysqld目录,则自动创建。(推荐)

# vim /etc/init.d/mysqld

修改以下两部分内容

第1部分:

mypiddir="/var/run/mysqld"
get_mysql_option mysqld_safe pid-file "$mypiddir/mysqld.pid"

第2部分:

        if [ ! -e "$mypiddir" -a ! -h "$mypiddir" ]
        then
                mkdir -p "$mypiddir" || exit 1
        fi
        chown -R mysql:mysql "$mypiddir"

修改后重启MySQL即可

# systemctl daemon-reload
# systemctl restart mysqld

Q&A:可能遇到的问题及解决方案

任务描述

知识点

  • Hadoop集群问题及解决方案

重  点

  • DataNode无法启动的解决方案

内  容

  • 启动\停止所有服务
  • 重新格式化集群
  • 检查配置是否有误

任务指导

Hadoop集群搭建过程中,可能遇到的问题,以及如何解决。

  • 暂停所有服务;
  • 删除相关目录;
  • 重新格式化;
  • 启动Hadoop集群。

任务实现

1. 如果发生DataNode无法启动的情况,可以通过以下几步进行解决:

  • 先执行【stop-all.sh】暂停所有服务;
  • 将所有Salve节点上的tmp(即hdfs-site.xml 中指定的dfs.data.dir文件夹,DataNode存放数据块的位置)、logs文件夹删除,然后重新建立tmp、logs文件夹;
  • 重新格式化【hadoop namenode –format】;
  • 启动【start-all.sh】。

2. 集群启动过程遇到的问题,基本上从以下几个方面解决问题:

  • 检查各个XML文件是否配置正确;
  • Java环境变量配置是否正确;
  • SSH是否无密码互通;
  • Hadoop离开安全模式【# hadoop  dfsadmin  -safemode  leave】;
  • 重新格式化NameNode节点,并重启。

上一个任务下一个任务

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

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

相关文章

gcd得最大公约数,辗转相除法理解

欧几里得算法_百度百科 (baidu.com) —————— 百度百科证法一的一些便于理解的细节: 我们求 a 和 b 的最大公约数。 (如果a是b的倍数,那么b就是最大公约数。) a>b,a可以表示为 a kb r 设d为a和b的最大公约…

一二三应用开发平台文件处理设计与实现系列之5——MinIO技术预研

背景 上篇介绍了文件读写框架设计与实现,同时顺便说明了本地磁盘存储模式的实现模式。 今天来说下基于文件读写框架,如何集成对象存储组件minio,集成之前,需要对minio进行必要的了解,本篇是minio的技术预研。 minio简…

pip查看某个包存在的历史版本

简介:当我们想查看某个包有哪些可安装版本,但是又不想去官网查询,如何用pip命令查询出全部历史版本? 历史版本: Python:pip升级超时解决方案 Python:指定的Python版本pip Python&#xff1a…

把模板作为元函数参数传递。

C模板元编程是一种典型的函数式编程,函数在整个编程体系中处于核心的地位。 这里的函数与一般C程序中定义的函数有所区别,其更接近数学意义上的函 数——是无副作用的映射或变换:在输入相同的前提下,多次调用同一个函数&…

mac vscode latex实用

网上有教程怎么在vscode里安装macTex以及插件,然后就可以在latex里写代码了,这里需要修改的是对应的json文件,输入command P,可以看到最近打开的json设置文件,结果如下 然后设置这个json文件,我的json文件设置如下 …

个人网站制作 Part 5 优化网站性能(图片压缩、代码优化) | Web开发项目

文章目录 👩‍💻 基础Web开发练手项目系列:个人网站制作🚀 优化网站性能🔨图片优化🔧步骤 1: 使用压缩工具 🔨代码优化🔧步骤 2: 压缩CSS和JavaScript🔧步骤 3: 合并文件…

js(JavaScript)数据结构之堆(Heap)

什么是数据结构? 下面是维基百科的解释: 数据结构是计算机存储、组织数据的方式。数据结构意味着接口或封装:一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问方法封装。 我们每天的编码中都会…

聊聊websocket那些事

前端必备工具推荐网站(免费图床、API和ChatAI等实用工具): http://luckycola.com.cn/ 一、什么是websocket? WebSocket 是一种在单个 TCP 连接上进行全双工通信的网络协议。 它是 HTML5 中的一种新特性,能够实现 Web 应用程序和服务器之间的实时通信,…

事件分析应急响应-Server2229(环境+解析)

任务环境说明: 服务器场景:Server2229(开放链接)用户名:root,密码:

1116: 删除元素(数组)

题目描述 输入一个递增有序的整型数组A有n个元素,删除下标为i的元素,使其仍保持连续有序。注意,有效下标从0开始。 定义如下两个函数分别实现删除元素操作和数组输出操作。 void del(int a[], int n, int i); /*删除数组a中下标为i的元素*…

鸿蒙Harmony-相对布局(RelativeContainer)详解

成年人的世界,从来没有容易二字,想要什么,就得凭自己的努力去拿,遇到事情就得自己生生的硬抗,希望你即使再辛苦,但还是会选择这滚烫的人生,加油陌生的朋友们 目录 一,定义 二&#x…

三菱FX系列PLC定长切割控制(线缆裁切)

三菱PLC绝对定位指令DDRVA实现往复运动控制详细介绍请查看下面文章链接: https://rxxw-control.blog.csdn.net/article/details/135570157https://rxxw-control.blog.csdn.net/article/details/135570157这篇博客我们介绍线缆行业的定长切割控制相关算法。 1、输送…

分布式限流的主流方案

本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。 常见的分布式限流方案 前面我们了解了什么是分布式…

30 3D导航栏

效果演示 实现了一个导航栏&#xff0c;其中包含了五个图标&#xff0c;每个图标都有一个悬浮的文字标签&#xff0c;当鼠标悬停在图标上时&#xff0c;文字标签会旋转并向上移动&#xff0c;同时底部会出现一个阴影效果。整个导航栏的背景颜色为浅灰色。 Code <ul><…

【Java】IDEA中的JFormDesigner使用教程

目录 1 安装 JFormDesigner 插件2 JFormDesigner 使用教程2.1 新建JFormDesigner Form时的选项2.2 JFormDesigner Form界面布局2.3 JFormDesigner 常用组件 JFormDesigner 是一款用于设计和创建图形用户界面&#xff08;GUI&#xff09;的插件&#xff0c;它允许开发者使用可视…

DAY8--learning english

一、积累 1.haunt Why Ghost dont haunt chinese. 为什么鬼不会出现在中国人旁边? 2.confess i have a confession to make ... I actally a blind. 我要坦白一件事……我其实是个盲人。 3.brake Press S button to brake, or to reverse if the vehicle has stopped, 按住…

python 列表的高级应用

当前版本&#xff1a; Python 3.8.4 简介 列表&#xff08;list&#xff09;是Python编程语言中的基本数据类型之一&#xff0c;也是一个非常重要的通用序列。在其它编程语言中&#xff0c;它们通常被称为“数组”。可以存储多个元素&#xff0c;包括数字、字符串、甚至其他列…

【纯CSS特效源码】(二)精美的立体字

1.漂浮感立体 关键处&#xff1a; text-shadow:2px -2px white, -6px 6px gray;给字体添加了两层shadow&#xff0c;右上角白色提亮&#xff0c;左下角灰色阴影。 参数解释&#xff1a;例子中2px -2px white&#xff0c;代表右上角白色 第一个参数2px&#xff1a;正数表示从左…

CSS 实现三角形的技巧

目录 1、使用 border 绘制三角形 2、使用 linear-gradient 绘制三角形 3、使用 conic-gradient 绘制三角形 4、transform: rotate 配合 overflow: hidden 绘制三角形 5、使用 clip-path 绘制三角形 6、利用字符绘制三角形 1、使用 border 绘制三角形 使用 border 实现三角…

pinia的理解

Vue组件通讯类型 组件通讯的基本概念 以及pinia和vuex之间的一些差异 父子&#xff0c;子父&#xff0c;祖孙跨层级&#xff0c;非父子任意组件之间的通讯&#xff0c;对此进行一些介绍。 而无论是vuex还是pinia都是属于非父子组件之间任意通讯的一种状态管理模式&#xff0…