从零部署 MySQL 数据库:Linux 安装与防火墙策略全解析

一:安装目录

安装到指定目录下,此时我们安装在usr/local/src目录下

bash 复制代码
cd /usr/local/src/

二:安装数据库

bash 复制代码
yum install mariadb-server         ##安装mariadb数据库
yum clean all                      ##清空已安装文件   如果下载失败之后执行的

三:确认下载

四:安装完成提示

五:数据库启动

bash 复制代码
systemctl start mariadb                  启动命令
systemctl restart mariadb                重启命令
systemctl stop mariadb                   关闭命令
systemctl enable mariadb                 设置开机自启
systemctl disable mariadb                关闭开机自启

注:启动数据库报错,解决方案

执行systemctl start mariadb.service后终端控制台报如下错误:

bash 复制代码
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.
  • cp /usr/share/mysql/my-huge.cnf /etc/my.cnf

  • cp: overwrite '/etc/my.cnf'? y

  • systemctl start mariadb.service

六:数据库初始化操作

bash 复制代码
mysql_secure_installation

七:测试用户名和密码是否有效

八:关于连接数据的说明

8.1 说明

  • 1.如果需要远程链接数据库必需通过防火墙
  • 2.如果远程访问数据库必须开通权限,否则拒绝连接

8.2 配置数据库权限配置说明

8.3 配置Linux数据库权限

8.3.1 切换数据库mysql

bash 复制代码
show databases;            #查看服务器有哪些数据库

切换mysql数据库

8.3.2 修改数据库表

1)检查数据表

bash 复制代码
show tables;        #查看数据表

2)查看user表的user,password,host

bash 复制代码
select host,user,password from user;

给root用户添加权限,执行如下sql语句

bash 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

3) 刷新数据库权限

bash 复制代码
flush privileges;               ##刷新数据库权限

九:配置linux防火墙策略

9.1 检查防火墙状态

bash 复制代码
firewall-cmd --state

9.2 防火墙配置

防火墙有一个配置文件,表示当linux启动时防火墙应该如何操作!! 需求:告诉Linux以后开机不需要启动防火墙

bash 复制代码
systemctl disable firewalld.service
systemctl enable firewalld.service

9.3 手动关闭防火墙

说明:通过命令手动将防火墙关闭

bash 复制代码
systemctl start firewalld.service     #开启防火墙
systemctl stop firewalld.service      #关闭防火墙

9.4 手动开放防火墙端口

  1. 防火墙开放的端口
bash 复制代码
firewall-cmd --list-ports
  1. 检查端口是否开放
bash 复制代码
firewall-cmd --query-port 80/tcp
  1. 开启防火墙
bash 复制代码
firewall-cmd --zone=public --add-port=80/tcp --permanent
  1. 移除端口
bash 复制代码
firewall-cmd --zone=public --remove-port=9090/tcp --permanent
  1. 关于防火墙操作的解释 --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --remove-port=80/tcp #移除端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效 6)重启防火墙
bash 复制代码
firewall-cmd --reload

9.5 数据库远程测试连接

成功连接服务器数据库

9.6 导入需要的数据库

如图,选择你需要的数据库,单击右键,选择转储SQL文件 在服务器数据库创建你需要导入的数据库(新建数据库以后再导入,否则会报错)

9.7 数据库导入成功

十:linux中的mysql数据库不能初始化

问题:初始化mysql时,一直报错

报错代码:Enter current password for root (enter for none): ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

解决方案:这个时候你的想法可以是先卸载mysql,之后重新安装数据库,但是重新安装数据库之后因为没有删除mysql文件,只是删除了mysql的软件和依赖包,并没有用

1)先找mysql依赖包和安装包 查包名:rpm -qa|grep -i mysql 删除命令:rpm -e --nodeps 包名 2)查看已安装的mysql 命令:rpm -qa | grep -i mysql 3)卸载mysql 命令:yum remove mysql-community-server-5.6.36-2.el7.x86_64 4)查看mysql的其它依赖

bash 复制代码
rpm -qa | grep -i mysql

5)这个时候你应该想linux彻底清楚mysql,彻底清除mysql就是将mysql的数据表和mysql日志删除。 首先关闭mysql:

bash 复制代码
systemctl status mysqld    #查看mysql状态
systemctl stop mysqld     #关闭数据库
systemctl status mysqld     #再次查看,发现已经关闭

6)删除数据库中所有的文件及日志

bash 复制代码
[root@localhost ~] rm -rf /var/lib/mysql/* #删除mysql目录下所以文件
[root@localhost ~] rm -rf /var/log/mysqld.log #删除日志

7)创建日志文件并给其加属主和属组,使mysql能调用该文件

bash 复制代码
[root@localhost ~] touch /var/log/mysqld.log
[root@localhost ~] chown mysql.mysql /var/log/mysqld.log

8)重新启动mysql

bash 复制代码
[root@localhost ~] systemctl restart mysqld

9)初始化mysql

bash 复制代码
[root@localhost ~] mysql_secure_installation

10)查看mysql

bash 复制代码
[root@localhost ~]# grep password /var/log/mysqld.log

如果输出的是没有任何值的,那就是直接设置mysql密码。

相关推荐
叁沐6 分钟前
MySQL 31 误删数据后除了跑路,还能怎么办?
mysql
ypf520810 分钟前
OrbStack 配置国内镜像加速
linux
Hello.Reader15 分钟前
一文通关 Proto3完整语法与工程实践
java·linux·数据库·proto3
Hello.Reader21 分钟前
一文吃透 Protobuf “Editions” 模式从概念、语法到迁移与实战
linux·服务器·网络·protobuf·editions
陌上花开缓缓归以28 分钟前
linux ubi文件系统
linux
口嗨农民工1 小时前
exiftool 分析jpeg图片使用
linux
大明者省1 小时前
pycharm解释器使用anaconda建立的虚拟环境里面的python,无需系统里面安装python。
linux·python·pycharm
WillWolf_Wang1 小时前
Linux 编译 Android 版 QGroundControl 软件并运行到手机上
android·linux·智能手机
岚天start1 小时前
Shell脚本一键监控平台到期时间并钉钉告警推送指定人
linux·shell·钉钉告警·计划任务·监控到期·平台到期
MyFreeIT2 小时前
MySQL Function
数据库·mysql