Hey, Nice to meet You. 

必有过人之节.人情有所不能忍者,匹夫见辱,拔剑而起,挺身而斗,此不足为勇也,天下有大勇者,猝然临之而不惊,无故加之而不怒.此其所挟持者甚大,而其志甚远也.          ☆☆☆所谓豪杰之士,

CentOS7中安装与配置MySQL5.7数据库

image

CentOS7中把之前默认的数据库MySQL替换成了Mariadb,而Mariadb仅仅是MySQL的一个分支,但对于需要使用MySQL的开发人员来说,这是时就需要在系统中安装MySQL数据库,话不多说,直接开整。

1、MySQL的下载

[1]、先查看是否已经安装了MySQL

rpm -qa|grep mysql #无输出说明没有安装

[2]、先下载MySQL源安装包(Yum Repository)

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

如果出现 -bash: wget: 未找到命令。表示系统没有安装wget,如果安装过了,忽略这一步。

yum -y install wget

下载完wget后再执行之前的命令,这里下载很快。

[3]、然后就是安装MySQL源:

yum -y localinstall mysql57-community-release-el7-11.noarch.rpm

[4]、之后在线安装MySQL服务器:这里下载东西有点多,可能会下载很久(我网速快一下子就下载好了),耐心等待,安装完成后就会覆盖掉之前的mariadb。

yum -y install mysql-community-server

image


注意:执行完 yum -y install mysql-community-server 命令可能会出现这个问题:

源 "MySQL 5.7 Community Server" 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。

一句话的解决代码,执行下面的命令,:

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

随后在执行上一部命令 yum -y install mysql-community-server 即可成功

至此MySQL就安装好了。

2、MySQL服务的启动

[1]、启动MySQL服务

systemctl start mysqld

[2]、查看MySQL运行状态,运行状态如图:

systemctl status mysqld.service

image

此时MySQL已经开始正常运行。

[3]、设置开机启动(可以省略,因为MySQL默认自启)

systemctl enable mysqld
systemctl daemon-reload

3、修改ROOT登录密码

[1]、找到MySQL初始化密码。

MySQL安装完成之后,第一次启动后会创建超级管理员账号root@localhost,在/var/log/mysqld.log文件中给root生成了一个临时的默认密码。我们可以使用如下命令查找:

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

image

也可以直接打开mysqld.log文件查看。

vi /var/log/mysqld.log

image

这里的临时密码 /DdvL=Qg9Gtb 暂时记住这个密码(你的可能不同),按 esc 再按 :q 退出。


[2]、然后进入MySQL:

mysql -u root -p

输入临时密码 进入MySQL命令行;(注意:输入密码时时看不见的!)

image

此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

image

注意:MySQL5.7默认密码策略要求密码必须是大小写字母数字特殊字母的组合,至少8位。后面会改较弱的策略,让其支持普通的值。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'TangHaoRong20200703.';

注意:其中 TangHaoRong20200703. 是你自己设置的登录密码。

image

成功配置,我们就可以操作数据库了。

image


续,补充:如果你觉得上面这种密码策略太麻烦了,我们可以给它改简单一点,因为就自己使用,又不是公司里面。

首先查看验证密码规则的相关信息:

show variables like 'validate_password%';

image

介绍一下红色框中各个参数的含义:

  • validate_password_check_user_name:是否检验用户名。
  • validate_password_dictionary_file:密码策略文件,策略为STRONG才需要。
  • validate_password_length:密码最少长度,默认8个。
  • validate_password_mixed_case_count:大小写字符长度,至少1个。
  • validate_password_number_count :数字至少1个。
  • validate_password_policy:密码策略,默认为MEDIUM策略。
  • validate_password_special_char_count:特殊字符至少1个。

其中validate_password_policy密码策略的验证规则如下:

  • 0(LOW):只检查长度。
  • 1(MEDIUM):必须包含 长度、数字、小写、大写和特殊字符。
  • 2(STRONG):必须包含 长度、数字、小写、大写、特殊字和字典文件。

下面我们给它改成 0(LOW)等级的密码策略:

修改密码策略,在/etc/my.cnf文件添加如下内容:

#密码策略为LOW
validate_password_policy=0
#密码长度为6
validate_password_length=6

如果你不需要密码策略,直接在my.cnf文件中添加如下配置禁用即可:

validate_password = off

然后再进入数据库查看验证密码规则:

#重启数据库
systemctl restart mysqld
#进入数据库
mysql -u root -p
mysql -u root -p123456  #带密码登录(注意-p后面不要空格),这里密码还没有设置完成
#查看策略信息
show variables like 'validate_password%';

更改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

然后我们就可以使用123456登录本地MySQL了。

4、配置默认编码为UTF8

我们知道MySQL数据库的默认编码为latin1,但是我们需要的是utf-8,所以需要改一下。

[1]、修改/etc/my.cnf配置文件,在[mysqld]的最下面添加编码配置,如下所示:

character_set_server=utf8
init_connect='SET NAMES utf8'

输入vi命令:

vi /etc/my.cnf

按 i 进入编辑模式,加入后按 esc 和 :wq 保存退出。

image

[2]、然后重启mysql服务;

systemctl restart mysqld

[3]、进入数据库,查看下编码。

mysql -u root –p
show variables like '%character%';

image

至此MySQL的所有配置全部完成 !!!

5、设置允许远程登录

MySQL默认只允许本地用户登录,不允许远程登录,那么想要在其它机器上连接MySQL,就必须修改ROOT允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:

[1]、首先进入mysql,并且为root设置远程登录密码

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

注意:这里123456是你远程登录的密码,不是本地登录密码。比如你将远程登录密码设置为ABcd1234!,但是你的Linux本地的密码还是123456。

image

然后退出mysql> exit。

[2]、防火墙开放3306端口,如果没有开启3306端口,开启一下:

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

[3]、再重新载入

#重启防火墙
firewall-cmd --reload
#查看开放端口
firewall-cmd --zone=public --list-ports

6、测试远程登录

测试远程连接,下图表示成功连接,我们就可以在其它机器上操作mysql了。

image

posted @ 2020-07-03 17:53  唐浩荣  阅读(1077)  评论(0编辑  收藏  举报