【IT168 技术】MySQL是目前最流行的开源数据库。如果你想选择一个适用于你应用程序,并且学习资料丰富,易于使用的数据库,那么MySQL必定会是选择之一。
MySQL最新版本MySQL 8已经发布,表示MySQL 8要比MySQL 5.7快两倍,并带来了大量的改进和更好的性能,同时也解决了很多之前长期存在的问题。
【注意】本文基于MySQL 8的社区开源版本,而非企业版。企业版具有更多高级功能,仅提供给具有商业许可证的企业。
【注意】您需要从“Select Operating System”下拉菜单中选择操作系统。否则,该网站将默认浏览器检测到的操作系统提供下载。
Microsoft Windows和MacOS用户可以下载并运行基于GUI的安装程序。这将引导用户完成设置过程,并为常见配置选项提供默认值。
Linux用户可以下载Oracle提供的通用二进制文件,也可以通过Linux发行版的软件包管理系统安装MySQL。
MySQL至少最新版,可能无法在给定的Linux发行版的默认软件资源库中使用。例如,在Fedora Linux上,您可能需要手动向包管理系统添加MySQL存储库,然后从该存储库安装。
除非您完全卸载以前的版本,否则您无法从使用通用Linux二进制文件切换到发行版软件包管理器提供的版本。(反过来也是如此。)最好的办法是尽可能使用相同的分配径,来保持一致性。
MySQL也可用作Docker映像。通过向容器传递命令行标记,可以更改MySQL中许多最常见的选项。如果需要更细粒度的控制,可以创建自定义配置文件并将其传递给容器。(如果您是Docker专家,可以通过添加层来进一步定制容器映像。)
Oracle为许多平台提供的另一个选项是没有安装程序的通用二进制归档。这需要手工设置,主要通过创建和编辑配置文件。优点是,只需删除二进制文件及其支持文件,以后就可以轻松删除整个文件。
【注意】仅支持从MySQL 7的GA版本(最好是最新的GA版本)升级。 非GA版本的MySQL 7及早期版本的MySQL(例如MySQL 6)的升级不能有效。
在任何一种情况下,都应确保要升级的数据库没有遗留的兼容性问题。 同时还要关注你正在运行平台的升级方法,因为Windows或MacOS系统的升级过程是跟Linux进程不一样的。
MySQL 8的Microsoft Windows和MacOS图形安装程序会自动选择合理的默认值,让用户了解最重要的选项。这些选择记录在MySQL使用的配置文件中。此外,linux 用户还会有一个基本的配置文件, 其中有一些自动生成的默认值, 尽管在 Linux 上默认情况下没有添加多少设置。
一个好的方法是,使用MySQL安装中包含的MySQL Workbench应用程序来编辑选项文件。 MySQL Workbench提供了一个选项卡式GUI,列出了文件中的每个可能设置以及每个设置的功能描述。一些意外情况也会使MySQL Workbench配置文件变得更加困难,比如,不小心插入一个不属于它的linebreak。
最初,MySQL Workbench没有用特定的MySQL连接注册的选项文件。要添加选项文件,请执行以下步骤:
在系统配置文件选项卡下,在“Configuration File”行中填写选项文件的完整径。
当您下次打开该连接时,可以通过“Instance Options File.”的方式从左侧树状菜单编辑选项文件设置。
如果说MySQL设置中有需要的注意事项,那么从一开始就为服务器设置root密码,以减少不必要的安全隐患。
如果你想在Linux推荐的中使用MySQL Workbench,那么你需要注意MySQL 8中的另一个配置选项。
安装MySQL 8时,您将看到新的SHA-256密码身份验证方法的选项。 此方法比传统的“native password”方法安全得多,因此将其作为新安装的默认方法。
但是,这种新方法的主要缺点是与最新版本的MySQL客户端软件(尤其是MySQL Workbench)不兼容。
【注意】客户端软件的最新版本无法由默认安装径安装所有Linux版本。也就是说,如果您从该操作系统的MySQL存储库安装一个全新的MySQL 8,比如Ubuntu 18.04,那么MySQL Workbench的附带副本将不支持SHA-256身份验证!
下载MySQL Workbench的开发版本。 这完全取决于是否为你的操作系统构建了开发版本,但大多数Linux似乎都有最新开发的二进制版本,这通常是最简单的径。
如果您只允许从localhost连接到MySQL,则可以避免使用SHA-256身份验证,并且不会在安全性方面损失太多。这并不一定是你的永久解决方案,您可以使用旧连接协议,直到获得系统最新版本的客户端软件,然后更改为新的身份验证方法。但这意味着您必须更改MySQL配置文件中的身份验证方法,并更改MySQL用户帐户以匹配。
MySQL 8绝大多数的选项都不需要预先设置。一些如提到的客户端安全协议,应该尽早决定,是使用GUI安装向导还是手工编辑配置文件。以下是其他几个:。
如果可能的话,尽量不要使用root账户来连接使用MySQL的应用程序。创建一个只有在该应用程序需要的数据库上具有完全权限的帐户。MySQL Workbench应用程序只需要几次单击就可以实现这一点。
TCP/ IP。这是连接到MySQL实例最广泛的方式,它允许本地和远程连接。 总的来说,它也是最慢的,因为流量必须通过整个TCP / IP堆栈,但这通常只存在在极端性能的情况下。对于需要远程客户端连接的情况来说,无论如何TCP / IP都是一个简单的方式。 但是同时也需要密切关注连接的安全性。
Unix sockets/named pipes。这些是Unix / Linux和Windows中两个大致相同的功能。 当客户端或应用程序和服务器位于同一系统上时,Sockets和pipes 最佳,因为数据可以更快地在客户端和服务器之间传输,也可以通过网络发布这样的连接,但这样做很麻烦,这种情况下,你最好只使用TCP / IP。
共享内存。 这是服务器和客户端之间最快的连接选项,但也是最不灵活的。 它仅在服务器和客户端位于同一物理系统上时才有效,并且服务器可能难以检测客户端是否已超时或被终止,从而导致未终止的连接累积并浪费资源。
【注意】在Unix系统上,为了提高性能,localhost的任何连接都默认使用Unix sockets。
除了一般的错误日志之外,MySQL还可以其他三种日志,这些日志在默认情况下全部禁用,但在配置过程中可以根据需要启用调试。
BINLOG。“二进制日志”的缩写,可以将此日志配置为包含对数据库文件的所有修改的二进制转储。显而易见,这会对性能产生重大影响,所以除非尝试调试真正棘手的问题,否则不应启用它。
默认情况下,日志不会自动清除,因此必须通过mysql-log-rotate脚本定期删除。 Binlogs是一个例外,默认情况下它会在30天后过期。
将InnoDB眼跳测吉凶用于所有新表。 InnoDB现在是MySQL中新创建表的默认选择。为什么呢?因为有一段时间,传统的MyISAM存储引擎比新的InnoDB有一些优势,尤其是全文索引。但现在MySQL 8.0,InnoDB支持全文索引,除了行级锁定,事务交易,崩溃恢复,外键约束以及许多其他功能数据库之外,还有许多其他功能不应该放弃。
使用utf8mb4字符集,但要研究使用的排序规则。 MySQL 8现在支持utf8mb4字符集 (UTF-8的一种实现),每个字符最多可存储4个字节,以便尽可能广泛地与 Unicode 兼容。默认情况下, 为新数据库选择了 utf8mb4, 而选择其他内容则没有什么意义。 与此同时,您使用的排序规则要遵循应用程序的需求。默认情况下,MySQL 8使用通用的utf8mb4_0900_ai_ci排序规则,但排序规则不区分重音和大小写; 为此,可以改用utf8mb4_0900_as_cs。 如果您的大多数工作都是使用特定语言完成的,您或许会想要更具特定语言的排序规则。
简而言之,在大多数情况下,默认值通常都是最佳选择,但您仍需要了解实际用例去处理特定语言的问题。
本文由 恒宇国际(www.neivn.cn)整理发布