跳转到主要内容
你行网

Main navigation

  • 首页
  • 文章
  • 教程
  • 视频
  • 下载
  • 社区
  • 网站导航
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
  • 登录或注册以发表评论

评论

相关文章

MySQL 中常见的数据类型及其使用范围、大小和默认值
MySQL 关键字及其作用
在mysql 数据库中,什么是启用外键约束
在终端输入mysql命令回车后不能修改的问题
创建用户信息表的SQL语句解释
如何查看mysql 端口命令
key-buffer是什么?
default-character-set=utf8是什么意思?
default-storage-engine=innodb是什么?
mysql删除binlog日志后无法启动
sql重复记录查询与删除
mysql 8.0 安装时出现获取 GPG 密钥失败解决办法
获取 GPG 密钥失败:
使用 MySQL Yum 存储库在 Linux 上安装 MySQL
mysql 无法进入数据库报错
centos 7 安装mysql服务
mysql 数据库导入
MYSQL常用命令大全
mysql忘记密码如何重置密码,以及修改root密码的三种方法
mysql 密码问题

文章标签

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