将MySQL从5.7升级到8.0.11后的第一印象和操作

MySQL在开发人员的网站上阅读到在第八版中引入了对UTF的更全面支持之后,决定做出更新数据库的决定。 特别是,MySQL 8.0.11使用基于ICU(Unicode国际组件)的正则表达式。

我注意到的第一件事是正则表达式中单词的边界不再表示为:

SELECT '' REGEXP '[[:<:]][[:>:]]'; 

新版本中的边界一词表示如下:

 '\\b\\b' 

此外,LOAD DATA LOCAL INFILE停止工作,即从本地计算机上的文本文件导入数据。 事实证明,在MySQL 8.0中,全局变量local_infile默认情况下设置为OFF。 他们在开发人员的网站上写道,这是安全措施。 可以使用以下命令查看此变量的值:

 SHOW GLOBAL VARIABLES LIKE 'local_infile'; 

我通过在终端中执行解决了这个问题:

 SET GLOBAL local_infile = true; 

也就是说,它像往常一样适合MySQL中的终端:

 mysql -u root -p 

并执行以上命令。

以防万一,我以SQL格式在GZ归档文件中将数据库导出到PHPMyAdmin。 并没有后悔。 仅将数据文件从5.7替换为8.0.11不起作用。 第八版无法识别它们。 从SQL文件导入数据毫无疑问。

仅此而已。 其余的工作正常。 我已经看到,在第八版中,ICU的正则表达式具有更多功能,这对于使用西里尔字母很重要。

Source: https://habr.com/ru/post/zh-CN418899/


All Articles