MySQL 图形化管理工具介绍


MySQL 有许多图形化的管理工具,我们在此介绍二个官方的工具「MySQL Administrator」及「MySQL Query Browser」。MySQL Administrator 是用来管理 MySQL Server 用的,您可以查看目前系统状态、新增使用者等。而 MySQL Query Browser 可以用来查看数据库内容。

我们可以在一台 Windows 的机器上使用图形化的管理工具,或者是在本机的 XWindow 中执行也可以。如果要从另一台计算机联机到 MySQL,则在使用这些工具连到 MySQL 之前,您必须先新增具有权限从远方联机到 MySQL 的使用者。假设我们要新增一个使用者 root,它可以从 192.168.0.2 这台机器联机到 MySQL,而密码为 mypasswd,则可以使用下列指令:

mysql> GRANT ALL on *.* to root@192.168.0.2 IDENTIFIED BY 'mypasswd';
Query OK, 1 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

19.5.1 MySQL Administrator

请先到 MySQL 网站下载 MySQL Administrator,并执行安装,安装后请执行 MySQL Administrator。执行后,您会看到下列画面:

图 19-1

请在 Server Host 字段中输入 MySQL Server 的 IP,并输入使用者名称及密码。登入后的第一页,您可以看到目前 MySQL 的状态。如果您的 Server 和 MySQL Administrator 是在同一台机器上,则可以对 MySQL 进行更多的控制,例如停用 MySQL 等。

MySQL Administrator 的管理界面使用上很容易,您可以自已点点看有什么功能,这里我们只介绍如何使用它来新增使用者。首先,请在右边选单中选取「User Administration」,接着在下图标示 2 的地方按鼠标右键,然后选择「Add new User」。

图 19-2

然后您就可以在 MySQL User 字段中输入使用者名称,并输入密码。输入完后请按「Apply changes」以套用设定。

接下来我们可以再进一步设定使用者 john 设定权限。假设我们希望设使用者 john 只可以对数据库 www 进行 SELECT、INSERT、UPDATE、及 DELETE 的指令,则可以点选「Schema Privileges」标签,并选取好权限后,按下图 3 的按钮以新增权限。最后请点选「Apply changes」以套用设定。

图 19-3

最后,我们要设定使用者可以从什么地方联机到 MySQL Server,请对着该使用者按右键,并选择「Add Host From Which The User Can Connect」,接着输入 IP 即可。

图 19-4

如果您要删除使用者,只要对着使用者按右键,并选取「Delete User」即可。

19.5.2 MySQL Query Browser

MySQL Query Browser 一样可以从 MySQL 官方网站下载。下载并安装后,就可以执行 MySQL Query Browser 了。执行 Query Browser 后,会出现一个要求登入的窗口,同样的,您必须输入账号、密码及所要联机的主机。

如果您已经安装了 MySQL Administrator,您可以直接从 MySQL Administrator 中执行 Query Browser,而且不必再输入账号密码:

图 19-5

在 MySQL Query Browser 中,我们可以建立删除数据库、数据表、查询数据库中的数据。如果您要建立一个新的数据库,请对着下图中 1 的位置按鼠标右键,再点选「Create New Schema」,最后输入数据库名称即可。

图 19-6

建立了数据库后,我们可以再建资料表。请对着我们刚建立的数据库按鼠标右键,再点选「Create New Table」即出现下列窗口:

图 19-7

请在「Table Name」中输入表格名称,并在上图 2 的部份输入每一个字段的类别,最后按「Apply Changes」即可。建立数据库后,您就可以在 Query Browser 中输入、检视数据库中的数据。只要对着刚才建立的表格点二下,并点选「Execute」即可查看数据库中的数据。如果您要新增一笔数据,请点选下图中 3 的位置,并选择「Edit」即可进行编辑。

图 19-8

MySQL 图形化接口的使用相当直觉,您只要多试几次就可以明白各种使用方法了。

小提示

如果您想要使用网页接口的 MySQL 管理工具,您可以到 http://www.phpmyadmin.net/ 下载 phpMyAdmin。phpMyAdmin 的设定十分简单,您可以在网络上搜寻到很多相关文件。

19.6 PostgreSQL 安装设定

另一个好用的数据库为 PostgreSQL,这是笔者偏好的数据库,比起 MySQL,它的设定更简单、功能更强大。

