Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何更改cPanel服务器上每个用户的innodb_autoinc_lock_模式变量?_Mysql - Fatal编程技术网

Mysql 如何更改cPanel服务器上每个用户的innodb_autoinc_lock_模式变量?

Mysql 如何更改cPanel服务器上每个用户的innodb_autoinc_lock_模式变量?,mysql,Mysql,我想将MySQL变量innodb_autoinc_lock_mode从默认值1更改为0,因为它会导致使用INSERT IGNORE等进行查询的应用程序中的自动增量ID间隔出现问题 我知道可以通过添加以下设置来更改所有服务器的设置: innodb_autoinc_lock_mode=0 内部文件: /etc/my.cnf 但是,是否可以对每个用户执行此操作,例如在cPanel/WHM共享托管帐户上的php.ini文件中执行此操作 我已尝试使用变量和值设置文件: /home/username/.

我想将MySQL变量innodb_autoinc_lock_mode从默认值1更改为0,因为它会导致使用INSERT IGNORE等进行查询的应用程序中的自动增量ID间隔出现问题

我知道可以通过添加以下设置来更改所有服务器的设置:

innodb_autoinc_lock_mode=0
内部文件:

/etc/my.cnf
但是,是否可以对每个用户执行此操作,例如在cPanel/WHM共享托管帐户上的php.ini文件中执行此操作

我已尝试使用变量和值设置文件:

/home/username/.my.cnf
/home/username/my.cnf
/home/username/etc/.my.cnf
/home/username/etc/my.cnf
它们似乎都不起作用,你知道如何做到这一点,通过设置每个用户的文件或通过phpMyAdmin等

谢谢

是一个全局(非会话)变量,在运行时是只读的

在任何情况下,同一MySQL服务器的多个连接都不可能有不同的变量值


此外,我不确定将此值设置为0是否与您认为的有关
INSERT。。。重复密钥更新时
语句。如果它确实避免了已分配但不需要的值丢失,那么文档在这一点上就不清楚了。

感谢您的回复,该设置确实符合我原来帖子中的建议,我已经在my.cnf中以root身份测试了设置,尽管文档不清楚值0是否在插入忽略的情况下防止了autoinc间隙,这在插入失败的情况下会增加计数器(顺便说一句,这很奇怪,设计上不应该发生,但确实如此!),当配置innodb_autoinc_lock_mode=0时,这似乎是固定的。因此,总结来说,不可能通过任何方式为每个用户设置全局变量?当一个变量仅为全局变量时——就像这样——这是正确的:整个服务器只有一个值。有些变量是全局变量和会话变量——通常,在这种情况下,您在连接时获得全局值,但可以在会话(连接)中更改它。仔细想想,这是一种锁定模式,因此如果不同连接上的不同用户可能具有不同的值,这将破坏变量的整个用途,从而确保所有连接都使用兼容的锁定模式,并且不会破坏彼此的插入。