介绍
如果您发现自己与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
您应该看到以下内容:
尝试登录数据库,输入数据库系统,用户名和密码。如果在本地服务器上执行此操作,则不必为服务器命名。成功登录后,您应该会看到类似于下图的内容:
如果您在访问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文件来创建自己的自定义主题。
插件定制
管理员被设计为允许通过第三方插件进行扩展。我将通过安装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可视化其架构。下图是不同用法示例的屏幕截图。
添加用户:(您可以在列级别指定权限。此外,您还可以为例程指定权限)
创建一个表和相应的列:
因此,在制作了更多表之后,让我们浏览数据库模式(如果在表之间建立外键,则Adminer将显示相应的链接!):
您可以在服务器,数据库,表,列和例程级别上管理用户的特权:
管理员还支持每个数据库系统的所有数据类型(您是否知道PostgreSQL支持IP地址数据类型?!):
有很多还有更多内容要在Adminer中介绍,但我会继续留给您进一步研究。
结论
总之,Adminer是许多知名数据库系统的极其强大的界面。它是功能齐全的php Web应用程序,小于500KB。 Adminer允许您从本地Web或通过网络管理数据库。它的许多功能(本文未介绍)包括打印服务器进程列表和终止胭脂进程,管理事件分区(在MySQL中),将表结构导出为各种格式,管理视图,触发器,插入和编辑的功能。现有数据记录。它是一个相当广泛的应用程序,请立即查看。