跳转到主要内容
你行网

Main navigation

  • 首页
  • Drupal
  • 编程与开发
  • 数据库
  • 操作系统与应用
  • 服务器与运维
  • 社区
User account menu
  • 登录

面包屑

  1. 首页

drupal9设置 MySQL 事务隔离级别

由 hrs, 6 二月, 2023

MySQL,MariaDB和等效数据库的默认事务隔离级别是“REPEATABLE READ”。使用 Drupal 的此设置可能会导致表上的死锁,这将导致站点变得非常慢或根本没有响应。

 

Drupal站点的推荐事务隔离级别是“READ COMMITTED”。支持“可重复读取”选项,但可能会导致死锁,其他 2 个选项是“读取未提交”和“可序列化”。它们可用但不受支持;使用它们的风险由您自己承担。

 

Drupal将在状态报告页面上生成警告(当MySQL,MariaDB或等效数据库使用事务隔离级别设置为“可重复读取”时)。admin/reports/status)

 

如果站点需要将事务隔离级别显式设置为“读取提交”,则可以使用两种方法:

 

更改事务隔离级别的首选方法

 

第一种方法是运行数据库查询,该查询为数据库上的每个会话设置事务隔离级别。查询为:

 

SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED

此查询只能由具有超级用户权限的数据库用户运行。

 

您可以通过运行下面的 mysql 命令来检查是否已设置值。

 

更改事务隔离级别的替代方法

 

第二种方法是更新文件。该文件的默认位置为 。该文件是在安装Drupal站点期间创建的。settings.phpsites/default/settings.php

 

文件末尾通常是找到的数据库连接数组。像这样:settings.php

$databases['default']['default'] = array(

'database' => 'databasename',

'username' => 'sqlusername',

'password' => 'sqlpassword',

'host' => 'localhost',

'driver' => 'mysql',

'prefix' => '',

'port' => '3306',

);

要将数据库事务隔离级别更改为“读取提交”,请将以下内容添加到数据库连接数组中:

'init_commands' => [

'isolation_level' => 'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED',

],

添加设置的数据库连接数组将如下所示:

$databases['default']['default'] = array(

'database' => 'databasename',

'username' => 'sqlusername',

'password' => 'sqlpassword',

'host' => 'localhost',

'driver' => 'mysql',

'prefix' => '',

'port' => '3306',

'init_commands' => [

'isolation_level' => 'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED',

],

);

要确认设置是否正确,您可以运行 mysql 命令:

 

show variables WHERE Variable_name LIKE "%_isolation";

 

应会看到以下输出:

 

mysql> show variables WHERE Variable_name LIKE "%isolation";

+-----------------------+-----------------+

| Variable_name | Value |

+-----------------------+-----------------+

| transaction_isolation | READ-COMMITTED |

+-----------------------+-----------------+

1 row in set (0.00 sec)

有关隔离级别的更多信息,请参阅 MySQL 事务隔离级别文档。

  • 登录或注册以发表评论
  • 61 次浏览
内容类型分类
数据库
文章归类
关系型数据库

文章标签

  • Mysql

评论

最新文章

  • 内容审核通知 content_moderation_notifications 模块简介
  • 调度程序 scheduler 模块简介
  • 工作流当中的草稿,已发布,很好理解,已归档是怎么理解。
  • 你行网 https://www.dwoke.com seo 关键词
  • brew 是什么命令
  • drupal 9 或 drpal 10 国内内容分享模块 Will Nice social share
  • Views Slideshow - Views Vanilla JavaScript Slideshow (VVJS) 简介和安装方法
  • drupal 11 安装statistics 统计模块
  • drupal11 扩展中找不到Statistics模块
  • drupal11 设置中的“总结摘要”和“切边的” 有什么区别

标签云

adsenseAIapacheaptbadblocksbreadcrumbbrewcentoscertbotckeditorcommandcomposercookiecsharpCSScurlC语言DDEVdiffdnsdockerDreamweaverDrupaldrupal 7drupal 8drupal 9drupal10drupal 11drushExcelfirewalldfirmwareflameshotformgimpgitgzipHTMLHTML5httpdhttp验证inputipjavaJavaScriptJavaSrciptkernelKVMLinuxmavenmbstringmod_expires 模块Mysqlnerdtreenetstatnetworknginxnpmpasswordphpphpmyadminphp扩展RFIDRSSselinuxSEOsharesimple_adsensesshsslStatisticssuperfishsurroundtagcloudstitleubuntuuploadprogressvimVPNVUEWireGuardwpsxdebugyoutubeyumzip主题(theme)二进制五笔分类术语压缩解压哈希值声音字段密码工作流快捷键摄影权限果树种植标签优化模块(module)源地址版本号电子秤电脑基础电脑技巧短信验证端口简介算法网站备份网站运营翻译英语表单视图(views)计算机基础赚钱超五类线网线邮件验证重定向重定向,301错误颜色

相关文章

  • 在PHP中判断数据库是否存在并新建数据库
  • information_schema.SCHEMATA 详解
  • MySQL 验证数据库是否存在的方法
  • MySQL 中常见的数据类型及其使用范围、大小和默认值
  • MySQL 关键字及其作用
  • 在mysql 数据库中,什么是启用外键约束
  • PDO 和 MySQLi 连接数据库的区别
  • 在终端输入mysql命令回车后不能修改的问题
  • 创建用户信息表的SQL语句解释
  • 如何查看mysql 端口命令
RSS源

关于我们

  • 你行网简介
  • 关于我们
  • 版权声明

网站相关

  • 社区论坛
  • 网址导航
  • 网站地图
  • 联系我们

友情链接

  • 英文学习

友情链接2

  • drupal 大学
  • 水滴间
  • 爱码网
  • Apache

友情链接3

  • MySQL
  • php
  • drupalcode

友情链接4

  • Drupal 中国
  • Drupal 老葛
  • 宁浩网
  • drupal 台湾
Copyright © 2019 - 2021 你行网 版权所有  粤ICP备19072650号-1