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

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

1、获取MySQL 5.7 Community Repository软件包

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

bash 复制代码
wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

2、安装软件包

bash 复制代码
rpm -ivh mysql57-community-release-el7-8.noarch.rpm

3、安装MySQL服务

bash 复制代码
cd /etc/yum.repos.d

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

bash 复制代码
yum -y install mysql-server

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

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

bash 复制代码
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

首先,执行上面的命令;该命令的作用是导入MySQL软件仓库的GPG公钥。

在软件仓库中使用GPG公钥可以确保软件包的完整性和认证,以防止未经授权的修改或潜在的风险。

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

bash 复制代码
yum -y install mysql-server

4、操作MySQL服务

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

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

bash 复制代码
# 启动服务
systemctl start mysqld
# 查看状态
systemctl status mysqld
# 设置开机自动启动
systemctl enable mysqld

如果启动状态如下,则说明MySQL服务已经正常运行了。

5、查看进程

bash 复制代码
ps -ef | grep mysql

6、登录及密码配置

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

bash 复制代码
grep 'A temporary password' /var/log/mysqld.log

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

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

bash 复制代码
mysql -uroot -p

在上面的图片中,在输入密码处黏贴前面复制的密码。

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

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

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

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

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

bash 复制代码
set global validate_password_policy=LOW;

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

bash 复制代码
set global validate_password_length=6;

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

bash 复制代码
ALTER USER USER() IDENTIFIED BY '123456';

最后,退出数据库,尝试用设置的新密码进行登录。

重新进入数据库,可以执行一下简单的命令测试一下。

bash 复制代码
show databases;

7、字符集编码配置

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

bash 复制代码
show variables like '%char%';

接着,退出MySQL,停止MySQL服务,再编辑配置文件。

bash 复制代码
systemctl stop mysqld

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

bash 复制代码
vi /etc/my.cnf

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

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

如果没有这一部分,则直接进行添加。

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

bash 复制代码
systemctl restart mysqld

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

8、配置远程连接

bash 复制代码
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

最后,执行一下下面的命令。

bash 复制代码
FLUSH PRIVILEGES;

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

9、配置防火墙规则

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

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

bash 复制代码
systemctl status firewalld

接着,配置防火墙规则,命令如下:

bash 复制代码
firewall-cmd --zone=public --add-port=3306/tcp --permanent;

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

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

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

bash 复制代码
firewall-cmd --reload

到这里,就需要获取一下系统的IP地址,执行命令如下:

bash 复制代码
ifconfig

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

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

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

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

使用Navicat远程连接到数据库后,手动进行建库建表的操作,建表如下:

类型注意使用字符串类型,方便后面的测试。

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

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

附:

MySQL版本查看命令

bash 复制代码
mysql -V

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

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

相关推荐
是程序喵呀5 分钟前
MySQL备份
android·mysql·adb
指尖上跳动的旋律12 分钟前
shell脚本定义特殊字符导致执行mysql文件错误的问题
数据库·mysql
Bessssss2 小时前
centos日志管理,xiao整理
linux·运维·centos
豆是浪个2 小时前
Linux(Centos 7.6)yum源配置
linux·运维·centos
苹果醋34 小时前
2020重新出发,MySql基础,MySql表数据操作
java·运维·spring boot·mysql·nginx
先睡4 小时前
MySQL的架构设计和设计模式
数据库·mysql·设计模式
呼啦啦啦啦啦啦啦啦6 小时前
【MySQL篇】事务的认识以及四大特性
数据库·mysql
溟洵8 小时前
Linux下学【MySQL】表中插入和查询的进阶操作(配实操图和SQL语句通俗易懂)
linux·运维·数据库·后端·sql·mysql
gywl13 小时前
openEuler VM虚拟机操作(期末考试)
linux·服务器·网络·windows·http·centos
苹果醋314 小时前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx