技能开发 频道

MySQL教程:MySQL 8装置与装备及留意事项

  【IT168 技能】MySQL是现在最盛行的开源数据库。假如你想挑选一个适用于你应用程序,而且学习材料丰厚,易于运用的数据库,那么MySQL必定会是挑选之一。

  MySQL最新版别MySQL 8现已发布,官方表明MySQL 8要比MySQL 5.7快两倍,并带来了许多的改善和更好的功用,一起也处理了许多之前长期存在的问题。

  本文将侧重介绍MySQL 8服务器的装置,以及装置、晋级进程中的留意事项。

  【留意】本文根据MySQL 8的社区开源版别,而非企业版。企业版具有更多高档功用,仅供给给具有商业许可证的企业。

  下载MySQL 8

  MySQL 8 下载站点

  【留意】您需求从“Select Operating System”下拉菜单中挑选操作体系。不然,该网站将默许浏览器检测到的操作体系供给下载。

  装置MySQL 8

  设置MySQL的进程因方针操作体系的不同而异。

  •   Microsoft Windows和MacOS用户能够下载并运转根据GUI的装置程序。这将引导用户完结设置进程,并为常见装备选项供给默许值。

  •   Linux用户能够下载Oracle供给的通用二进制文件,也能够经过Linux发行版的软件包办理体系装置MySQL。

  在Linux上装置MySQL时的留意事项:

  •   MySQL至少最新版,或许无法在给定的Linux发行版的默许软件资源库中运用。例如,在Fedora Linux上,您或许需求手意向包办理体系增加MySQL存储库,然后从该存储库装置。

  •   除非您彻底卸载曾经的版别,不然您无法从运用通用Linux二进制文件切换到发行版软件包办理器供给的版别。(反过来也是如此。)最好的办法是尽或许运用相同的分配途径,来坚持一致性。

  MySQL也可用作Docker映像。经过向容器传递指令行符号,能够更改MySQL中许多最常见的选项。假如需求更细粒度的操控,能够创立自定义装备文件并将其传递给容器。(假如您是Docker专家,能够经过增加层来进一步定制容器映像。)

  Oracle为许多渠道供给的另一个选项是没有装置程序的通用二进制归档。这需求手艺设置,首要经过创立和修正装备文件。长处是,只需删去二进制文件及其支撑文件,今后就能够轻松删去整个文件。

  从曾经的版别晋级到MySQL 8

  假如您想从曾经版别的MySQL晋级到MySQL 8,能够挑选处理晋级的两种惯例战略。

  【留意】仅支撑从MySQL 7的GA版别(最好是最新的GA版别)晋级。 非GA版别的MySQL 7及前期版别的MySQL(例如MySQL 6)的晋级不能保证有用。

  在任何一种状况下,都应保证要晋级的数据库没有留传的兼容性问题。 一起还要重视你正在运转渠道的晋级办法,由于Windows或MacOS体系的晋级进程是跟Linux进程不一样的。

  装备MySQL 8

  MySQL有许多的装备选项,但好在装置或晋级进程的初始阶段,许多是不需求的。

  修正MySQL 8装备文件

  MySQL 8的Microsoft Windows和MacOS图形装置程序会主动挑选合理的默许值,让用户了解最重要的选项。这些挑选记载在MySQL运用的装备文件中。此外,linux 用户还会有一个根本的装备文件, 其中有一些主动生成的默许值, 虽然在 Linux 上默许状况下没有增加多少设置。

  要找出MySQL装备文件的方位,先从shell运转mysql -help,然后查找“Default options are read from the following files in the given order.”的行。装备文件及其方位将在那里列出。

  假如MySQL装备文件中一切选项的默许值都没有列在装备文件里,您能够在文件的文档中寻觅。

  一个好的办法是,运用MySQL装置中包括的MySQL Workbench应用程序来修正选项文件。 MySQL Workbench供给了一个选项卡式GUI,列出了文件中的每个或许设置以及每个设置的功用描绘。一些意外状况也会使MySQL Workbench装备文件变得愈加困难,比方,不小心刺进一个不属于它的linebreak。

  开端,MySQL Workbench没有用特定的MySQL衔接注册的选项文件。要增加选项文件,请履行以下进程:

  在MySQL Workbench主页中,右键单击为其增加选项文件的实例衔接,然后挑选“Edit Connection.”。

  在体系装备文件选项卡下,在“Configuration File”行中填写选项文件的完好途径。

  单击“Test Connection”进行测验,保证一切正常。

  当您下次翻开该衔接时,能够经过“Instance | Options File.”的办法从左边树状菜单修正选项文件设置。

  设置MySQL 8的root暗码

  假如说MySQL设置中有需求的留意事项,那么从一开端就为服务器设置root暗码,以削减不必要的安全隐患。

  MySQL 8的Windows和MacOS装置程序在装置进程中会提示用户输入root暗码,一些用于MySQL 8的Linux装置程序,比方Ubuntu的根据apt-get装置,答应用户供给root MySQL暗码。

  在其他状况下,比方运用Fedora的yum或dnf装置程序时,root暗码会随机设置并在MySQL的过错日志中回显。这时能够运用指令sudo grep ‘temporary password’ /var/log/mysqld.log. 显现它。 但该暗码应赶快更改而且必定要尽或许杂乱。

  运用MySQL 8的新身份验证办法

  假如你想在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装备选项

  MySQL 8绝大多数的选项都不需求预先设置。一些如上面说到的客户端安全协议,应该尽早决议,是运用GUI装置导游仍是手艺修正装备文件。以下是其他几个:。

  其他MySQL用户

  假如或许的话,尽量不要运用root账户来衔接运用MySQL的应用程序。创立一个只要在该应用程序需求的数据库上具有彻底权限的帐户。MySQL Workbench应用程序只需求几回单击就能够完结这一点。

  MySQL衔接协议

  MySQL 8能够经过多种办法接受到服务器的传入衔接

  •   TCP/ IP。这是衔接到MySQL实例最广泛的办法,它答应本地和长途衔接。 总的来说,它也是最慢的,由于流量有必要经过整个TCP / IP仓库,但这一般只存在在极点功用的状况下。关于需求长途客户端衔接的状况来说,无论如何TCP / IP都是一个简略的办法。 可是一起也需求亲近重视衔接的安全性。

  •   Unix sockets/named pipes。这些是Unix / Linux和Windows中两个大致相同的功用。 当客户端或应用程序和服务器坐落同一体系上时,Sockets和pipes 最佳,由于数据能够更快地在客户端和服务器之间传输,也能够经过网络发布这样的衔接,但这样做很费事,这种状况下,你最好只运用TCP / IP。

  •   同享内存。 这是服务器和客户端之间最快的衔接选项,但也是最不灵敏的。 它仅在服务器和客户端坐落同一物理体系上时才有用,而且服务器或许难以检测客户端是否已超时或被停止,然后导致未停止的衔接累积并浪费资源。

  【留意】在Unix体系上,为了进步功用,localhost的任何衔接都默许运用Unix sockets。

  MySQL日志选项

  除了一般的过错日志之外,MySQL还能够维护其他三种日志,这些日志在默许状况下悉数禁用,但在装备进程中能够根据需求启用调试。

  •   General。这供给了MySQL从启动到封闭的具体运转摘要。

  •   Slow query。能够记载任何履行时间超越x秒(数量可装备)的查询以进行调试。

  •   BINLOG。“二进制日志”的缩写,能够将此日志装备为包括对数据库文件的一切修正的二进制转储。清楚明了,这会对功用发生严重影响,所以除非测验调试真实扎手的问题,不然不该启用它。

  默许状况下,日志不会主动铲除,因而有必要经过正规澳门彩票定时删去。 Binlogs是一个破例,默许状况下它会在30天后过期。

  MySQL搬迁和装置提示

  假如您要将现有的MySQL数据库搬迁到MySQL 8.0,规矩很简略:

  •   对数据进行彻底备份。

  •   仅运用MySQL 5.7中的数据库进行本地晋级。不然,您有两种挑选:

  1.   导出并从头导入数据。

  2.   将现有MySQL实例晋级到5.7,然后进行本地晋级。

  在MySQL 8.0中创立新数据库时的留意事项:

  •   将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。 假如您的大多数作业都是运用特定言语完结的,您或许会想要更具特定言语的排序规矩

  简而言之,在大多数状况下,默许值一般都是最佳挑选,但您仍需求了解实践用例去处理特定言语的问题。

0
相关文章