我们同样使用 port 来安装 PosgreSQL:

# cd /usr/ports/databases/postgresql80-server
# make install clean

执行了 make install 之后,会出现一个进阶设定的窗口,我们使用预设的设定即可。接着,您将看到一个提示讯息,要求你先行备份原本的数据库。如果您是第一次安装 PostgreSQL,可以直接略过。

安装完成后,我们就可以开始做数据库的初始化了。我们使用下列指令来初始化数据库:

# su -l pgsql -c initdb

这个指令的意思是以使用者 pgsql 的身份执行 initdb。PostgreSQL 安装时会自动建立一个使用者及群组 pgsql,这是 PostgreSQL 预设最高使用者的账号,您可以使用 vipw 来修改该使用者的数据。由于 pgsql 预设使用的 shell 是 sh,笔者习惯使用 tcsh,所以我将该使用者的数据修改如下:

pgsql:*:70:70::0:0:PostgreSQL Daemon:/usr/local/pgsql:/bin/tcsh

初始化数据库后还有一些后续的设定。一开始 PostgreSQL 只允许让 pgsql 这个使用者经由本机联机存取数据库,如果您希望其它使用者可以经由其它机器联机,您必须先修改 ~pgsql/data/postgresql.conf 这个档案。找出 listen_addresses  的部份,并修改如下:

listen_addresses = '*'

listen_addresses 是表示您所要允许联机的 IP 地址,我们填入 * 表示允许任何联机。如果您安装的 PostgreSQL 是 7.x 的版本,您要修改的是这下列一行:

tcpip_socket = true

postgresql.conf 这个档案记录着 PostgreSQL 的其本设定,其中使用 "#" 为首的是批注。其内容包括可以设定所要使用的连接埠、最大联机数量等,不过我们通常没有必要修改它。

接着我们要设定从别的机器联机所使用的认证方式,请编辑 ~pgsql/data/pg_hba.conf,在文件最下方加入下列设定:

# "local" is for Unix domain socket connections only
local   all         all                               trust
host    all         all         127.0.0.1/32          trust
host    all         all         ::1/128               trust
host    all         all         192.168.0.1   255.255.255.0     md5

这里的设定除了第一行是批注外,第二、三、四行表示信任来自本机的联机,只要使用者存在于数据库中就不需要密码,这三行预设就存在于 pg_hba.conf 中。最后一行表示网域 192.168.0.1~192.168.0.255 的联机都要使用 md5 验证密码。

如果您希望在开机时就启动 PostgreSQL,请修改 /etc/rc.conf 并加入下列这一行:

postgresql_enable="YES"

在我们新增其它使用者之前,必须先启动 PostgreSQL ,以下为启动数据库服务的指令:

# /usr/local/etc/rc.d/010.pgsql.sh start

如果您没有在 rc.conf 中加入启动 PostgreSQL 的设定,则上述指令并不会启动 PostgreSQL。

因为 010.pgsql.sh 这支 script 放在 /usr/local/etc/rc.d ,所以在一开机时,系统就会自动执行它来启动 PostgreSQL,如果您要停止 PostgreSQL,只要执行下列指令:

# /usr/local/etc/rc.d/010.pgsql.sh stop

接着我们就可以增加一个可以使用远程联机的使用者:

# su -l pgsql
% createuser -P
Enter name of user to add: alex
Enter password for user "alex":
Enter it again:
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) y
CREATE USER

如此一来我们就可以使用 alex 这个使用者从远程登入了。

19.7 PostgreSQL 管理指令

PostgreSQL 和 MySQL 在指令的应用上有所不同,它将许多管理数据库的指令独立成一个个的执行文件,其中有些指令是使用 psql 为基础所写成的 scripts。例如新增、删除数据库或使用者等指令,都可以直接在命令列执行。以下为常用的指令列表:

指令 用途
createdb 建立一个新的数据库。
dropdb 删除数据库。
createuser 建立数据库使用者。
dropuser 删除数据库使用者。
pg_dump 备份一个数据库。
pg_dumpall 备份所有数据库。
psql 交互式的 SQL 指令工具。

19.7.1 建立及删除使用者

因为 PostgreSQL 安装完毕时只有一个使用者 pgsql,如果您要使用其它使用者登入,您必须先以 pgsql 这个使用者来新增其它使用者账号。首先,我们先将身份切换成 pgsql:

# su -l pgsql

我们使用 su 加上参数 -l 表示模拟使用者真正 login 的情形,也就是会将工作目录切换到 /usr/local/pgsql,并加载该目录中的 .cshrc 等档案。接着我们就可以使用下列指令来建立一个新的使用者了,假设我们要为 root 建立一个账号:

% createuser root
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) y
CREATE USER

如此一来,root 也具有存取数据库的权限了。但因为 PostgreSQL 内定没有密码的使用者不可以使用远程登入,如果您希望所新增的使用者可以使用远程登入,您必须在 createuser 指令加上参数 -P 以输入密码,请注意 P 是大写喔。如果你要从数据库中删除一个使用者账号,只要使用 dropuser 这个指令即可:

% dropuser root

值得注意的是,您无法使用删除你正在使用中的账号,例如以 root 身份来删除 root 是不被允许的。

如果您要修改某个使用者的密码,可以使用下列指令:

# su -l pgsql
% psql template1
Welcome to psql 8.0.3, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit

template1=# ALTER USER pgsql WITH PASSWORD 'mypass';
ALTER USER
template1=# quit

我们先切换身份为 psql 以确保具有权限修改使用者密码,接着我们使用 psql 进入预设的数据库,并使用 ALTER USER 来修改使用者 pgsql 的密码,将密码设为 mypass。最后使用 quit 离开数据库。

19.7.2 建立及删除数据库

在使用数据库之前,我们必须先建立一个数据库。假设我们要建立的数据库名称为 MYDB,您可以使用下列指令加以建立:

% createdb MYDB

在 UNIX 的世界中,大小写是有分别的,在 PostgreSQL 中也是一样。因此,不论是在建立数据库,数据表或其字段时,都要注意大小写。建议您除了数据库名称外,最好全部使用小写。

同样的,如果你要删除一个数据库,只要使用 dropdb 这个指令:

% dropdb MYDB

19.7.3 交互式 SQL 指令

PostgreSQL 的 client 端指令中,功能最强大的莫过于 psql 这个指令了。psql 可以除了让我们进入交互式的 SQL statement 环境外,也可以加上一些参数变成一个直接响应的指令。例如,我们想要查看目前有哪些数据库:

% psql -l
List of databases
Name | Owner | Encoding
-----------+-------+-----------
MYDB | root | SQL_ASCII
template0 | pgsql | SQL_ASCII
template1 | pgsql | SQL_ASCII
(3 rows)

加上 -l 这个参数后,就可以列出所有数据库名称了。除了您所建立的数据库外,还有二个 templateX 的数据库,该数据库存放着 PostgreSQL 的设定,不可以删除。接下来让我们选定一个数据库以进入交互式的窗口:

% psql MYDB
Welcome to psql, the PostgreSQL interactive terminal.
Type:   \copyright for distribution terms
        \h for help with SQL commands
        \? for help on internal slash commands
        \g or terminate with semicolon to execute query
        \q to quit
MYDB=# 

在这里,我们可以使用 19.3 所列出的一些标准的 SQL statement 来存取数据库,例如 create、drop、delete、update、insert、alter 等。建议您进一步至 PostgreSQL 网站参考其使用手册,PostgreSQL 官方网站是 http://www.postgresql.org 。您也可以在下列网址中找到中文的使用手册:http://www.freebsd.org.hk/html/pgsqldoc-7.0c/postgres.htm

在交互式的接口中,您可以使用 \h 及 \? 来查询可以使用的指令。其中 \h 为查询 SQL statement ,而 \? 则是常询 PostgreSQL 特有的反斜线指令,我们最常用的反斜线指令有 \q 离开交互式接口,及 \d 列出该数据库的所有数据表。

如果您觉得这种命令列的接口不好使用,我们在下一节将会介绍如何在 MS Windows 使用图形化接口的管理工具。

19.7.4 数据库备份及回复

定期备份数据库是十分重要的一件事,我们一定要养成备份的习惯。在 PostgreSQL 中,备份十分容易,假设我们要备份的数据库是 MYDB,您可以使用下列指令:

% pg_dump MYDB > MYDB.sql

