CentOS 7 安装mariadb

本文详细记录了在 CentOS 7 上安装 Mariadb 的过程,包括停止 firewall 服务、安装 iptables 并设置开机自启动,以及数据库的初始化和远程连接配置。遇到的坑包括误安装 MySQL、CentOS 7 默认防火墙为 firewall 需要改为 iptables,以及云服务器的端口穿透。适合 Linux 新手参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新手,以前完全没玩过,走了很多弯路,感觉有必要做个笔记备忘

开发互联网项目首先想到的数据库一般就会是mysql,以及他的衍生数据库,包括很多有经验的朋友也会给你推荐使用mysql

(以下内容中部分图片来自网友提供,感谢无私奉献的朋友们!)

坑一:CentOS 7不能再用开源的MySql了,应该安装Mariadb

解决办法:

一顿操作猛如虎,发现我是250,买了个华为云服务器(CentOS 7),直接下载mysql包,解压,安装,按照网上的帖子一步步操作,直到最后卸载了mysql,因为CentOS 7上不能再安装开源的mysql了(也就是不能用免费的了o(* ̄︶ ̄*)o),你想要的可能是安装mariadb!

【mariadb安装步骤】:

1、准备工作

**1.1、**确保你的linux服务器外网是通的,方法很简单,ping www.baidu.com

**1.2、**查看已安装的包

命令:rpm -qa | grep mysql

**1.3、**如果存在已安装,逐个卸载掉这些包

命令:rpm -e --nodeps mariadb-xxxx。。。。

全部卸载完后执行1.2的命令确认卸载干净。

2、安装mariadb

**2.1、**安装

命令:yuminstall mariadb-server

2.2、 如果下载不成功,清理安装文件

命令:yum clean all

2.3、 确认下载安装

**2.4、**安装完成

此时执行1.2的命令,可以查看安装的内容!

3、 数据库常用命令
命令:
1. 启动命令 systemctl start mariadb
2. 重启命令 systemctl restart mariadb
3. 关闭命令 systemctl stop mariadb
4. 开机自起 systemctl enable mariadb
5. 关闭自起 systemctl disable mariadb

**4、**初始化数据库

**4.1、**执行命令:mysql_secure_installation

提示输入root用户密码

安装后初次进入,密码为空,直接回车就可以了 !

**4.2、**设置root用户密码

然后弹出是否设置root用户密码,输入y,然后回车

输入新密码,回车后在重复输入确认密码,回车完成密码设置,然后弹出是否删除匿名用户,输入y,回车完成匿名用户删除

**4.3、**删除匿名用户

**4.4、**允许root远程登录

输入y,回车,允许root远程登录,然后选择是否删除test测试库

**4.5、**删除test测试库

输入y,回车,删除test库,然后选择是否新加载权限

**4.6、**重新加载权限

输入y,回车,安装完成!

坑二、数据库远程连接需要的两个配置(数据库允许用户远程访问、防护墙上要将数据库端口3306设置成ACCEPT)

解决办法:

一、解决用户远程登录

(一)、执行命令:mysql -u root -p
提示输入root用户密码,输入后回车,成功登录Mariadb,

(二)、执行命令:GRANT ALL PRIVILEGES ON *.* TO ‘root’@‘%’ IDENTIFIED BY ‘你的root密码’ WITH GRANT OPTION;

二、解决防火墙问题

在网上查询到需要修改/etc/sysconfig/iptables配置文件,文件中默认放开了22端口,复制后粘贴在这条配置的下面(有网友说只能在下面,上面不行,我没验证),并修改端口为3306,如下:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

!!!!可实际我们在我们打开/etc/sysconfig目录后就迷路了,因为没有找到iptables这个文件,有一个iptables-config的文件,我想到是不是操作系统版本问题,打开后发现配置和网友的帖子完全对不上,这是坑的关键,CentOS 7的默认防火墙是firewall 防火墙,不是ptables防火墙,我的解决办法是先修改防火墙为iptables,步骤如下:

1、停止 firewall 服务

systemctl stop firewalld

2、注销 firewall 服务

systemctl mask firewalld

3、安装 iptables 服务

yum install -y iptables
yum install iptables-services

4、启动 iptables 服务

systemctl start iptables
或者
service iptables start

5、设置 iptables 开机自启动

systemctl enable iptables

6、查看 iptables 状态

systemctl status iptables
或者
service iptables status

7、此时/etc/sysconfig/iptables已经存在了

按上面的办法修改/etc/sysconfig/iptables,如下

。。。省略其他内容。。。
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
。。。省略其他内容。。。

坑三、云服务器需要防火墙端口穿透

经过上面一顿折腾,理论上已经可以在自己电脑上用Navicat等工具连接数据库了,遗憾的是仍然连不上,找了半天,突然灵光一现,想到我最开始说的场景,我是买的一个云服务器,应该是云上的端口没有穿透进去,登录云管理平台的管理端,做一个端口映射,让外面能穿透到3306端口完美解决!

以上是我在CentOS 7 上想要安装mysql,最后安装了Mariadb的过程,做笔记备查,希望能给跟我一样的小白提供一定帮助,如有错漏,欢迎指正!!!

最后

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

小编已加密:aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==出于安全原因,我们把网站通过base64编码了,大家可以通过base64解码把网址获取下来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值