avicat 是一款专门为 MySQL 设计的可视化数据库 GUI 管理工具,我们可以在自己的计算机上,使用图形化界面(GUI)远程管理 MySQL 数据库。
Navicat 作为一款付费软件,在各类细节和功能上完胜所有免费数据库 GUI 管理工具,设置可以和官方出品的 MySQL workbench 一战。有关最热门的 MySQL GUI 管理工具的详细测评,可看我写的《最好用的 10 款 MySQL GUI 管理工具横向测评 - 免费和付费到底怎么选?》这篇文章,另外,如果你需要针对自己的工作流对数据库操作,定制开发,推荐一下卡拉云,详情见文末。
本教程详细讲解 Navicat 使用教程
一. 如何下载及安装 Navicat for MySQL
二. 如何使用 Navicat 远程连接数据库
三. 使用 Navicat 操作数据库
四.导入导出SQL/CSV/JSON 等数据
五. 配置 MySQL 数据库表属性
六. 在 Navicat 中执行一条 SQL 查询 七. 创建触发器及触发器的应用 八. 用户账号和访问权限
九.如何使用 Navicat 比对两个数据库的差异
十. Navicat 绿色破解版
十一. 卡拉云 - 新一代低代码开发工具

我们可以前往 Navicat 官方网站产品页下载。注意 Navicat 英文版和中文版不仅仅是语言的区别,中文版里还有很多国内常用的服务选项。

Navicat 中文版多了中国自己的云服务商连接选项,比如连接阿里云、腾讯云、华为云等
扩展阅读:《10 款 MySQL GUI 管理工具横向测评 - 免费和付费到底怎么选?》
有关 Navicat 远程连接我写过一篇很详细的教程,请在《Navicat 怎么远程连接 MySQL 服务器》查看教程,这里不展开写了。
Navicat 连接 MySQL 失败可能原因
Navicat 连接失败,少数情况是 Navicat 本地配置不对,大多数是远程 MySQL 服务器没哟配置好。有关 MySQL 开启允许远程连接的教程,请在《如何远程连接 MySQL 数据库,配置阿里云允许远程连接》查看教程。
以下是常见的远程连接 MySQL 失败的部分原因,大家可根据错误提示找到解决方法。

Navicat for MySQL 初始化界面

点击配置好的远程登录卡片,登录远程 MySQL 服务器。如果你还没配置好远程端,请参照《Navicat 怎么远程连接 MySQL 服务器》这篇教程进行配置。登录远程数据库后,可以看到当前远程 MySQL 数据库中已经创建好的数据库列表。

鼠标右键点击已经连接上的数据库名,在菜单中选择「新建数据库」,进入新建数据库流程。

在新建数据库窗口里,填写相应的信息后,点击确定,即可快速创建 MySQL 数据库。

Navicat 会自动帮助我们生成 SQL 命令,创建数据库。

执行命令,创建成功。可以看到 MySQL_for_kalacloud.com 列表中多了我们刚刚创建的 kalacloud_demo_database 数据库

右键点击kalacloud_demo_database 下的「表」,选择「新建表」。

然后在「表」中配置字段和字段属性,注意「自增」在下面,主键设置在表的末尾。

点击上方「保持」按钮,在新弹出的对话框中,输入新建的「表」名。

双击左侧树状菜单中需要查看的表「kalacloud_users」,右边会显示表信息。我们可以看到,在底下的状态栏里,可以看到查询表的 SQL 代码。

Navicat 插入数据像 Excel 一样简单,直接在表中双击编辑即可,编辑未提交时,显示为粉红色,点击下方对勾进行实际执行。

1.执行后,表单颜色由粉色变为白色,表示数据库已经更新
2.我们可以看到状态栏的执行 SQL 语句

右键点击需要修改的表,选择「设计表」,然后在右侧编辑字段属性

右键点击需要删除的表,然后选择「删除表」,确认后,表会被从数据库中删除。谨慎使用。
扩展阅读:《如何在 MySQL 中查找和删除重复记录?》