如此一来,你就可以把 MYDB 这个数据库 dump 出来了。然而,数据库的数据往往十分庞大,动辄数十 MB 至数百 MB,为了节省空间,您可以在备份时顺便压缩数据库。以上述指令而言,我们只要将输出导向到 gzip 即可进行同步压缩:

% pg_dump MYDB | gzip > MYDB.sql.gz

我们一般从数据库 dump 出来的数据都是文字文件,所以使用 gzip压缩可以得到很高的压缩比。假设不压缩所备份出来的档案有五十 MB,使用 gzip压缩后大约只剩六百多 KB。因此,我习惯都会加上 gzip压缩。

pg_dump 这个指令只能用来备份单一的数据库,如果您要将所有的数据库中都备份起来,您可以使用 pg_dumpall 来备份:

% pg_dumpall |gzip > ALLDB.sql.gz

有了备份,自然也要回存。由于我们使用 pg_dump 所备份出来的数据库实际上是将一堆数据以 SQL statement 的方式存起来,如果您将该备份的档案以文书编辑器打开,您可以看到它其实是先存放数据库中所有数据表的信息,再将存放数据。所以我们只要将这些指令导向到 psql 来执行即可。首先,请先建立要回存的数据库名称,假设我们要将 MYDB 所备份出来的数据存放在 NEWDB 这个数据库中,我们要先建立一个名为 NEWDB 的数据库:

% createdb NEWDB

接着再使用下列指令来将数据回存:

% cat MYDB.sql | psql NEWDB

如果您备份出来的数据有经过压缩,则需改以下列指令回存:

% gunzip -c MYDB.sql.gz | psql NEWDB

或是

% cat MYDB.sql.gz | gunzip | psql NEWDB

如果您要回存的档案是经由 pg_dumpall 所备份出来的数据,则必须使用 pgsql 这个使用者来执行下列指令:

% gunzip -c ALLDB.sql.gz | psql -e template1

19.8 PostgreSQL 图形化管理工具介绍

许多人可能不太习惯使用命令列来管理数据库,还好 PostgreSQL 提供了许多图形接口的管理工具。您可以在 MS Windows 执行的 pgAdmin。由于这些图形接口操作上比较容易,只要您多试几次,就可以熟悉它们的使用,因此,我们不会深入介绍每个功能的用法。

对于初学者而言,使用 pgAdmin 会比在命令列中输入来得容易。您可以自 http://www.pgadmin.org/ 下载最新版本的 pgAdmin。

安装完成后,我们打开 pgAdmin,按了左上角的图示后即出现联机设定的窗体。请输入您数据库服务器的位置及账号密码,如图 19-9 所示:

图 19-9

请注意,您必须先将 PostgreSQL 的 TCP/IP 联机打开,而且在 pg_hba.conf 中必须允许使用 pgAdmin 的这台主机登入。您可以参考 19.6 中的说明来设定 pg_hba.conf。输入联机数据后,即可开始使用。以建立一个新的数据库为例,我们先在左边的窗口中,对着数据库按右键,再选取 [新物件]->[新建数据库] 如图 19-10 所示:

图 19-10

接着我们可以输入数据库名称、编码方式等,如图 19-11:

图 19-11

我们输入了数据库名称为 test,并指定使用 UNICODE 的编码方式。接下来您可以看到在管理窗口中多了一个数据库「test」,我们可以在此数据库中再建立数据表。请先点选数据库「test」,再选择「模式」->「public」->「数据表」,并对着数据表按右键选择「新建数据表」。

图 19-12

接下来,您就可以输入资料表名称,再选取「资料行」以设定本数据表的字段数据。

图 19-13

在 pgAdmin 的主画面中,最上方有几个功能键,可以让我们手动输入 SQL 指令或是查看数据表内容,建议您可以每一个功能都试试看,以熟悉 pgAdmin 的使用接口。基本上 pgAdmin 十分容易上手,而且也功能十分齐全。

小提示

如果您想要使用网页接口的 PostgreSQL 管理工具,您可以到 http://phppgadmin.sourceforge.net/ 下载 phpPgAdmin。phpPgAdmin 的设定和 phpMyAdmin 一样十分容易,只要您已经安装好网页服务器,就可以使用 phpPgAdmin。

posted @ 2008-10-29 16:00  Jonson Li  阅读(3449)  评论(0编辑  收藏  举报