本文章主要还是学习了其他博主的方法,自己尝试去实操进行记录所得,纯属当做学习笔记。
1.在Linux系统中,要检查系统是否安装了MySQL,可以使用命令行工具。以下是几种查看方法:
1.1使用mysql命令(Centos系统):
mysql -version
(1)如果MySQL客户端没有安装就会出现报错,因为Bash shell无法在环境变量$PATH定义的目录中周到mysql命令。
(2)如果MySQL已安装,此命令将输出MySQL的版本信息。
1.2使用dpkg(Debian/Ubuntu系统):
dpkg -l | grep mysql
如果MySQL已安装,这将列出所有与mysql相关的包。
1.3使用rpm(Red Hat/CentOS系统):
rpm -qa | grep mysql
这将列出所有已安装的MySQL包。
1.4检查服务状态:
systemctl status mysql
或者对于旧版本的MySQL或MariaDB:
systemctl status mysqld
如果以上命令没有返回任何信息或者不存在,那么可以确定Linux系统上没有安装MySQL。
2.安装mysql
2.1准备工作
2.1.1为Centos虚拟机设置静态IP地址和网卡自启动,目的是让虚拟机每次重启后保证网卡的自动开启,以及保证连接数据库的IP地址不出现变化。(虚拟机网络适配器为NAT模式。)
首先我们虚拟机安装的时候选择NAT模式,需要查看网卡信息,以便去设置一个静态的IP地址。
(A)查看NAT模式的操作:
(1)查看NAT模式的网卡信息又或者可以改成想要设置的网段信息,可以点击“编辑”中的“虚拟网络编辑器”。
(2)点击右下角的“更改设置”。
(3)进入更改设置之后,可以保留默认的网段信息。
(3.1)如果想要配置自己指定的网段,可以点击选择VMnet8,接着对子网IP和子网掩码进行更改。
(3.2)更改子网IP和子网掩码之后,点击编辑“NAT设置”,对网关IP进行修改;点击“确定”。
(3.3)点击“确定”或者“应用”完成设置。
(B)在Centos 7系统中,进入到管理员的模式下,可以通过以下命令查看网卡信息:
(1)使用ifconfig命令:
(2)使用ip address show(ip add)命令:
(3)使用nmcli命令:
nmcli con show
(4)使用ethtool命令:
ethtool -i <网卡设备名>
以上方法都可以用来查看CentOS系统中的网卡信息。方法1和方法2是最常用的,它们会显示网络接口的详细信息,包括IP地址、MAC地址、子网掩码等。方法3使用NetworkManager的命令行接口,可以查看已配置的网络连接信息。方法4使用ethtool工具,可以显示网卡设备的驱动程序和版本信息。
(C)配置网卡信息,使用vi /etc/sysconfig/network-scripts/ifcfg-ens33命令:
(1)进入配置文件
(2)进入到配置文件后,按键盘“i”键或者“Insert”键即可进入编辑模式,修改之后按键盘上的“Esc”键退出编辑模式,最后按“shift”+“ :”键输入wq回车进行保存。
修改前:
修改后:
BOOTPROTO=dhcp 改为 BOOTPROTO=static
ONBOOT=no 改为 ONBOOT=yes
添加IP地址、子网掩码、网关和DNS信息:
IPADDR=192.168.62.129
NETMASK=255.255.255.0
GATEWAY=192.168.62.2
DNS1=8.8.8.8
DNS2=8.8.4.4
(3)重启网络服务或者重启虚拟机
systemctl restart NetworkManager //重启网卡服务
或
reboot //重启
或
2.1.2 检查是否安装过mysql,如果已安装可以使用以下命令进行卸载。
(1)使用命令 rpm -qa |grep mysql
如果查找到mysql相关包,那就是安装过,如果回车不显示,则说明没有。
(2)安装过mysql,先使用命令 systemctl stop mysqld 关闭mysql。
(3)通过rpm命令安装mysql的,使用命令rpm -e –nodeps +包名 删除mysql包
(注意:删除一个不行,需要删除所有)
(4)通过yum命令安装mysql的,使用命令yum remove +包名
同时需要卸载掉mysql的依赖
yum remove mysql-libs
yum remove mysql-server
yum remove perl-DBD-MySQL
yum remove mysq
2.2删除mariadb数据库软件包
2.1.1使用命令rpm -qa |grep mari查询mariadb数据库软件包
rpm -qa |grep mari
2.1.2删除软件包使用命令yum remove包名
(1)yum remove marisa-0.2.4-4.el7.x86_64
(2)yum remove mariadb-libs-5.5.68-1.el7.x86_64
(3)检查是否删除掉,再次使用命令rpm -qa |grep mari查询,回车没有输出内容就说明已删除相关软件包。
2.3在Centos 7上安装MySQL
2.3.1使用命令wget -c +链接 下载rpm源
wget -c https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
2.3.2使用命令rpm -ivh +包名 安装rpm源。
rpm -ivh mysql80-community-release-el7-7.noarch.rpm
2.3.3使用命令yum -y install mysql-server安装mysql服务。
yum -y install mysql-server
安装中出现mysql客户端没安装成功。
这个错误表明你尝试安装的 MySQL 客户端软件包 mysql-community-client-8.0.38-1.el7.x86_64.rpm 需要验证其完整性和来源的安全性,但是它所依赖的公钥没有在你的系统上安装。公钥是一种公开的密钥,用于验证软件包是否来自其声称的来源。
报错说公钥2022有问题,那么可以通过命令进行更新为2023的公钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
注意:链接可能会随着时间而变化,请确保从 MySQL 官方仓库获取最新的公钥。
接着再次执行命令yum -y install mysql-server即可完成安装。
2.4启动MySQL
2.4.1使用命令systemctl start mysqld启动MySQL
(1)查看mysql运行状态
systemctl status mysqld
(2)启动mysql
systemctl start mysqld
(3)停止mysql
systemctl stop mysqld
(4)重启mysql
systemctl restart mysqld
2.4.2使用命令systemctl enable mysqld设置MySQL开机自启动。
systemctl enable mysqld
如果需要关闭mysql开机自启动,可以使用命令:
systemctl disable mysqld
2.5设置MySQL密码
2.4.1使用命令grep 'temporary password' /var/log/mysqld.log获取MySQL临时密码。
grep 'temporary password' /var/log/mysqld.log
!gdgoA7y,qdF
2.5.2使用命令mysql -uroot -p登录MySQL,密码为上面获得的临时密码。
mysql -uroot -p
!gdgoA7y,qdF
2.5.3登录后使用下方命令设置MySQL永久密码。
alter user ‘用户名’@‘loaclhost’ identified by ‘修改的密码’;
alter user 'root’@’localhost' identified by 'psaword@0';
Your password does not satisfy the current policy requirements
(您的密码不符合当前策略要求)
You must reset your password using ALTER USER statement before executing this statement.
(在执行此语句之前,必须使用ALTER USER语句重置密码。)
重新执行更改用户密码语句,密码最好包含字母,特殊字符,下划线和数字,长度8位以上。最好自己去手动输入,直接复制就会出现以上的报错情况,由于密码设置或者哪个符号有问题,下面修改密码语句,是自己重新手打设置的,也找了很多博主的文章看看自己的为什么报错,多数都是因为密码策略设置问题。
alter user 'root'@'localhost' identified by 'Admin@12345!';
修改成功后即可使用查询密码命令:
show variables like 'validate_password.%';
2.5.4修改密码策略
修改密码策略只是临时的,重启mysql之后会自动恢复默认密码策略,如需永久修改,那么需要进入到mysql配置文件中进行修改。
2.5.4.1 设置密码长度。
set global validate_password.length=6;
2.5.4.2 设置密码等级(等级分为0、1、2,数字越大要求密码越复杂)。
set global validate_password.policy=0;
2.5.4.3查询密码策略
通过上面的设置之后,密码策略的长度和复杂要求都降低了。
show variables like 'validate_password.%';
2.5.5 把密码策略修改之后,设置密码的要求得到降低
可以尝试再次设置数据库的密码
alter user ‘root’@’localhost’ identified by ‘123456’;
对于数据库里面的命令,最好自己手动输入,不要复制粘贴,会出现标点符号的不一致导致出错。
2.6设置外部允许访问这个MySQL数据库
2.6.1 创建远程连接的用户账号密码
2.6.2 分配权限,运行远程连接,允许root账号远程连接
grant all privleges on *.* to 'root'@'%' with grant option;
2.6.3 刷新权限
flush privileges;
2.6.4使用Navicat尝试连接Centos7上部署的MySQL数据库;
如果出现连接失败,可能是Centos7上的防火墙阻止了导致无法连接。
注意:这里使用的密码是步骤2.6.1所创建的密码
主机IP为什么不是前面设置的·,因为自己换了虚拟机,按照以上步骤重新搭建了
2.6.5对防火墙进行配置
2.6.5.1可以直接关闭防火墙,存在安全隐患,不建议关闭
使用命令systemctl stop firewalld.service 关闭防火墙
2.6.5.2开启指定端口允许外部访问
使用命令firewall-cmd --permanent --add-port=3306/tcp 设置该端口允许外部访问
3306是MySQL默认端口号
设置完之后,重启防火墙,使策略生效。
使用命令firewall-cmd --reload
2.6.5.3防火墙命令
关闭防火墙
systemctl stop firewalld.service
开启防火墙
systemctl strat firewalld.service
禁止防火墙开机自启动
systemctl disable firewalld.service
设置防火墙开机自启动
systemctl enable firewalld.service
查看防火墙状态
systemctl status firewalld.service
设置防火墙策略允许该端口永久被外部访问
firewall-cmd --permanent --add-port=3306/tcp
设置临时访问
firewall-cmd --add-port=3306/tcp
重启防火墙
firewall-cmd –reload
2.6.6重新远程连接MySQL数据库
在步骤2.6.4中因为防火墙的原因,导致连接不上;当处理好之后,回到Navicat右击“MySQL”选择“打开连接”,即可连接上搭建好的MySQL数据库。