试试卡拉云,拖拽组件连接 API 和数据库直接生成后台系统,两个月的工期降低至1天
立即试用

右键选项需要导入数据的表,并点击「导入向导」。

本教程以 CSV 为例,其实 Navicat 可以导入丰富的数据格式。
在弹出的对话框中选择需要导入的 CSV 文件。

选择需要导入的 CSV 存放路径。

下一步,点击开始,CSV 文件中的数据就按照你的设置开始导入数据库了。

可以看到,我们刚刚从 CSV 导入的数据,已经在我们的数据库中了。

右键选项需要导入数据的表,并点击「导出向导」。

可以看到在导出导航页面中,Navicat 可以导出多种数据格式。本教程以 CSV 未来导出。大家可以选择自己需要的格式操作,方法基本一致。

最后一步,点击开始。我们可以看到,右上角的桌面已经生成了Navicat 导出 CSV 文件。
扩展阅读:《如何在 MySQL 中导入导出 SQL 数据、Excel、CSV》

Primary Key(PK):主键约束,指定某列的数据非空、唯一、不能重复
(1)右键点击需要设置的表,选择「设计表」
(2)「键」为设置主键约束。

Foreign Key:外键,指定该列记录属于主表中的一条记录,参照另一条数据
(1)右键点击需要设置的表,选择「设计表」
(2)选择「外键」的标签
(3)选择要关联的表
(4)当前表的列,选择要关联的键
(5)被关联表的列,选择需要关联的键
(6)「名」这一行不需要填写,点击保持后,Navicat 会帮你自动填好

Navicat 会帮你自动填好「表」和「删除时」这些空。

Unique:唯一约束,指定某列和几列组合的数据不能重复
Navicat 的唯一约束藏的比较深,在「设计表」的「索引」选项卡中,我们可以设置字段和索引类型,索引类型选择 Unique

点击保持后,空白项,Navicat 会帮你填写好。

Not Null:非空约束,指定某列不能为 NULL 空
选中 null 的列为数据表的非空约束,取消选中则取消该列的非空约束。

默认值(Default)的完整名称是 默认值约束(Default Constraint)
MySQL 默认值约束用来指定某列的默认值。
红框部分,我们可以根据自己的需求来设置默认值。 如果默认值设定为「1」,即插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为「1」。
扩展阅读:《MySQL 重置自增 ID (AUTO_INCREMENT)教程 - 完美保留表数据的终极解决方案》
我们也可以直接在 Navicat 执行一段 SQL 查询,下面这段代码是向kalacloud_demo_database 数据库中kalacloud_users表里插入一行数据。
INSERT INTO `kalacloud_demo_database`.`kalacloud_users` (`name`, `phone`, `wechat_id`, `wechat_name`, `STATUS`)
VALUES ('卡拉云 kalacloud', '13777779999', 'kalacloud', '卡拉云 kalacloud.com', '2');

点击「查询」,然后「新建查询」,把 SQL 直接写在这里。

点击「运行」即可执行 SQL 代码,并且可以在下方的状态了,看到执行结果。
下面,我们运行 select 查看上一条命令是否已经写入表中。
SELECT * FROM kalacloud_demo_database.kalacloud_users;

我们可以看到,红框部分,ID 6 这一条就是刚刚我们写入的数据。
扩展阅读:《如何查看 MySQL 数据库、表、索引容量大小?找到占用空间最大的表》

