跳转到主要内容
你行网

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 事务隔离级别文档。

  • 登录或注册以发表评论

文章标签

  • Mysql

评论

文章标签

CSS
Excel
ubuntu
php
五笔
vim
Linux
VPN
command
HTML
drupal 8
drupal 7
centos
composer
Mysql
drush
模块(module)
Drupal
JavaSrcipt
apache
drupal 9
英语
nerdtree
SEO
network
果树种植
surround
drupal10
主题(theme)
ssh
phpmyadmin
二进制
yum
权限
声音
ssl
selinux
HTML5
WireGuard
password
Dreamweaver
flameshot
DDEV
翻译
颜色
uploadprogress
firewalld
kernel
视图(views)
邮件验证
快捷键
gzip
xdebug
错误
电脑基础
ckeditor
C语言
简介
源地址
mbstring
certbot
php扩展
git
csharp
httpd
apt
电子秤
压缩解压
breadcrumb
表单
AI
短信验证
firmware
摄影
diff
superfish
重定向
网站备份
drupal 11
docker
版本号
tagclouds
java
RSS
adsense
端口
电脑技巧
simple_adsense
算法
KVM
youtube
JavaScript
cookie
badblocks
计算机基础
网站运营
RFID
zip
标签优化
VUE
dns
gimp
form
mod_expires 模块
赚钱
ip
http验证
curl
重定向,301
netstat
字段
maven
input
nginx
哈希值
npm
wps
更多

相关文章

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

友情链接 网站地图 版权信息 联系我们 网址导航 社区

Copyright © 2019 - 2021 你行网 版权所有  粤ICP备19072650号