centos7安装mysql5.7超详细图文教程

5 篇文章 0 订阅

注意:下面的安装步骤是在服务器上没有安装第三方发布的rpm包情况下。centos7可联网。
-----------------------------------------------------------------------------------------------------------

安装mysql5.7

一、添加MySQL Yum 仓库

1、查看内核属于linux哪个版本。打开终端并运行以下命令:
 uname -a

查看linux版本

2、进入网站查看对应的版本。https://dev.mysql.com/downloads/repo/yum/

在这里插入图片描述

3、使用以下命令下载发布包
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

在这里插入图片描述

4、安装下载的安装包
sudo rpm -Uvh mysql80-community-release-el7-1.noarch.rpm

在这里插入图片描述

二、选择发行系列

1、在MySQL Yum存储库(https://repo.mysql.com/yum)中,不同版本的MySQL Community Server托管在不同的子存储库中。默认情况下,默认启用最新GA系列(当前为MySQL 8.0)的子存储库,而所有其他系列(例如,MySQL 5.7系列)的子存储库均被禁用。使用此命令可查看MySQL Yum存储库中的所有子存储库,并查看已启用或禁用了哪些子存储库(对于启用dnf的系统,请使用dnf替换 命令中的 yum):
sudo yum repolist all | grep mysql

在这里插入图片描述

2、要安装最新GA系列的最新版本,无需进行配置。要安装除最新GA系列以外的特定系列的最新版本,请在运行安装命令之前禁用最新GA系列的子存储库并启用特定系列的子存储库。

比如我就想安装mysql5.7,而现在最新是mysql8.0,所以需要禁用8.0的,启用5.7的:

sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community

0代表已禁用
1代表已启用

3、使用此命令再次查看MySQL Yum存储库中的所有子存储库,并查看已启用或禁用了哪些子存储库,发现已切换为mysql5.7启用,mysql8.0已经禁用。
sudo yum repolist all | grep mysql

在这里插入图片描述

4、或者通过运行以下命令并检查其输出来验证是否已启用和禁用正确的子存储库
sudo yum repolist enabled | grep mysql

测试
注意:
只为一个发行系列启用子存储库。如果启用了多个发行系列的子存储库,那么Yum将使用最新的系列。

5、更新yum缓存。

yum 会把下载的软件包和header存储在cache中而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令清除缓存。
我们在更新yum源或者出现配置yum源之后,通常都会使用yum makecache 生成缓存,这个命令是将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度。
下边两个命令按顺序执行:

yum clean all
yum makecache fast

三、通过命令安装MySQL。

会自动安装上面设置过可用的最新版本。这将安装MySQL服务器的软件包以及其他必需的软件包。
并且会替换centos7自带的mariadb数据库。

sudo yum install mysql-community-server

在这里插入图片描述经过几次确认,最终安装完成。

这种mysql的安装方式做了下面的事情:

安装了mysql服务
生成SSL证书文件并存放在data目录
安装有效性密码验证插件并启用
本地超级用户root被创建,root用户的密码在日志文件中,使用下面的命令查看密码

四、常用mysql服务命令:

对于基于EL7的平台(CentOS 7):

//启动mysql
$ systemctl start mysqld.service 
//查看状态
$ systemctl status mysqld.service
//关闭
$ systemctl stop mysqld.service
//重启
$ systemctl restart mysqld.service
//运行开机自启
$ systemctl enable mysqld.service
//不允许开机自启
$ systemctl disable mysqld.service

此状态为已经正常运行。
在这里插入图片描述

五、获取初始密码登录mysql,并修改密码及校验规则

mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码。

1、通过如下命令可以在日志文件中找出密码:
grep "password" /var/log/mysqld.log

在这里插入图片描述

2、使用刚才查到的初始密码登录,密码复杂可以用鼠标复制粘贴。
mysql -uroot -p

在这里插入图片描述

3、修改密码(新密码必须是8位及以上的数字、字母、特殊字符)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword1234!';

在这里插入图片描述

4、修改密码校验规则,配置可以使用弱密码(不嫌麻烦可以不修改规则,直接用复杂的密码,看个人)

查看当前完整的密码规则,详细如下图中注释:

show variables like 'validate_password%';

在这里插入图片描述
以下命令按顺序一条一条执行即可。(改为密码最短3位,其他无限制)

mysql> set global validate_password_policy=0;
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_length=3;

在这里插入图片描述

5、可以重新改一下简单密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

-----------------------------------------------------------------------------------------------------------

mysql开启远程访问

远程登录数据库出现下面出错信息
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx’,
原因是没有授予相应的权限

1、执行以下命令开启远程访问限制(下面命令分别是开启IP是 192.168.6.70,以及要开启所有的,用%代替IP):
#任何主机
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
#指定主机
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@’192.168.6.70’ IDENTIFIED BY '123456' WITH GRANT OPTION;

在这里插入图片描述

2、然后刷新权限
mysql>flush privileges;

-----------------------------------------------------------------------------------------------------------

mysql修改字符集

1、客户端提供MYSQL的环境,但是不支持中文,通过以下命令可以查看mysql的字符集
mysql>show variables like 'character_set%';

在这里插入图片描述

2、编辑配置文件(退出mysql执行)
vim /etc/my.cnf

添加四行代码,位置如图:

[client]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci

在这里插入图片描述

3、重启服务(退出mysql命令行,在终端中执行,而非mysql中)
systemctl restart mysqld.service
4、之后进入mysql,查看字符集状态,发现已经为utf-8

在这里插入图片描述 -----------------------------------------------------------------------------------------------------------

mysql修改端口

1、修改端口

默认端口为3306,查看端口

mysql>show global variables like 'port';

在这里插入图片描述

2、停止mysql服务
systemctl stop mysqld.service
3、编辑配置文件
vim /etc/my.cnf

在【mysqld】下添加端口参数,如图:

port=3336

在这里插入图片描述

3、重启服务(退出mysql命令行,在终端中执行,而非mysql中)
systemctl restart mysqld.service

可能出现的问题:

正常的话将端口添加到防火墙例外中就可以远程访问了,如果出现以下错误:

job for sshd.service failed because the control process exited with error code......

在这里插入图片描述
应该是 SELinux 搞的鬼,将 SELinux 修改为宽松模式。
打开 vim /etc/selinux/config 修改为宽松模式
在这里插入图片描述若想临时生效可使用

  setenforce  0    #关闭
  setenforce  1    # 开启

其他问题解决办法:查看mysql日志,查看日志命令如下

cat /var/log/mysqld.log

查看日志中报错的内容。如果是报错码,可以对应查找码的具体含义:https://blog.csdn.net/mr__bai/article/details/113251560

-----------------------------------------------------------------------------------------------------------

centos7 开启防火墙端口

一、开启防火墙端口,CentOS为firewalld添加开放端口3306

1、首先要确保防火墙已开启,开启命令:
systemctl start firewalld
2、开放端口,开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent 
3、刷新防火墙,立即生效
firewall-cmd --reload 
4、查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports

二、防火墙相关命令

关闭防火墙

如果要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估

systemctl stop firewalld.service

查看防火墙状态

 systemctl status firewalld

查看监听的端口

netstat -lnpt

检查端口被哪个进程占用

netstat -lnpt |grep 5672

查看进程的详细信息

ps 6832

关闭端口(关闭后需要要重启防火墙才生效)

firewall-cmd --zone=public --remove-port=3338/tcp --permanent

开启防火墙

systemctl start firewalld

停止防火墙

systemctl stop firewalld
 
重启防火墙

```java
firewall-cmd --reload

开机启动防火墙

systemctl enable firewalld

禁止防火墙开机启动

systemctl disable firewalld

-----------------------------------------------------------------------------------------------------------

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mr__bai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值