1.鼠标右键点击「设计表」。
2.选择「触发器」标签,进入触发器设置页面
3.「名」指的是你新建的触发器名字
4.触发器类型,选择你需要的触发器类型
5.触发器触发的动作
6.触发器主体写在这里
MySQL 触发器一共有 6 种类型:
BEFORE INSERT : 在插入数据前,检测插入数据是否符合业务逻辑,如不符合返回错误信息。AFTER INSERT : 在表 A 创建新账户后,将创建成功信息自动写入表 B 中。BEFORE UPDATE :在更新数据前,检测更新数据是否符合业务逻辑,如不符合返回错误信息。AFTER UPDATE :在更新数据后,将操作行为记录在 log 中BEFORE DELETE :在删除数据前,检查是否有关联数据,如有,停止删除操作。AFTER DELETE :删除表 A 信息后,自动删除表 B 中与表 A 相关联的信息。有关六类触发器的实际使用方法及应用场景的详细教程,可查看《MySQL 触发器 创建 、查看、删除 insert、update、delete 教程 - 卡拉云》文章。此教程以实际应用场景为线索,按照场景细致讲解了全部 6 种触发器的使用方法。

(1)在菜单栏选择 Server
(2)选择 Users and Privileges 进入用户管理页面

特别提示:Navicat 点击用户 出现1054 Unknown column 'password_lifetime' in 'field list'
如果你使用的是 MariaDB 的数据库,但在 Navicat 中却选择了 MySQL 连接方式。那么在查看「用户」时会报 1054 ,这是因为 MariaDB 没有 password_lifetime 这个字段,而是 password_expired 字段,这与 MySQL 不同。所以需要你在新建连接时,选对你的数据库类型。虽然 MariaDB 是 MySQL 的分支,功能几乎一模一样,但就是有些细微地方有所差别,会导致这些奇怪的错误出现。

(1)选择「用户」
(2)选择「新建用户」
(3)设置用户的基本配置

(4)在「权限」选项卡中配置新建的用户权限

(1)选择需要删除的账号
(2)点击「删除用户」
(3)点击「刷新刷新表
扩展阅读:《MySQL 权限管理查询手册 - 创建、授权、取消授权、删除、重命名账号》
通常在数据迁移后,我们需要对比迁移前后,两个数据库之间是否存在差异。Navicat 有这个对比功能,可以帮你完成。

首先点击「工具」选择「数据同步」

选择要对比的两个数据库

点击开始后,Navicat 开始帮你进行对比检测。

