热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

MySQL管理介绍_MySQL

MySQL管理介绍
在运行数据库系统时, MySQL的使用相当简单,且进行MySQL安装和使用所需的工作也很少。MySQL的简单性可能就是它极为普及的原因,尤其是在非程序员人群中的普及。当然,它对于训练有素的计算机专业人员也是有帮助的,但肯定不是对运行一个成功的MySQL安装程序的需求。

然而,不论您是什么级别的专家, MySQL的安装程序都不能自动运行。必须有人来监视它以确保它能顺利和有效地运行,有时还必须知道当问题出现时应该做什么。如果问题偶然地落到了您的头上,要想确保MySQL的正常,应继续阅读本书。

在本书的第三部分中,我们将讨论关于MySQL管理的各个方面。本章给出了您应当了解的,并包含在管理MySQL安装程序中的有关职责内容的概述,还提供了对这些职责的简单描述,并在后面的几章中给出执行它们的指导。

如果您是一位新手或毫无经验的MySQL管理员,可千万别让本章出现的冗长的职责清单吓着。下面小节中所列出的每个任务都是重要的,但是,您不需要马上学习它们。如果您希望这样做的话,可将本章节的内容作为参考来使用,当感觉需要知道其内容时可查找这些主题。

如果您有管理其他数据库系统的经验,将会发现:运行MySQL的安装程序在某些方面是类似的,您的经验也是用得着的。但是MySQL的管理有自己独特的需求,本书的这个部分将帮助您熟悉这些内容。

管理职责概述

MySQL数据库系统由几部分组成。您应该熟悉这些组成部分的内容和每个部分的目的。这需要您了解所管理系统的特征以及帮助您进行管理的可用工具。如果您花时间去了解了要监督的内容,工作将会变得非常容易。为此,您应当使自己熟悉MySQL的以下几个方面:

MySQL服务器。服务器mysql执行数据库和表的所有操作。safe_mysqld 是一个相关的程序,它用于启动服务器、监控服务器和重新启动服务器。

MySQL客户机和实用程序。有几个MySQL程序,可用来帮助您与服务器进行通信和执行管理的任务。其中最重要的几个是:

mysql,一个交互式程序,允许将SQL 语句发布到服务器上并浏览其结果。

mysqla d m i n,一个管理程序,允许执行诸如关闭服务器以及创建或删除数据库的工作。如果服务器运行不正常,还可以用mysqladmin 来检查服务器的状态。

isamchk 和my i s a m c h k,这些实用程序帮助您完成表的分析和优化,以及在表损坏时进行崩溃恢复。

mysqld um p,一个工具,用于备份数据库或将数据库拷贝到另一个服务器中。

服务器的语言,SQL。有些管理职责只能用mysqladmin 的命令行实用程序来完成,但是,如果您还能用服务器自己的语言来同服务器进行对话,那就更好了。作为简单的例子,您可能需要查找用户特权不按您所希望的方式进行工作的原因。没有任何替代品能够参与并与服务器直接通信。可通过使用mysql客户机程序发布能够检验授权表的SQL 查询来做到这一点。如果您的MySQL版本还未引入GRANT 语句,则需要使用mysql首先设置每个用户的权限。

如果您不知道SQL 的任何内容,至少必须对SQL要有基本的了解。缺乏对SQL 的熟悉只会给您带来困惑,而在学习SQL 上所花费的时间将会得到成倍的回报。真正掌握SQL 要花费一些时间,但掌握基本技能则很快。如果您需要了解对SQL 和mysql命令行客户机的介绍内容,请参阅第1章的“MySQL和SQL 介绍”

MySQL数据目录。数据目录是服务器存储其数据库和状态文件的所在。了解数据目录的结构及内容是很重要的,您可以知道服务器是怎样使用文件系统来表现数据库和表的,以及像日志这样的文件的存放位置和其内容。还应该了解在文件系统中管理磁盘空间分配的选项,当发现放置数据目录的文件系统过满时可以进行调整。

常规管理

常规管理主要指处理mysqld、MySQL服务器和提供给用户的访问服务器的操作。在履行该职责时,下列的任务是最重要的:

服务器的启动和关闭。您应该能够从命令行中手工启动和终止服务器,并且在系统启动和关闭时知道怎样进行自动启动和关闭。如果服务器崩溃了或启动不正常的话,了解怎样使服务器再次运行也是重要的。

用户账号维护。应该了解MySQL用户和UNIX 或Windows 用户之间的区别。应该知道怎样通过指定哪些用户可以连接到服务器和从哪里进行连接来建立MySQL用户账号。还应该给新的用户建议合适的连接参数,以使他们成功地连接到服务器。弄清应怎样建立账号不是用户们的工作。

