gpt4 book ai didi

php - 中间的 nohup php 脚本 mysql 问题

转载 作者:行者123 更新时间:2023-11-29 02:51:13 25 4
gpt4 key购买 nike

我有一个通过 nohup 运行的 php 脚本,它在使用 mysql 的过程中遇到了这个问题。我的脚本遍历了数百个数据库并通过执行模式迁移。 (所有相同的模式)

`system("mysql --host=$db_host --user=$db_user --password=$db_password -v -v -v $database < ../update.sql");`

在迁移过程中会发生这种情况:

--------------
ALTER TABLE `phppos_customers` ADD `current_sales_for_discount` int(10) NOT NULL DEFAULT '0' AFTER `current_spend_for_points`
--------------

Terminal close -- sending "KILL QUERY 966" to server ...
Terminal close -- query aborted
Aborted

php 脚本继续运行,其他数据库没有这个问题。什么会导致这种情况?

php 脚本通过以下方式运行:

nohup php update_pos_databases.php > results.txt 2>&1 </dev/null &

这是在 Mac OS X 10.11.3 上

这是我的超时值:

mysql> SHOW VARIABLES LIKE "%_timeout";
+-----------------------------+----------+
| Variable_name | Value |
+-----------------------------+----------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| have_statement_timeout | YES |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| rpl_stop_slave_timeout | 31536000 |
| slave_net_timeout | 60 |
| wait_timeout | 28800 |
+-----------------------------+----------+
13 rows in set (0.00 sec)

我应该更改哪些?

这里是关于代码的更多信息:

foreach($databases as $database)
{
echo "Running queries on $database\n***********************************\n";
system("mysql --host=$db_host --user=$db_user --password=$db_password -v -v -v $database < ../update.sql");
echo "\n\n";
}

最佳答案

一些建议(在旧的 reddit 线程中找到):

运行 nohup 命令后使用“disown”。例如

nohup php update_pos_databases.php > results.txt 2>&1 </dev/null &
disown %1

或:

使用“screen”代替 nohup。

关于php - 中间的 nohup php 脚本 mysql 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35441485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com