最后,相通和不同的地方,navicat 会列出来给你参考。
往上有大量的 Navicat 破解版,我也尝试了一些。对于数据库这种高度敏感、高度安全属性的东西,还是要谨慎使用盗版软件,出现问题追悔莫及。如果需要使用 MySQL GUI 管理工具管理自己的数据库的话,推荐使用 Navicat 的平替版本,MySQL 官方出品的 MySQL Workbench ,虽然深度使用没有 Navicat 细节做的那么好,可他安全又免费,很多付费软件才有的功能。
所以我开始关注ruby,很多东西看起来不错,但我对隐式return语句很反感。我理解默认情况下让所有内容返回self或nil但不是语句的最后一个值。对我来说,它看起来非常脆弱(尤其是)如果你正在使用一个不打算返回某些东西的方法(尤其是一个改变状态/破坏性方法的函数!),其他人可能最终依赖于一个返回对方法的目的并不重要,并且有很大的改变机会。隐式返回有什么意义?有没有办法让事情变得更简单?总是有返回以防止隐含返回被认为是好的做法吗?我是不是太担心这个了?附言当人们想要从方法中返回特定的东西时,他们是否经常使用隐式返回,这不是让你组中的其他人更容易破坏彼此的代码吗?当然,记录一切并给出
给定以下方法:defsome_method:valueend以下语句按我的预期工作:some_method||:other#=>:valuex=some_method||:other#=>:value但是下面语句的行为让我感到困惑:some_method=some_method||:other#=>:other它按预期创建了一个名为some_method的局部变量,随后对some_method的调用返回该局部变量的值。但为什么它分配:other而不是:value呢?我知道这可能不是一件明智的事情,并且可以看出它可能有多么模棱两可,但我认为应该在考虑作业之前评估作业的右侧...我已经在R
我在我的Rails3示例应用程序上使用CarrierWave。我想验证远程位置上传,因此当用户提交无效URL(空白或非图像)时,我不会收到标准错误异常:CarrierWave::DownloadErrorinImageController#createtryingtodownloadafilewhichisnotservedoverHTTP这是我的模型:classPaintingtrue,:length=>{:minimum=>5,:maximum=>100}validates:image,:presence=>trueend这是我的Controller:classPaintingsC
电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上的U盘)。 2、一台正常联网可使用的电脑。 3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。 4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。 U盘启动盘制作步骤: 注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注
我正在研究使用EventMachine支持的twitter-streamrubygem来跟踪和捕获推文。我对整个事件编程有点陌生。我如何判断我在事件循环中所做的任何处理是否导致我落后?有没有简单的检查方法? 最佳答案 您可以通过使用周期性计时器并打印出耗时来确定延迟。如果您使用的是1秒的计时器,您应该已经过了大约1秒,如果它更长,您就知道您正在减慢react器的速度。@last=Time.now.to_fEM.add_periodic_timer(1)doputs"LATENCY:#{Time.now.to_f-@last}"@
啊,正则表达式有点困惑。我正在尝试删除字符串末尾所有可能的标点符号:ifstr[str.length-1]=='?'||str[str.length-1]=='.'||str[str.length-1]=='!'orstr[str.length-1]==','||str[str.length-1]==';'str.chomp!end我相信有更好的方法来做到这一点。有什么指点吗? 最佳答案 str.sub!(/[?.!,;]?$/,'')[?.!,;]-字符类。匹配这5个字符中的任何一个(注意,。在字符类中并不特殊)?-前一个字符或组
在Ruby中有运算符(operator)。在API中,他们没有命名它的名字,只是:Theclassmustdefinetheoperator...Comparableusestoimplementtheconventionalcomparison......theobjectsinthecollectionmustalsoimplementameaningfuloperator...它叫什么名字? 最佳答案 参见上面的@Tony。然而,它也被称为(俚语)“宇宙飞船运算符(operator)”。
电脑启动出现显示器黑屏是一个相当常见的问题。如果您遇到了这个问题,不要惊慌,因为它有很多可能的原因,可以采取一些简单的措施来解决它。在本文中,小编将介绍下面4种常见的电脑启动后显示器黑屏的原因,排查这些原因,快速解决! 演示机型:联想Ideapad700-15ISK-ISE系统版本:Windows10一、显示器问题如果出现电脑启动后显示器黑屏的情况。那么首先您需要检查一下显示器是否正常工作。您可以通过更换另一个显示器或将当前显示器连接到另一台计算机来检查显示器是否存在问题。如果问题仍然存在,那么您可以排除显示器故障的可能性。 二、显卡问题如果您的电脑配备了独立显卡,那么显卡故障也可能是导致电脑
电脑上可以截取图片吗?如果可以,该如何操作呢?相信很多小伙伴都只知道一两种截图的方式,知道的并不全面。其实,电脑上有多种方式截图的,而且非常方便。电脑怎么截图?今天我们就来教大家如何使用电脑截取图片的8种常用方式!操作环境:演示机型:Delloptiplex7050系统版本:Windows10方法一:系统自带截图具体操作:同时按下电脑的自带截图键【Windows+shift+S】,可以选择其中一种方式来截取图片:截屏有矩形截屏、任意形状截屏、窗口截屏和全屏截图。 方法二:QQ截图具体操作:在电脑登录QQ,然后同时按下【Ctrl+Alt+A】,可以任意截图你需要的界面,可以把截图的页面直接下载,
我正在研究Ruby解释器是如何实现的,并且出现了一个问题,但我还没有得到答案。这就是标题中的那个:因为Class(r_cClass)将super设置为自身(忽略元类,因为实际上super是r_cClass的元类),如果我向Class对象发送一个方法,这将在Class的方法表中查找'类(class)。但是Class的类是Class,所以我不应该最终寻找Class的实例方法吗?但事实并非如此,因为在文档中Class类方法和Class实例方法是分开的。在Ruby的eval.c中的search_method中,我没有发现对Class类有什么特别的检查。任何人都可以阐明这一点吗?