日志文件维护。应该了解可以维护的日志文件的类型,以及在何时和怎样完成日志文件的维护。日志的循环和终止对于防止日志填满文件系统是必要的。

数据库备份和拷贝。数据库备份对服务器系统的崩溃是至关重要的。应该能够将数据库恢复到崩溃时的状态,以便尽可能地减少数据的丢失。请注意,数据库备份与常规的系统备份不同,例如,可通过使用UNIX 的dump 程序来进行。与数据库表相对应的文件在系统备份发生时随服务器活动而变化,因此恢复那些文件将使您的表内部不一致。mysqldump 程序将产生对恢复数据库更有用的备份文件,并允许在不关闭服务器的状态下创建备份。

如果决定在更快的主机上运行数据库,或者想复制数据库,则需要拷贝其内容到另一台机器上。如果需要的话,应该了解进行这项操作的过程。数据库文件是依赖于系统的,因此您不能只拷贝这些文件。

服务器优化。用户想要服务器以最佳状态运行。提高服务器运行性能的最简单方法是购买更多的内存或使磁盘速度更快。但是,这种直截了当的技术并不能代替对服务器工作的了解。应该了解优化服务器操作所用的参数以及如何将这些参数应用在您的环境中。在某些站点中,大多数查询都是检索。而在另一些站点,插入和更新操作占据着优势。选择对哪些参数进行修改将受到站点查询的影响。

多服务器。在某些环境中运行多服务器是有用的。如果保留当前的成品安装程序在适当的位置,或者为不同的用户组提供较好的保密性(后者与ISP 尤其相关),则可以测试新的MySQL版本。对于这些情形,您应该了解怎样建立多个同时发生的安装。

MySQL更新。由于新的MySQL版本频繁出现,应该知道怎样始终跟上这些版本以便利用故障修复和新的特性。需要了解不进行版本升级的理由,并且掌握怎样在稳定版本和开发者版本之间进行选择。

安全性

当运行MySQL安装程序时,确保用户所存储的数据的安全性是很重要的。MySQL管理员有责任控制对数据目录和服务器的访问,并应了解以下的问题:

文件系统的安全性。UNIX 机器可能会使几个用户账号成为宿主账号,而这些账号都没有与MySQL相关的管理职责。确保这些账号没有对数据目录的访问是重要的。因为这样可以防止它们通过拷贝数据库表或移动数据库表,或者通过能够读取包含敏感信息的日志文件来损坏文件系统级的数据。您应该知道如何建立MySQL服务器的UNIX用户账号,如何建立该用户所拥有的数据目录,以及如何启动服务器以便利用该用户的权限运行。

服务器的安全性。必须了解MySQL的安全系统是怎样进行工作的,以便在建立用户账号时授予适当的权限。通过网络连接到服务器的用户只允许做他们应该做的事情。您不要由于对安全系统的错误理解,将超级用户的访问权授予匿名用户。

数据库修复和维护

所有的MySQL管理员都希望避免处理破坏的或毁坏的数据库表。但是愿望不能代替现实。以下几个步骤可以使您在问题发生时减少风险并学会怎样处理问题:

崩溃恢复。如果尽管您做了最好的努力但灾难还是降临了,则应该知道如何修复或恢复表。很少会用到崩溃恢复,但当使用它时,它是一个令人讨厌的、高强度的工作(尤其是当您正在忙乱地修正某些内容时,电话铃响了或有人敲门)。然而,您必须知道怎样处理它,否则用户将会很不高兴。要熟悉isamchk 和myisamchk 的表的检查以及修复能力;要知道如何尽可能地从备份文件中恢复,并且知道怎样使用该更新日志来恢复备份之后所产生的修改。

预防性维护。预防性维护的常规程序应适当地进行安置,以使数据库破坏和毁坏的可能性最小化。当然,您还要进行备份,但是,预防性维护将减少使用这些备份的机会。

以上综合地概括了作为MySQL管理员应承担的职责。第10章将详细讨论这些职责并提供操作过程,以便有效地履行这些职责。我们将首先讨论MySQL数据目录,这是您正在管理的资源,因此应该了解其布局和内容。然后再讨论常规的管理职责、MySQL安全系统,以及维护和故障排除。

推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 从高级程序员到CTO的4次能力跃迁!如何选择适合的技术负责人?
    本文讲解了从高级程序员到CTO的4次能力跃迁,以及如何选择适合的技术负责人。在初创期、发展期、成熟期的每个阶段,创业公司需要不同级别的技术负责人来实现复杂功能、解决技术难题、提高交付效率和质量。高级程序员的职责是实现复杂功能、编写核心代码、处理线上bug、解决技术难题。而技术经理则需要提高交付效率和质量。 ... [详细]
author-avatar
手机用户2502900835
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有