【问题标题】:Mysql Mode On Linux CentOSLinux CentOS 上的 Mysql 模式
【发布时间】:2013-05-12 07:42:18
【问题描述】:

我在 CentOS Linux 上安装了 Mysql 5.6 默认情况下它设置 SQl 模式严格

选择@@GLOBAL.sql_mode; +--------------------------------------------+ | @@GLOBAL.sql_mode | +--------------------------------------------+ | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | 选择@@SESSION.sql_mode; +--------------------------------------------+ | @@SESSION.sql_mode | +--------------------------------------------+ | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | +--------------------------------------------+

我通过命令行将 sql_mode 从 root 用户更改为 none 通过命令

设置会话 sql_mode = ''; 设置全局 sql_mode = '';

在此之后我执行了上面的命令,它们显示了

选择@@SESSION.sql_mode; +--------------------+ | @@SESSION.sql_mode | +--------------------+ | | +--------------------+ 一组中的 1 行(0.00 秒) mysql> 选择 @@GLOBAL.sql_mode; +-------------------+ | @@GLOBAL.sql_mode | +-------------------+ | | +-------------------+ 一组中的 1 行(0.00 秒)

但是当我重新启动 Mysql Server 时,我再次设置了严格模式,即

选择@@GLOBAL.sql_mode; +--------------------------------------------+ | @@GLOBAL.sql_mode | +--------------------------------------------+ | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | 选择@@SESSION.sql_mode; +--------------------------------------------+ | @@SESSION.sql_mode | +--------------------------------------------+ | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | +--------------------------------------------+

我还在 my.cnf 文件中添加了 mysql-mode="" 但重启 mysql 后结果相同

【问题讨论】:

  • @tombom 我不明白是什么问题......也许他想使用默认模式:“模式值也可以为空(--sql-mode =”命令行,或 Unix 系统上 my.cnf 中的 sql-mode=""" dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
  • 糟糕,抱歉,我不知道。
  • @tombom 别担心,伙计:)

标签: mysql


【解决方案1】:

请注意,在 Centos 中,您需要按照以下步骤操作:

  1. 以root用户登录
  2. 点击 SQL 服务,然后选择 MySQL 配置
  3. 它将打开配置文件
  4. 在该文件的末尾添加以下内容: sql_mode=""(不是 sql-mode="")
  5. 返回 Dashboard 并尝试重新启动右下角可用的 MySQL 数据库服务器。
  6. 如果配置文件有任何错误,它会抛出一个错误,返回并相应地修复错误。

如果你想在命令模式下测试它,可以这样使用: 服务 mysqld 重启

并确保它以绿色字母显示 OK。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,这是我的工作:

    编辑/etc/mysql/my.cnf

    并添加以下内容

    [mysqld] 
    
    sql-mode=""
    

    您也可以查看文档:https://dev.mysql.com/doc/refman/5.6/en/sql-mode.html

    【讨论】:

      【解决方案3】:

      在你的 my.cnf 文件中添加:

      sql_mode = ""
      

      然后重启mysql

      它应该是这样的:

      user        = nobody
      port        = 3306
      socket      = /opt/lampp/var/mysql/mysql.sock
      skip-external-locking
      key_buffer = 16M
      max_allowed_packet = 1M
      table_cache = 64
      sort_buffer_size = 512K
      net_buffer_length = 8K
      read_buffer_size = 256K
      read_rnd_buffer_size = 512K
      myisam_sort_buffer_size = 8M
      open_files_limit = 50k
      sql_mode = ""
      

      【讨论】:

      • 我做了,但是当我重新启动 Mysql Server 时再次将 sql_mode 更改为严格
      • @Engr.UmairAzizAttari 很奇怪......我在本地测试过它,它工作正常。您确定在您的 my.cnf 文件中只有一行设置了 sql_mode 吗?也许它会被覆盖
      • 或者你有一个将全局变量设置为严格的 cron ?
      猜你喜欢
      • 2013-01-19
      • 2021-02-04
      • 2013-08-30
      • 1970-01-01
      • 2015-01-24
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多