首页 > 数据库 >详解MySQL数据库和部署

详解MySQL数据库和部署

时间:2025-01-15 09:57:21浏览次数:3  
标签:数据库 sudo 详解 mysqld mysql MySQL root

部署一个基本的数据库系统通常包括以下几个步骤:规划、安装、配置、安全设置、测试以及日常工作。下面以部署MySQL数据库维护为例进行详细讲解:


1. 规划

在部署数据库前需要明确以下内容:

  • 用途:明确数据库的使用场景(例如Web应用、数据分析)。
  • 环境:选择操作系统(如CentOS 7)、硬件资源(CPU、内存、存储)、网络设置(IP 和端口)。
  • 数据库版本:选择适合的数据库版本(如MySQL 8.0)。

2. 安装

2.1 更新系统

保证机构是最新状态:sudo yum update -y

2.2 安装 MySQL
  1. 添加MySQL官方YUM仓库:sudo rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
  2. 安装MySQL:sudo yum install -y mysql-server
  3. 启动并设置开机自启动:sudo systemctl start mysqld
    sudo systemctl enable mysqld
    3.1 获取默认root密码

    MySQL安装后,会生成一个默认root用户密码:sudo grep 'temporary password' /var/log/mysqld.log

    3.2 执行安全配置

    运行MySQL提供的安全脚本:sudo mysql_secure_installation

  • 设置新密码:输入安全密码。
  • 删除匿名用户:是的。
  • 禁止root远程登录:是(如有必要)。
  • 删除数据库测试:是。
  • 重新加载权限表:是。
3.3 配置文件修改

MySQL配置文件路径通常为/etc/my.cnf。可根据需求修改参数:

[mysqld]
bind-address=0.0.0.0   # 允许远程连接
max_connections=200    # 设置最大连接数
default-authentication-plugin=mysql_native_password
保存后重启MySQL:sudo systemctl restart mysqld

4.安全设置

4.1 我们的客户

避免直接使用root,创建​​一个具有特定权限的用户:

CREATE USER 'user1'@'%' IDENTIFIED BY 'SecurePassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

4.2 配置防火墙
  1. 开放MySQL默认端口3306:sudo firewall-cmd --add-service=mysql --permanent
    sudo firewall-cmd --reload
  2. 验证端口是否开启:sudo netstat -tuln | grep 3306

 

5. 测试

  1. 使用命令行登录:mysql -u user1 -p -h 127.0.0.1
  2. 检查连接和查询功能:

SHOW DATABASES;
CREATE DATABASE testdb;
USE testdb;
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100));
INSERT INTO users (name) VALUES ('Alice');
SELECT * FROM users;
 

6. 日常维护

6.1 数据备份
  • 使用mysqldump备份:mysqldump -u root -p --all-databases > /backup/all_databases.sql

恢复数据 

mysql -u root -p < /backup/all_databases.sql

6.2 性能监控
  • 查看当前连接和运行状态:        

SHOW PROCESSLIST;
SHOW STATUS;
优化表: 

OPTIMIZE TABLE users;
 

 

6.3 日志管理

检查 MySQL 日志(如错误日志)以排查问题:sudo tail -f /var/log/mysqld.log

7. 总结

以上为基本部署数据库的详细流程。从安装到配置、设置,再到后续维护,都需要安全的操作。根据实际需求,可能需要额外优化数据库参数、配置主从复制、搭建高可用云服务等。根据需要随时调整和扩展。

 

 

标签:数据库,sudo,详解,mysqld,mysql,MySQL,root
From: https://blog.csdn.net/2402_86725606/article/details/145153849

相关文章

  • MySQL数据库出现乱码怎么解决
    为什么我的数据库总会出现中文乱码的情况。一堆中文乱码不知道怎么回事?当向数据库中写入创建表,并插入中文时,会出现这种问题。此报错会涉及数据库字符集的问题。.1解决乱码的几个方面对于中文乱码的情况,从三个方面数据终端:就是我们连接数据库的工具设置为utf8操作系统层面:l......
  • MySQL 权限详解
    All/AllPrivileges权限代表全局或者全数据库对象级别的所有权限Alter权限代表允许修改表结构的权限,但必须要求有create和insert权限配合。如果是rename表名,则要求有alter和drop原表,create和insert新表的权限Alterroutine权限代表允许修改或者删除存储过程、函数的权限......
  • MySQL出现乱码怎么解决
    为什么我的数据库总会出现中文乱码的情况。一堆中文乱码不知道怎么回事?当向数据库中写入创建表,并插入中文时,会出现这种问题。此报错会涉及数据库字符集的问题。.1解决乱码的几个方面对于中文乱码的情况,从三个方面数据终端:就是我们连接数据库的工具设置为utf8操作系统层面:l......
  • 跟我一起学 Python 数据处理(三十九):数据库世界的探秘之旅
    跟我一起学Python数据处理(三十九):数据库世界的探秘之旅在数据的广袤天地中,我们始终秉持着共同学习、共同进步的理念,希望能引领大家逐步深入Python数据处理的核心领域。上一篇博客我们了解了数据存储的基础要点和案例实战,今天将聚焦于数据库这个关键部分,为大家详细剖析其......
  • 【MySQL】简单解析一条SQL查询语句的执行过程
    1.MySQL的逻辑架构图MySQL架构主要分为Server层和存储引擎层。Server层集成了连接器、查询缓存、分析器、优化器和执行器等核心组件,负责提供诸如日期、时间、数学和加密等内置函数,以及实现存储过程、触发器、视图等跨存储引擎的功能。存储引擎层则负责数据的实际存......
  • MYSQL学习笔记(一):准备数据和数据库的最基本命令
    前言:学习和使用数据库可以说是程序员必须具备能力,这里将更新关于MYSQL的使用讲解,大概应该会更新30篇+,涵盖入门、进阶、高级(一些原理分析);这一篇是入门准备数据和一些关于数据库的操作命令;虽然MYSQL命令很多,但是自己去多敲一点,到后面忘记了,查一下就可以回忆起来使用了;这......
  • pyqt+mysql实现学生学籍管理系统(带.sql和.ui文件)
    所有文件已经上传至https://github.com/shuimqy/Student-Information-Management-System-implemented-with-Qt.git需要的话可自行下载,自己写的数据库大作业,尽量不要照搬提交。如果对你有帮助的话,点个赞吧,有问题欢迎留言!下面是我的涉及过程即设计报告。需求分析概念结构......
  • Java 语法糖详解
    什么是语法糖?语法糖(SyntacticSugar) 也称糖衣语法,是英国计算机学家Peter.J.Landin发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。简而言之,语法糖让程序更加简洁,有更高的可读性。 有意思的是,在编程领域,除了语法糖......
  • 智能合约中的多个函数重入攻击(Reentrancy Attack)详解
    简介在区块链智能合约开发中,重入攻击(ReentrancyAttack)是一种非常危险的漏洞类型。攻击者通过利用合约内函数之间的调用漏洞,可能会重复调用某个函数或多个函数,从而导致不正常的行为,甚至损失资金。通常,重入攻击依赖于合约执行过程中状态更新与外部合约交互的顺序错误。在这篇......
  • MySQL基础 数据库表的增删改
    Mysql数加科技整理一、原理定义概念定义数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。数据库是长期储存在计算机内、有组织的、可共享的数据集合。分类:​ 非结构化数据:​ 数据相对来讲没有固定的特点,这种数据非常不便于检索......