Hedisql基本操作
要求
HeidiSQL 在 Windows 10 和 11 上运行良好(在 Windows 7 + 8 上运行有一些小问题)。目前在 Wine 上运行 HeidiSQL 相当不稳定。
安装 HeidiSQL 的正常方法是从下载页面下载发行版安装程序。安装后,您可以直接从下载页面或通过 HeidiSQL 本身下载夜间版本(关于 > 检查更新)。
连接到服务器
基本
HeidiSQL 是一个所谓的客户端应用程序,仅当您有 可用的服务器时才可用 。因此,请确保您有一些要连接的 MariaDB、MySQL、MS SQL、PostgreSQL 服务器或 SQLite 数据库文件。
一个简单的设置是在本地主机上安装 MariaDB服务器(相当于特殊 IP 地址127.0.0.1)。在 HeidiSQL 的会话管理器中,您单击“新建”按钮来创建一个新连接,大多数默认设置都已为您设置,除了密码,在新安装的 MariaDB 服务器上密码大多不是空的:
您可以在文件夹中组织存储的会话。要创建文件夹,请单击“新建”按钮上的下拉箭头,然后单击“根文件夹中的文件夹”或“所选文件夹中的文件夹”。拥有文件夹后,您可以在其中创建连接,或将现有连接拖到该文件夹中。
设置与 MariaDB/MySQL/PostgreSQL 的 SSH 隧道连接
如果您的 MariaDB/MySQL/PostgreSQL 服务器位于只能通过 SSH 访问的远程计算机上,那么您仍然可以使用 HeidiSQL 来连接到它。您只需要PuTTY 项目中的附加plink.exe ,将其放置在硬盘上的某个位置,最后告诉 HeidiSQL 它在哪里以及 SSH 凭据 以及MariaDB/MySQL/PostgreSQL 凭据。
请注意,SSH 服务器的默认主机名是您在“设置”选项卡中输入的主机名。HeidiSQL 然后建议 plink.exe 连接到该主机名,或者,当您输入 SSH 主机名时,系统会采用该主机名。此外,“设置”选项卡上的主机名始终用于 plink.exe 中的 -L(监听)选项。
设置示例:
- “设置”选项卡:
- 主机名:“127.0.0.1”
- 密码:[你的mysql密码]
- 端口:大多数情况下为“3306”
- “SSH 隧道选项卡:
- SSH 主机:[您的服务器名称]
- 端口:大多数情况下为“22”
- 用户名:[您的 ssh 用户]
- 密码:[你的ssh密码]
- 本地端口:“3307”
以下错误或类似错误主要是由通往远程服务器的官方 IP 地址的隧道引起的:
在“读取初始通信数据包”时失去与 MySQL 服务器的连接,系统错误:0“内部错误/检查(不是系统错误)”</font></font></blockquote><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">
在这种情况下,请确保您在Settings > Hostname/IP中使用“127.0.0.1”,并在SSH 隧道 > Host中使用服务器的远程 IP 。
命令行开关
虽然 HeidiSQL 是一个纯 GUI 应用程序,但它可以通过命令行参数自动连接和打开文件。参数名称区分大小写,并且基于 MariaDB/MySQL 命令行应用程序(例如 mysqldump)使用的参数名称。
常见陷阱:
- 请务必使用完整文件名(“heidisql.exe”)调用 HeidiSQL,而不是使用短版本(“heidisql”)。HeidiSQL 的命令行解析器期望这种方式。这应该在未来得到解决。
- 参数键可以用=或值中的一个空格分隔,例如-h=localhost
- 包含点的参数必须用双引号引起来。这在传递 IP 地址时很重要: -h=192.168.1.1将仅使用第一个段192,而-h="192.168.1.1"是正确的形式。
Short switch Long switch Description Default value -d --description Session name -n --nettype Network protocol type:
- 0 = MariaDB/MySQL (TCP/IP)
- 1 = MariaDB/MySQL (named pipe)
- 2 = MariaDB/MySQL (SSH tunnel)
- 3 = MSSQL (named pipe)
- 4 = MSSQL (TCP/IP)
- 5 = MSSQL (SPX/IPX)
- 6 = MSSQL (Banyan VINES)
- 7 = MSSQL (Windows RPC)
- 8 = PostgreSQL (TCP/IP)
- 9 = PostgreSQL (SSH tunnel)
- 10 = SQLite
- 11 = ProxySQL Admin
- 12 = Interbase (TCP/IP)
- 13 = Interbase (local)
- 14 = Firebird (TCP/IP)
- 15 = Firebird (local)
0 -h --host Host name -l --library Library or provider (added in v11.1):
- MySQL/MariaDB:
- libmariadb.dll
- libmysql.dll
- libmysql-6.1.dll
- ... any fitting dll from your HeidiSQL directory
- MS SQL:
- MSOLEDBSQL
- SQLOLEDB
- PostgreSQL:
- libpq.dll
- libpq-12.dll
- ... any fitting dll from your HeidiSQL directory
- SQLite:
- sqlite3.dll
- ... any fitting dll from your HeidiSQL directory
- Interbase:
- ibclient64-14.1.dll
- gds32-14.1.dll
- ... any fitting dll from your HeidiSQL directory
- Firebird:
- fbclient-4.0.dll
- ... any fitting dll from your HeidiSQL directory
Depends on the given network protocol, see underlined values -u --user User name -p --password Password -P --port Port
- MySQL/MariaDB: 3306
- MS SQL: 0 (auto-detection by driver, previously 1433)
- PostgreSQL: 5432
- SQLite: no value
- Interbase/Firebird: 3050
-S --socket Socket name, for connecting via named pipe -db --databases Databases, separated by semicolon. Single database on PostgreSQL. Interbase and Firebird expect a local file here. -W --winauth Use Windows authentication: 1 or 0. (MSSQL, MySQL and MariaDB only). 0 -cte --cleartextenabled Enable cleartext authentication: 1 or 0. (MySQL and MariaDB only) 0 --ssl Use SSL. (1=yes, 0=no) 0 -sslpk --sslprivatekey SSL private key -sslca --sslcacertificate SSL CA certificate -sslcert --sslcertificate SSL certificate -sslcip --sslcipher SSL cipher --psettings Custom filename for portable settings. Ignored if file does not exist. portable_settings.txt (if that file exists) 例子:
- 使用会话“xyz”中存储的设置重新开始:
- c:\path\to\heidisql.exe -d=xyz
- c:\path\to\heidisql.exe -description=xyz
- 使用不同的用户名或端口连接:
- c:\path\to\heidisql.exe -d=xyz -u=OtherUser
- c:\路径\to\heidisql.exe -d=xyz -P=3307
- 连接到非存储会话:
- c:\path\to\heidisql.exe -h="127.0.0.1" -u=root -p=Mypass -P=3307
- 在查询选项卡中打开多个 .sql 文件:
- c:\path\to\heidisql.exe fileA.sql path\to\fileB.sql fileC.sql ...
- 使用自定义便携式设置文件:
- c:\path\to\heidisql.exe --psettings=c:\temp\p.txt
数据库树
当数据库中有大量表、视图或其他内容时,您可能希望按类型对它们进行分组,以获得更好的概览。只需右键单击树并激活Tree style options > Group objects by type:
您还可以通过鼠标单击表格的最左侧区域将重要项目标记为所谓的收藏夹。之后,您可以通过单击顶部新的“仅显示收藏夹”按钮将树限制为仅显示收藏夹:
创建表
HeidiSQL 附带功能丰富的 GUI,用于创建和编辑表结构。只需右键单击要在其中创建表的数据库,然后指向“新建”,然后单击“表”:
完成后,您将看到如下图所示的表格编辑器:
创建视图
单击“新建”,然后单击“视图”,显示视图编辑器。创建视图基本上就像编写 SELECT 查询一样。为其命名,然后单击“保存”按钮来创建它。HeidiSQL 在“数据”选项卡中显示视图的数据,就像表一样。
您可能会注意到的一件事是,当您保存视图时,MySQL 和 MariaDB 正在重新格式化视图中的 SELECT 查询。这会破坏缩进,并将整个查询转换为一行。HeidiSQL 尽力通过从服务器上的 *.frm 文件加载视图来恢复视图的原始代码。然而,在许多情况下,这会失败,通常是由于文件权限受限。对于这种情况,使其再次可读的唯一方法是使用 HeidiSQL 的重新格式化程序 (Ctrl+F8)。
创建存储过程
只需右键单击要在其中创建过程的数据库,然后指向“新建”,然后单击“过程”或“函数”。完成后,您将看到如下图所示的过程编辑器:
创建触发器
创建预定事件
数据选项卡
在数据选项卡上,显示当前所选表或视图的内容。这是 HeidiSQL 最有用、最强大的功能之一。您将看到不同数据类型组的不同颜色。这些颜色可在“工具”>“首选项”>“数据外观”中自定义。
按 F2 或在网格单元中长按一次将启动编辑器模式。这将允许您将普通值插入到一行中。要插入特殊值,例如 SQL 函数、NULL 或 GUID,请右键单击单元格,然后指向 插入值 >子菜单。
快速过滤器:右键单击网格中的值,然后单击“快速过滤器”以获得各种一键式选项,以在网格值上创建 WHERE 子句。此过滤器可以基于网格中的焦点单元格、提示值或剪贴板的内容。
在“快速过滤器”子菜单中,您将找到“更多值”子菜单。指向该菜单,HeidiSQL 快速收集并显示焦点列中的前 30 个项目,并按其值进行分组:
在这样的网格中查找特定值可能会很痛苦。对于简单的客户端过滤器,您可以在过滤器面板中输入一些值。在“编辑”>“过滤器”面板中激活它 (Ctrl+Alt+F):
HeidiSQL 还可以帮助您使用搜索和替换对话框(查找模式:Ctrl+F,替换模式:Ctrl+R)。该对话框也可以在 SQL 查询选项卡上使用。
二进制值(也称为 BLOB)默认以十六进制格式显示,这对于人类来说几乎是无法读取的。对于此类 BLOB 包含可读文本的情况,HeidiSQL 提供在十六进制模式和文本模式之间切换。按下或“取消按下”带有紫色“0x”的白色按钮:
也许您有一个包含一个或多个表示 UNIX 时间戳的整数列的表。HeidiSQL 可以将此类整数列显示为日期/时间值,以便您可以更好地阅读它们:
SQL导出
HeidiSQL 可以为您生成漂亮的 SQL 导出文件。这基本上也是 mysqldump 所做的事情。但是,您也可以告诉HeidiSQL将导出的结果放入
- .sql 文件
- ZIP 压缩的 .sql 文件
- 到你的剪贴板
- 同一服务器上的另一个数据库
- 您已配置 HeidiSQL 会话的服务器上的新数据库或现有数据库
- 数据库
- 控制是否 a) 首先删除目标服务器上的现有数据库,然后 b) 创建它。
这是针对目标服务器,而不是源服务器!- 桌子
- 与上面相同,仅适用于表、视图、过程等。选中时,表将首先被删除,和/或随后创建。
- 数据
- 如何在目标服务器上创建行。选择“无数据”以进行仅结构导出。默认为“插入”。
- 最大插入尺寸
- 定义扩展 INSERT 语句的最大大小,该语句可以在一个语句中容纳多行。请注意,MariaDB/MySQL 服务器通过服务器变量max_allowed_packet限制发送到服务器的查询的大小 。请务必在此对话框中使用较低的值,否则 MariaDB/MySQL 将在导入该文件时终止您的连接。
- 输出
- 选择文件名(zip 压缩或未压缩)、HeidiSQL 将在其中放置 .sql 文件的目录、剪贴板、另一个数据库或配置的 HeidiSQL(以及下面的数据库名称)。
- 文件名、目录或数据库
- 取决于您在“输出”下拉菜单中选择的内容。
导入文件
HeidiSQL 可以导入包含数据行和/或结构的 .sql 文件、包含数据行的 .csv 文件以及 BLOB 的二进制文件。
导入 .sql 文件
首先,激活要运行导入的数据库。然后,转到“文件”>“运行 SQL 文件”,然后选择要导入的文件。在文件名输入框下方,您将找到一个编码下拉菜单。使用“自动检测”是事后获取损坏数据的一种常见方法- 因此,如果确定该文件中的编码,您一定应该选择正确的编码,例如“UTF-8”。点击“确定”后,HeidiSQL将立即开始执行其中包含的命令,您可以观察进度:
导入 .csv 文件(文本文件)
.csv 文件是一种文本文件,其中包含一个表的数据行。您可以通过“工具”>“导入 CSV 文件”将此类文件导入到表中。您必须告诉 HeidiSQL 文件的格式(行终止符、封闭字符等)。
将二进制或文本文件导入 BLOB
通过“工具”>“将文件插入 TEXT/BLOB 字段”,您可以将所有类型文件中的新行插入到表中。首先,选择要放入文件的数据库和表。然后,单击绿色的“添加”按钮,将一个或多个文件添加到列表中。在上面的列表中,您必须使用占位符告诉 HeidiSQL 文件内容位于哪一列。在“值”列中,单击右侧字段名称旁的并选择
'%filecontent%'
。该下拉列表中还提供了一些其他占位符。您还可以使用某些 SQL 函数包装占位符(甚至静态文本)。例如,如果您希望文件名小写,则应用LOWER('%filename%')
.HeidiSQL 便携式
如果 HeidiSQL 找到一个
portable.lock
文件、或一个portable_settings.txt
、或如上所述的自定义文件名,它将以可移植模式启动。这基本上意味着所有设置都会从该文件中恢复,并在退出时再次存储到该文件中。当您下载可移植包时,
portable_settings.txt
需要从旧的可移植 HeidiSQL 目录中手动复制该包。不这样做将会显示一个空的会话管理器。执照
HeidiSQL 是开源的,并在GPL(GNU 通用公共许可证) 下发布 。有关更多详细信息,请参阅许可证.txt 。
也许 HeidiSQL 为您节省了很多时间,并且您喜欢它。在这种情况下,您可以在这里捐款。
制作人员
作者:安斯加尔·贝克尔(德国)
第三方组件和图形:
- Joachim Marder(VirtualTreeView,GLPL)
- Christian Budde(SynEdit,MPL)
- Serhiy Perevoznyk ( JumpList )
- Iztok Kacin(Cromis.DirectoryWatch,BSD 许可证)
- Thomas Müller(GNU Gettext for Delphi,BSD 许可证)
- Rodrigo Ruz(VCL 样式实用程序)
- 丹尼斯·D·斯普林 ( VerySimpleXML )
- 查理·艾蒂安(材质主题)
- Mahdi Safsafi(Delphi Detours 库)
- Volker Siebert(SizeGrip,麻省理工学院许可证)
- 乔丹·拉塞尔(Inno Setup)
- 马蒂亚斯·劳恩 ( madExcept )
- Icons8(新的高分辨率图标,icons8.com)
- 马克·詹姆斯(丝绸图标,知识共享 2.5)
- 斯文·洛伦兹(图形)
前开发贡献者:
- David Dindorp(丹麦):线程、复杂事物、思考
- Adrien Granger(法国):查询参数
- Francisco Ernesto Teixeira(巴西):动机、想法
感谢Transifex.com提供的免费翻译帐户以及所有注册的翻译人员。
1000 感谢您出色的数据库软件:
- Michael 'Monty' Widenus 和他的同事于 1995 年 创建了MySQL ,并于 2009 年创建了MariaDB
- Microsoft 因其功能丰富的SQL Server于 1989 年从 Sybase 移植而来
- Michael Stonebraker 和 Larry Rowe于 1996 年从 Ingres发展了PostgreSQL
- Dwayne Richard Hipp于 2000 年创作SQLite
参考资料: