【问题标题】:How to upgrade MySQL in MariaDB 10.2.6如何在 MariaDB 10.2.6 中升级 MySQL
【发布时间】:2017-10-26 01:23:25
【问题描述】:

我使用brew 在 Macbook 上安装 MariaDB。

brew 网站上。他们告诉了。

MariaDB 10.2 是 MariaDB 的当前稳定版本。它建立在 MariaDB 10.1 具有 MySQL 5.6 和 5.7 的功能,并且是全新的 其他任何地方都没有的功能。

但是当我安装并连接 Sequel Pro 时。在程序之上。它显示

(MySQL 5.5.5-10.2.6-MariaDB)

我想将MySQL 版本改为5.7,因为我想使用JSON 列。

我该如何解决这个问题。

【问题讨论】:

    标签: mysql macos homebrew mariadb


    【解决方案1】:

    你得到了正确的版本,它是 10.2.6。前缀5.5.5 不用担心,可以忽略。

    added in 10.x versions 允许与旧的或不合规的服务器/客户端/应用程序通信,这些服务器/客户端/应用程序检查版本号,如果不是 5.x,则拒绝通信。

    MariaDB 客户端去除前缀,但第三方客户端有时不会。

    也就是说,请注意 MariaDB 10.2.6 没有 JSON列类型。它具有与 MySQL 5.7 相同的 JSON functions,还有更多,但没有 type,你不能说 CREATE TABLE t (j JSON)。这些值应该存储在常规的TEXT/BLOB 列中。

    【讨论】:

    • 你认为添加 JSON 在 MariaDB 的路线图上吗?
    • 讨论了一种轻量级解决方案,该解决方案将为上述 DDL 语句提供语法兼容性,而无需进行深入的内部更改。对于真正成熟的 JSON 类型来说,有一个关于它的开放任务 (MDEV-9144),但它还没有在路线图上,也没有决定是否要实施。我的猜测是,这将取决于是否有实际需求。
    • 使用 Oracle 的 JSON 的用户数量似乎适中,但可能不足以保证紧急纳入 MariaDB。它确实在“直接替换”声明中提出了另一个问题。
    • 这个声明已经过时了很长时间,从 5.5 开始,需要修改。这里的标签信息也应该更新(很快)..
    【解决方案2】:

    MariaDB documentation 说:

    版本

    描述:服务器版本号。它还可能包括一个 带有配置或构建信息的后缀。 [...] 从 MariaDB 10.2.1 开始,可以在启动时设置此变量,以便 伪造服务器版本。

    如果保留其默认值,旧客户端将显示兼容的 InnoDB 版本号(例如:5.5.5),尽管变量内部不同:

    root@host:~# mysql 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 180
    Server version: 5.5.5-10.2.13-MariaDB-10.2.13+maria~xenial-log mariadb.org binary distribution
    
    [...]
    
    mysql> show variables like 'version';
    +---------------+------------------------------------------+
    | Variable_name | Value                                    |
    +---------------+------------------------------------------+
    | version       | 10.2.13-MariaDB-10.2.13+maria~xenial-log |
    +---------------+------------------------------------------+
    1 row in set (0.00 sec)
    
    [...]
    
    mysql> show variables like 'innodb_version';
    +----------------+--------+
    | Variable_name  | Value  |
    +----------------+--------+
    | innodb_version | 5.7.21 |
    +----------------+--------+
    1 row in set (0.00 sec)
    

    为了强制向客户端显示版本,请将其添加到服务器配置文件的[mariadb] 部分:

    [mariadb]
    version                 = 5.7.21-10.2.13-MariaDB-10.2.13+maria~xenial-log
    

    输出应该如下:

    root@host:~# mysql 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 40
    Server version: 5.7.21-10.2.13-MariaDB-10.2.13+maria~xenial-log mariadb.org binary distribution
    
    [...]
    
    mysql> show variables like 'version';
    +---------------+-------------------------------------------------+
    | Variable_name | Value                                           |
    +---------------+-------------------------------------------------+
    | version       | 5.7.21-10.2.13-MariaDB-10.2.13+maria~xenial-log |
    +---------------+-------------------------------------------------+
    1 row in set (0.00 sec)
    

    【讨论】:

      猜你喜欢
      • 2018-06-23
      • 2013-10-12
      • 2020-09-08
      • 2020-02-12
      • 2021-08-11
      • 2015-07-14
      • 2021-09-19
      • 2014-12-16
      • 2019-01-08
      相关资源
      最近更新 更多