【超详细】CentOS 7安装MySQL 5.7【安装及密码配置、字符集配置、远程连接配置】

准备工作:CentOS 7系统,并确保可以联通网络

1、获取MySQL 5.7 Community Repository软件包

注意:这里使用的是root用户身份。

wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

在这里插入图片描述

2、安装软件包

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

在这里插入图片描述

3、安装MySQL服务

cd /etc/yum.repos.d

这里先切换到yum软件仓库配置文件的目录,接下来使用yum包管理器安装MySQL服务,命令如下:

yum -y install mysql-server

在这里插入图片描述

这里因为软件包比较大,可能需要一点时间。

到这里,如果安装的时候出现公钥尚未安装的问题,请不要着急,根据下面的步骤来解决问题。如果没有问题的话则直接进行步骤4。

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

在这里插入图片描述

首先,执行上面的命令;该命令的作用是导入MySQL软件仓库的GPG公钥。
在软件仓库中使用GPG公钥可以确保软件包的完整性和认证,以防止未经授权的修改或潜在的风险。

紧接着,重新执行一下安装服务的命令。

yum -y install mysql-server

在这里插入图片描述

4、操作MySQL服务

如果你没有出现公钥尚未安装的问题,就正常继续往下。

首先,启动MySQL服务,并设置开机自动启动。

# 启动服务
systemctl start mysqld
# 查看状态
systemctl status mysqld
# 设置开机自动启动
systemctl enable mysqld

如果启动状态如下,则说明MySQL服务已经正常运行了。
在这里插入图片描述

5、查看进程

ps -ef | grep mysql

在这里插入图片描述

6、登录及密码配置

(1)、首先,查看安装后随机生成的MySQL密码。

grep 'A temporary password' /var/log/mysqld.log

在这里插入图片描述
这里的密码建议先进行复制,后面直接黏贴,不推荐手动输入。

(2)、接着,登录MySQL数据库。

mysql -uroot -p

在这里插入图片描述
在上面的图片中,在输入密码处黏贴前面复制的密码。

特别注意:由于密码不是明文显示的,所以不会直接显示,不要以为是键盘坏了或者什么情况。

(3)、修改验证密码的强度等级和长度

由于不支持设置简单的密码,如果出于学习的目的,想设置简单好记的密码,就需要进行下面的操作。

建议:工作环境下不建议设置简单密码。

首先执行修改验证密码强度等级的命令,将等级设置为LOW,也就是低级的。命令如下:

set global validate_password_policy=LOW;

在这里插入图片描述
接着设置密码的长度,这里需要设置多少位数的简单密码就设置多少位数,我这里设置密码为123456,所以设置长度为6。

set global validate_password_length=6;

在这里插入图片描述

到了这里,就能执行设置密码的命令了。

ALTER USER USER() IDENTIFIED BY '123456';

在这里插入图片描述
最后,退出数据库,尝试用设置的新密码进行登录。

在这里插入图片描述
重新进入数据库,可以执行一下简单的命令测试一下。

show databases;

7、字符集编码配置

首先,查看一下默认的字符集编码;

show variables like '%char%';

在这里插入图片描述
接着,退出MySQL,停止MySQL服务,再编辑配置文件。

systemctl stop mysqld

紧接着,开始修改配置文件。

vi /etc/my.cnf

在配置文件中找到[client]部分开始的内容,修改如下。

# [client]
# 设置字符编码
default-character-set=utf8
# [mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

如果没有这一部分,则直接进行添加。
在这里插入图片描述

修改完成后,保存配置文件,并重启MySQL服务。

systemctl restart mysqld

这里暂时跳过编码测试的情况,后面远程连接后直接测试中文的情况。

8、配置远程连接

GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

在这里插入图片描述

这个SQL命令的作用是授予具有完全权限的root用户从任何地方连接到数据库,密码为123456,并允许其执行任何数据库操作。这是非常强大的权限,因此在生产环境中应该小心使用,并确保只授予必要的权限以减少潜在的安全风险。

上面的命令如果执行出现如下错误,则参考下方的图片进行处理即可。

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

在这里插入图片描述
最后,执行一下下面的命令。

FLUSH PRIVILEGES;

在这里插入图片描述

