当前位置: 首页>>技术教程>>正文


使用管理员来管理数据库

, ,

介绍

如果您发现自己与MySQL,PostgreSQL,MS SQL,Oracle甚至SQLite等数据库系统进行交互,有时您会发现使用GUI而不是使用默认管理实用程序(通常是使用GUI)来执行某些任务更为方便。从数据库系统本身提供的CLI运行)。你们中有些人可能已经在使用其他工具,例如phpMyAdmin或phpPgAdmin。本文将讨论另一种称为Adminer的基于Web的数据库管理工具。管理员可以管理上述所有数据库系统。本文介绍Debian(& Ubuntu),Fedora和ArchLinux。

从其网站:管理员(以前称为phpMinAdmin)是用PHP编写的full-featured数据库管理工具。与phpMyAdmin相反,它由一个准备好部署到目标服务器的文件组成。管理员可用于MySQL,PostgreSQL,SQLite,MS SQL和Oracle

管理员拥有一个完整的致力于将其自身与phpMyAdmin进行比较。 Adminer中phpMyAdmin中缺少或不完整的一些显著功能包括:完全支持视图,完全支持触发器,事件,函数,例程以及对数据进行分组并将功能应用于选定数据中的数据(仅举几例) 。本文将介绍其安装,配置,自定义以及MySQL和PostgreSQL的一些用法示例。

先决条件

  • 对Web管理和开发有一定的了解(HTML,CSS,PHP和Apache)
  • 本文假设您已经配置了Apache,PHP和您选择的数据库系统。
  • 我将在上网本上运行的本地开发LAMP堆栈上运行Adminer


安装

如果您去管理员的主页并尝试下载,该站点将为您提供.php文件。管理员是一个独立的.php文件。如果您使用的是ArchLinux,则AUR中提供了一个软件包。 Debian或Fedora的软件包不存在。不用担心,我们将遵循。首先为Adminer创建一个目录(/usr /share /webapps /adminer),然后通过发出以下命令将adminer.php下载到该目录(作为index.php)。linux命令序列:

# mkdir /usr/share/webapps/adminer
# cd /usr/share/webapps/adminer 
# wget -O index.php http://downloads.sourceforge.net/adminer/adminer-3.3.3.php

PHP可能会呈现在服务器端,而不是提供下载脚本。在这种情况下,请手动将文件下载到/usr /share /webapps /adminer

组态

现在已经安装了管理员,让我们配置Apache并使Adminer可用。将以下内容复制到Debian(& Ubuntu)或Fedora上的’/etc/httpd/conf/extra/httpd-adminer.conf’中:

Alias /adminer "/usr/share/webapps/adminer"
<Directory "/usr/share/webapps/adminer">
        AllowOverride All
        Options FollowSymlinks
        Order allow,deny
        Allow from all
php_admin_value open_basedir "/srv/:/tmp/:/usr/share/webapps/:/etc/webapps:/usr/share/pear/"
</Directory>

最后,通过将以下行添加到/etc/httpd/conf/httpd.conf中,提及上面在http.conf中创建的文件。

Include conf/extra/httpd-adminer.conf

如果您使用的是ArchLinux,请使用以下命令从相应的构建目录(例如/home /$ SOME_USER /builds /apps /adminer)安装Adminer。

$ wget https://aur.archlinux.org/packages/ad/adminer/PKGBUILD
$ makepkg -s
$ sudo pacman -U adminer-$VERSION-$ARCH.pkg.tar.xz 

在ArchLinux上,您仍然需要如Debian和Fedora所述将包含行添加到httpd.conf中。

最后重启Apache:

# /etc/rc.d/httpd restart #for ArchLinux
# service httpd restart #for Fedora
# /etc/init.d/apache2 restart #for Debian or Ubuntu

现在,通过在Web浏览器上转到以下地址,尝试导航到Adminer的登录页面:

127.0.0.1/adminer


您应该看到以下内容:
Default Adminer Login Screen

尝试登录数据库,输入数据库系统,用户名和密码。如果在本地服务器上执行此操作,则不必为服务器命名。成功登录后,您应该会看到类似于下图的内容:

MySQL Session in Adminer

如果您在访问Adminer时遇到任何问题,请尝试重新启动Apache,否则尝试通过将adminer.php放在/srv /http中来查看是否可以访问该文件。就本教程而言,可以将adminer.php下载到/usr /share /webapps /adminer。如果使用此方法安装Adminer,则不必像前面讨论的那样配置httpd.conf。

