TranslateProject/published/201506/20150413 How to manage remote MySQL databases on Linux VPS using a GUI tool.md
2015-07-01 00:16:33 +08:00

177 lines
9.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

如何使用图形化工具远程管理 Linux上的MySQL
================================================================================
如果你在一个远程的VPS上运行了MySQL服务器你会如何管理你的远程数据库主机呢基于web的数据库管理工具例如[phpMyAdmin][2]或者[Adminer][3]可能会是你第一个想起的。这些基于web的管理工具需要一个正常运行的后端的web服务和PHP引擎。但是如果你的VPS仅仅用来做数据库服务(例如,数据库与其它服务独立存放的分布式结构)为偶尔的数据库管理提供一整套的LAMP是浪费VPS资源的。更糟的是LAMP所打开的HTTP端口可能会成为你VPS资源的安全漏洞。
作为一种选择你可以使用在一台客户机上运行本地的MySQL客户端当然如果没有别的选择一个纯净的MySQL命令行客户端将是你的默认选择。但是命令行客户端的功能是有限的因为它没有生产级数据库管理功能例如可视化SQL开发、性能调优、模式验证等等。你是否在寻找一个成熟的MySQL管理工具那么一个MySQL的图形化管理工具将会更好的满足你的需求。
###什么是MySQL Workbench?
作为一个由Oracle开发的集成的数据库管理工具[MySQL Workbench][4]不仅仅是一个简单的MySQL客户端。简而言之Workbench是一个跨平台的Linux,MacOX,Windows数据库设计、开发和管理的图形化工具。MySQL Workbench 社区版是遵循GPL协议的。作为一个数据库管理者你可以使用Workbench去配置MySQL服务、管理MySQL用户、进行数据库的备份与还原、监视数据库的健康状况所有的都在对用户友好的图形化环境下处理。
在这个手册里让我们演示下如何在Linux下安装和使用MySQL Workbench。
###在Linux上安装MySQL Workbench
你可以在任何一个桌面linux机器上运行MySQL Workbench来设置你的数据库管理环境。虽然一些Linux发行版例如Debian/Ubuntu在他们的软件源中已经有了MySQL Workbench但是从官方源中安装是一个好的方法因为他们提供了最新的版本。这里介绍了如何设置一个官方的Workbench软件源和从中安装它。
#### 基于 Debian 的桌面 (Debia, Ubuntu, Mint): ####
到其[官方站点][5]选择一个和你环境匹配的DEB文件并下载安装
例如,对于 Ubuntu 14.10
$ wget http://dev.mysql.com/get/mysql-apt-config_0.3.4-2ubuntu14.10_all.deb
$ sudo dpkg -i mysql-apt-config_0.3.4-2ubuntu14.10_all.deb
对于 Debian 7
$ wget http://dev.mysql.com/get/mysql-apt-config_0.3.3-1debian7_all.deb
$ sudo dpkg -i mysql-apt-config_0.3.3-1debian7_all.deb
当你安装DEB文件时你会看到下面的配置菜单并且选择配置那个MySQL产品
![](https://farm8.staticflickr.com/7702/16928715218_b1fcbcdbf3_c.jpg)
选择“Utilities”。完成配置后选择“Apply”去保存配置。然后更新包索引并且安装Workbench。
$ sudo apt-get update
$ sudo apt-get install mysql-workbench
#### 基于 Red Hat 的桌面 (CentOS, Fedora, RHEL): ####
去官网下载并安装适合你Linux环境的RPM源包。
例如,对于 CentOS 7
$ wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
$ sudo yum localinstall mysql-community-release-el7-5.noarch.rpm
对于 Fedora 21
$ wget http://dev.mysql.com/get/mysql-community-release-fc21-6.noarch.rpm
$ sudo yum localinstall mysql-community-release-fc21-6.noarch.rpm
验证"MySQL Tools Community"源是否被安装:
$ yum repolis enabled
![](https://farm9.staticflickr.com/8826/16494069254_15458ace52_c.jpg)
安装Workbench
$ sudo yum install mysql-workbench-community
###设置远程数据库的安全连接
接下来是为你运行MySQL服务的VPS设置一个远程连接。当然你可以直接通过图形化的Workbench连接你的远程MySQL服务器在数据库开放了远程连接后。然而这样做有很大的安全风险因为有些人很容易窃听你的数据库传输信息并且一个公开的MySQL端口默认为3306会是另外一个攻击入口。
一个比较好的方法是关掉远程访问数据库服务功能仅允许在VPS 上的127.0.0.1访问。然后在本地客户机和远程VPS之间设置一个SSH隧道这样的话和MySQL之间的数据能安全地通过它的本地回环接口上中继。相比较设置一个SSL加密的连接来说配置SSH隧道需要很少的操作因为它仅仅需要SSH服务并且在大多数的VPS上已经部署了。
让我们来看看如何来为一个MySQL Workbench设置一个SSH隧道。
在这个设置里不需要你开放远程访问MySQL服务。
在一个运行了Workbench的本地客户机上键入下面的命令替换'user'(远程 VPS 的用户名)和'remote_vps'(远程 VPS 的地址)为你自己的信息:
$ ssh user@remote_vps -L 3306:127.0.0.1:3306 -N
你会被要求输入你VPS的SSH密码当你成功登陆VPS后在本地的3306端口和远程VPS的3306端口之间将会建立一个SSH隧道。这里你不会在前台看到任何信息显示。
或者你可以选择在后台运行SSH隧道按CTRL+Z停止当前的命令然后输入bg并且ENTER
![](https://farm8.staticflickr.com/7714/16928715438_bf0db49b3b_c.jpg)
这样SSH隧道就会在后台运行了。
###使用MySQL Workbench远程管理MySQL服务
在建立好SSH隧道后你可以通过MySQL Workbench去远程连接MySQL服务了。
输入下面命令启动Workbench
$ mysql-workbench
![](https://farm9.staticflickr.com/8768/16494069294_0fce571ddb_c.jpg)
点击Workbench页面上面的“加号”图标去创建一个新的数据库连接接着会出现下面的连接信息。
- **Connection Name**: 任意描述 (例如: My remote VPS database)
- **Hostname**: 127.0.0.1
- **Port**: 3306
- **Username**: MySQL 用户名 (例如 root)
![](https://farm8.staticflickr.com/7727/16928715288_d9ac3bfc7a_c.jpg)
注意因为隧道设置的是127.0.0.1:3306所以主机名字段必须是127.0.0.1而不能是远程VPS的IP地址或者主机名。
当你设置好一个新的数据库连接后你会在Workbench窗口看到一个新的框点击那个框就会实际去连接远程的MySQL服务了。
![](https://farm8.staticflickr.com/7650/17114969532_0252ffcd31_c.jpg)
当你登录到MySQL 服务器后,你可以再左侧面板看到各种管理任务。让我们来看一些常见的管理任务。
#### MySQL Server Status ####
该菜单显示了展示数据库服务器的资源使用情况的实时监控面板。(例如:流量、链接、读写)
![](https://farm8.staticflickr.com/7627/16494069414_9d838d4138_c.jpg)
#### Client Connections ####
客户端连接数是一个极其重要的监控的资源,这个菜单显示了每个连接的详细信息。
![](https://farm9.staticflickr.com/8747/16909119337_a8d89772dd_c.jpg)
#### 用户和权限 ####
这个菜单允许你管理MySQL用户包括他们的资源限制和权限。
![](https://farm9.staticflickr.com/8765/16494069384_760fc17c8f_c.jpg)
#### MySQL Server Administration ####
你可以启动或关闭MySQL服务并且检查它的服务日志。
![](https://farm8.staticflickr.com/7588/17114969592_54526dfb32_c.jpg)
#### Database Schema Management ####
可以可视化的查看、更改、检查数据库结构在“Schemas”标题下选择任何一个数据库或表然后右击
![](https://farm8.staticflickr.com/7665/16496363973_fd03a96198_c.jpg)
![](https://farm9.staticflickr.com/8744/16909119497_7c884617b8_c.jpg)
#### Database Query ####
你可以执行任何的语句(只要你的权限允许),并且检查其结果。
![](https://farm8.staticflickr.com/7716/17114969692_c0f02bb277_c.jpg)
此外性能统计数据和报表仅用于MySQL5.6以上的版本。对于5.5及其以下的版本,性能部分会以灰色显示。
### 结论 ###
简介且直观的选项卡界面丰富的特性开源使MySQL Workbench成为一个非常好的可视化数据库设计和管理工具。为其减分的是它的性能。我注意到在一台运行繁忙的服务器上Workbench有时会变得异常缓慢尽管它的性能差强人意我依然认为MySQL Workbench是MySQL数据库管理员和设计人员必备的工具之一。
你曾在你的生产环境中用过Workbench吗或者你还有别的GUI工具可以推荐请分享你的经验吧。
--------------------------------------------------------------------------------
via: http://xmodulo.com/remote-mysql-databases-gui-tool.html
作者:[Dan Nanni][a]
译者:[tyzy313481929](https://github.com/tyzy313481929)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://xmodulo.com/author/nanni
[1]:http://xmodulo.com/go/digitalocean
[2]:http://ask.xmodulo.com/install-phpmyadmin-centos.html
[3]:http://xmodulo.com/set-web-based-database-management-system-adminer.html
[4]:http://mysqlworkbench.org/
[5]:http://dev.mysql.com/downloads/repo/apt/
[6]:http://dev.mysql.com/downloads/repo/yum/
[7]:http://xmodulo.com/how-to-allow-remote-access-to-mysql.html