该命令是一个SQL命令,它的作用是重新加载访问控制权限,以确保最新的授权更改生效。

9、配置防火墙规则

配置完远程连接权限后,需要配置一下防火墙规则。

首先查看防火墙的状态,确保防火墙处于启动状态。

systemctl status firewalld

在这里插入图片描述
接着,配置防火墙规则,命令如下:

firewall-cmd --zone=public --add-port=3306/tcp --permanent;

在这里插入图片描述

这个命令的作用是将TCP端口3306添加到公共防火墙,3306端口通常用于MySQL数据库服务,这是允许从外部网络连接到MySQL服务器的重要一步。

其中,参数–permanent表示设置为永久性的,即系统重启后仍然保留此规则。

开放3306端口后,重新载入一下防火墙规则,执行如下命令:

firewall-cmd --reload

在这里插入图片描述
到这里,就需要获取一下系统的IP地址,执行命令如下:

ifconfig

在这里插入图片描述

记住上面的IP地址,接下来就使用数据库连接工具Navicat进行连接。

在这里插入图片描述

上面的图片中,“主机”输入CentOS系统的IP地址,端口使用3306,因为前面防火墙开放MySQL服务使用的是3306端口,用户名即数据库的用户名,密码即数据库的密码。

保证输入正确后,点击连接测试,软件弹出连接成功。

10、测试建库建表和字符集

使用Navicat远程连接到数据库后,手动进行建库建表的操作,建表如下:
在这里插入图片描述
类型注意使用字符串类型,方便后面的测试。

表格创建完成后,插入任意中文字符数据。

在这里插入图片描述

数据插入后,回到Linux端,在MySQL数据库中查询数据表的数据,以验证中文字符集是否正常,保证中文字符不会出现乱码的情况。

附:

MySQL版本查看命令

mysql -V

在这里插入图片描述
可见版本是5.7.43,其实早在第一步获取软件包的命令中就已经指定了安装MySQL 5.7的版本了。

到这里一切操作就完美结束了!!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV中world模块介绍

OpenCV中有很多模块,模块间保持最小的依赖关系,用户可以根据自己的实际需要链接相关的库,而不需链接所有的库,这样在最终交付应用程序时可以减少总库的大小。但如果需要依赖OpenCV的库太多,有时会带来不方便,此时可以使…

线上答题活动小程序结合线下大屏复盘总结

线上答题活动小程序结合线下大屏复盘总结 ~ 说来话长,这个活动也接近尾声了,从刚开始着手开发,到现在已过去半年,好不夸张的,当时从4月份开始接触,现在已经十月份了 该小程序我发下主界面截图&#xff0…

【RocketMQ集群】Linux搭建RocketMQ双主双从集群

在当今大数据时代,消息队列系统成为了构建高可用、可扩展和可靠的分布式应用的重要组件之一。而Apache RocketMQ作为一款开源的分布式消息中间件,以其高吞吐量、低延迟和可靠性而备受青睐。为了满足大规模应用的需求,搭建RocketMQ集群是一种常…

JavaScript进阶 第二天笔记

JavaScript 进阶 - 第2天 了解面向对象编程的基础概念及构造函数的作用,体会 JavaScript 一切皆对象的语言特征,掌握常见的对象属性和方法的使用。 了解面向对象编程中的一般概念能够基于构造函数创建对象理解 JavaScript 中一切皆对象的语言特征理解引用…

Flutter页面滑动回调处理解决方法

文章目录 TabBarViewTabBarView简介TabBarView详细介绍 TabBarView滑动时如何处理事务例子 PageControllerPageController介绍PageController 的详细介绍 TabBarView TabBarView简介 TabBarView 是 Flutter 中的一个用于显示选项卡视图的小部件。它通常与 TabBar 一起使用&am…

使用树莓派(香橙派)搭建文件共享服务器-samba服务器

域网内部通过文件共享来传输文件是一种非常方便的方式,小米摄像头也支持用文件共享smb模式将视频备份到局域网中的文件服务器上。之前我一直使用荣耀pro路由器游戏版,是自带USB接口支持文件共享服务的,接上USB移动硬盘,小米摄像头…

linux-防火墙