在下一节中,我将展示如何自定义Adminer的界面,然后讨论如何安装插件。



客制化

定制界面

让我们从自定义管理员界面开始。首先导航回Adminer的网站,然后转到页面的皮肤部分,标题为“其他设计”,或单击这里。找到您喜欢的主题(我在第一列中选​​择一个主题,第二个选择),并将其下载到您将adminer.php安装到的目录(/usr /share /webapps /adminer)。

现在刷新Adminer,您应该看到与下图类似的内容。由于Adminer是一个Web应用程序,因此您可以通过编辑下载的CSS文件来创建自己的自定义主题。

Adminer Login Screen & CSS

插件定制

管理员被设计为允许通过第三方插件进行扩展。我将通过安装enum-option插件来显示一个示例。在应用此插件之前,使用HTML单选按钮显示枚举数据(请参见下文):

使用此插件后,现在可以使用HTML下拉菜单选择枚举数据。首先创建一个文件adminer-plugins.php,该文件应位于Adminer目录中。将以下代码放在该文件中:

<?php
function adminer_object() {
    // required to run any plugin
    include_once "./plugins/plugin.php";
    
    // autoloader
    foreach (glob("plugins/*.php") as $filename) {
        include_once "./$filename";
    }
    
    $plugins = array(
        // specify enabled plugins here
        #new AdminerDumpXml,
        #new AdminerTinymce,
        #new AdminerFileUpload("data/"),
        #new AdminerSlugify,
        #new AdminerTranslation,
        #new AdminerForeignSystem,
	new AdminerEnumOption #Plugins not in use are disabled in this array, 
			#I added my plugin here (defined as a class within its php code)
    );
    
    /* It is possible to combine customization and plugins:
    class AdminerCustomization extends AdminerPlugin {
    }
    return new AdminerCustomization($plugins);
    */
    
    return new AdminerPlugin($plugins);
}

// include original Adminer or Adminer Editor
include "./index.php"; #For our example you should rename adminer.php to index.php
?>

创建一个sub-directory “plugins”。现在安装位于的plugin.php文件这里到那个sub-directory。接下来,将要使用的插件与plugin.php一起安装。就我而言,我下载了enum-option插入。

目录结构应如下所示:

adminer.css  adminer-plugins.php  index.php  plugins

./plugins:
enumoption.php  plugin.php

要对其进行测试,请浏览至127.0.0.1/adminer/adminer-plugins.php。尝试编辑定义为枚举数据类型的数据。您应该看到类似于以下内容:

太酷了吗?



用法

因此,大多数用法示例对于经验丰富的DBA来说都是不言而喻的。我将使示例保持简单,但尝试介绍一些我认为有用的东西。成功登录到Adminer后,应该显示以下屏幕。

Adminer list of databases

在这里,您可以浏览现有数据库,管理全局权限,查看数据库系统进程列表,系统变量和系统状态,执行自定义命令等。现在,我将创建一个数据库和一些表。然后,我将使用Adminer可视化其架构。下图是不同用法示例的屏幕截图。

添加用户:(您可以在列级别指定权限。此外,您还可以为例程指定权限)

Creating users in Adminer

创建一个表和相应的列:



creating tables

因此,在制作了更多表之后,让我们浏览数据库模式(如果在表之间建立外键,则Adminer将显示相应的链接!):

Adminer Schema preview

您可以在服务器,数据库,表,列和例程级别上管理用户的特权:



Managing users in Adminer

管理员还支持每个数据库系统的所有数据类型(您是否知道PostgreSQL支持IP地址数据类型?!):

PostgreSQL various data types

很多还有更多内容要在Adminer中介绍,但我会继续留给您进一步研究。

结论

总之,Adminer是许多知名数据库系统的极其强大的界面。它是功能齐全的php Web应用程序,小于500KB。 Adminer允许您从本地Web或通过网络管理数据库。它的许多功能(本文未介绍)包括打印服务器进程列表和终止胭脂进程,管理事件分区(在MySQL中),将表结构导出为各种格式,管理视图,触发器,插入和编辑的功能。现有数据记录。它是一个相当广泛的应用程序,请立即查看。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7912.html,未经允许,请勿转载。