目录 一、防火墙概念 1.软件防火墙 2.iptables默认规则 3.iptables的五链 4.iptables动作 5.四表五链 6.iptables实例 一、防火墙概念 linux下防火墙一般分为软件防火墙、硬件防火墙 硬件防火墙:在硬件的级别实现防火墙过滤功能,性能高&#xf…

docker部署rabbitmq的坑

背景 今天用docker部署rabbitmq,启动都一起正常,但是当访问15672端口时,不能加载出页面。 排查 1.防火墙是否开启 ufw status2.ip是否能ping通 ping 192.168.x.x3.检查docker日志 docker psdocker logs -f 容器id4.进入容器&#xff0c…

RabbitMQ运行机制和通讯过程介绍

文章目录 1.RabbitMQ 环境搭建2.RabbitMQ简介3.RabbitMQ的优势:4. rabbitmq服务介绍4.1 rabbitmq关键词说明4.2 消息队列运行机制4.3 exchange类型 5.wireshark抓包查看RabbitMQ通讯过程 1.RabbitMQ 环境搭建 参考我的另一篇:RabbitMQ安装及使用教程&am…

UE4 材质实操记录

TexCoord的R通道是从左到右的递增量,G通道是从上到下的递增量,R通道减去0.5,那么左边就是【-0.5~0】区间,所以左边为全黑,Abs取绝对值,就达到一个两边向中间的一个递减的效果,G通道同理&#xf…

【linux】安装rpmrebuild

rpmrebuild是一种从已经安装的包中构建RPM文件的工具。它可以用于轻松构建修改后的包,并适用于任何使用RPM的Linux发行版。 访问地址 rpm rebuild download | SourceForge.net 选择版本 版本地址:版本地址 下载安装包 安装 rpm -ivh rpmrebuild-2.15…

[C语言]排序的大乱炖——喵喵的成长记

宝子,你不点个赞吗?不评个论吗?不收个藏吗? 最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要…

Python:实现日历功能

背景 日常生活中,每天都要用到日历,日历成为我们生活中的必需品,那么如何制作日历呢,其实方法有很多,可以直接在excel中制作,也可以手画等等。 学习过编程的朋友,能否想到用Python编写一…

Docker从入门到实战

Docker基本概念 1、解决的问题 1、统一标准 应用构建 ○ Java、C、JavaScript ○ 打成软件包 ○ .exe ○ docker build … 镜像应用分享 ○ 所有软件的镜像放到一个指定地方 docker hub ○ 安卓,应用市场应用运行 ○ 统一标准的 镜像 ○ docker run 容器化技术 …

STM32:TTL串口调试

一.TTL串口概要 TTL只需要两个线就可以完成两个设备之间的双向通信,一个发送电平的I/O称之为TX,与另一个设备的接收I/O口RX相互连接。两设备之间还需要连接地线(GND),这样两设备就有相同的0V参考电势。 二.TTL串口调试 实现电脑通过STM32发送…

current file is not included in a workspace moduleg 存在多个 main函数的 Go项目 无法成功导包

报错缘由 学习 hystria, 尝试自测案例,使用了 go get “github.com/afex/hystrix-go/hystrix” 进行导入包, 导入成功后,在代码里利用 import 导入,但遇到了以下报错 could not import github.com/afex/hystrix-go/hystrix (current file i…

【前端性能】性能优化手段-高频面试题

持续更新.............................最近更新2023/10/24 1. 讲一下png8、png16、png32的区别,并简单讲讲 png 的压缩原理 PNG8、PNG16、PNG32 是 PNG 图像格式的不同变种,它们主要区别在于颜色深度和透明度支持的不同。 区别 PNG8: PN…

指定顺序输出

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…

Django 注册及创建订单商品

注册功能的实现 user/views from rest_framework.generics import GenericAPIView from rest_framework.views import APIViewfrom apps.user.models import User from apps.user.serializers import UserSerializer from utils import ResponseMessage from utils.jwt_auth …

C++前缀和算法的应用:从仓库到码头运输箱子原理、源码、测试用例

本文涉及的基础知识点 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 双指针 单调双向队列 题目 你有一辆货运卡车,你需要用这一辆车把一些箱子从仓库运送到码头。这辆卡车每次运输有 箱子数目的限制 和 总重量的限制 。 给你…