国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

請(qǐng)求有時(shí)會(huì)出現(xiàn) MySQL server has gone away

awen

問題描述

如圖:
截圖
同樣的接口請(qǐng)求前兩次都出現(xiàn)General error: 2006 MySQL server has gone away, 但實(shí)際mysql并沒有掛,其他接口也正常運(yùn)行。
報(bào)錯(cuò)的接口第三次再請(qǐng)求也正常了,這是什么原因?

777 4 0
4個(gè)回答

walkor 打賞

看下mysql啟動(dòng)時(shí)間,可能在重啟

  • awen 2025-01-03

    應(yīng)該沒有重啟

  • awen 2025-01-03

    我們這是個(gè)saas系統(tǒng),租戶的數(shù)據(jù)庫是同一實(shí)例不的數(shù)據(jù)庫,比如:tenant_1,tenant_2... 這樣分開,我們自己寫個(gè)全局中間件,根據(jù)傳來的租戶ID來動(dòng)態(tài)選擇數(shù)據(jù)庫連接,我想會(huì)不會(huì)是中間件的問題?

awen

截圖
應(yīng)該沒重啟

  • 暫無評(píng)論
walkor 打賞

從報(bào)錯(cuò)看只知道m(xù)ysql連接被mysql服務(wù)端斷開了,具體為什么斷開從給的信息中無法判斷,看下mysql日志是否有有用的信息。這個(gè)問題需要自己定位下,從提供的信息中看其他人幫不上什么忙。

  • 暫無評(píng)論
awen

大佬幫我簡(jiǎn)單看一眼,這代碼有沒有問題

截圖

截圖

public static function getInstance($config = [])
{
if (self::$instance === null) {
self::$instance = new self($config);
self::$instance->capsule = new Capsule(IlluminateContainer::getInstance());
self::$instance->config = $config;
}
return self::$instance;
}

/**
 * 構(gòu)建數(shù)據(jù)庫連接
 * @param int $tenantId 租戶id
 * @return \Illuminate\Database\Connection
 */
public function buildConnection(int $tenantId = 0)
{
    $method = config('plugin.yesgooo.dynamic-database-manager.conf.method') ?? 'header';
    //如外部指定租戶直接取指定值,否則從請(qǐng)求頭部獲取當(dāng)前租戶標(biāo)識(shí),默認(rèn)0
    $flag = $tenantId ?: \request()->$method(config('plugin.yesgooo.dynamic-database-manager.conf.flag'), 0);

    //當(dāng)前公司數(shù)據(jù)庫名稱,如未傳公司ID取默認(rèn)配置數(shù)據(jù)庫名
    $database = $flag ? config('plugin.yesgooo.dynamic-database-manager.conf.database_prefix').$flag : config('plugin.yesgooo.dynamic-database-manager.conf.default_database');

    //當(dāng)前的數(shù)據(jù)庫連接名稱
    $curConnect = $flag ? config('plugin.yesgooo.dynamic-database-manager.conf.conn_prefix') . $flag : 'default';

    $config = $this->config ?: [
        'driver' => 'mysql',
        'host'        => config('plugin.yesgooo.dynamic-database-manager.conf.host'),
        'port'        => config('plugin.yesgooo.dynamic-database-manager.conf.port'),
        'database'    => $database,
        'username'    => config('plugin.yesgooo.dynamic-database-manager.conf.username'),
        'password'    => config('plugin.yesgooo.dynamic-database-manager.conf.password'),
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
    ];

    $defaultConnect = $this->capsule->getDatabaseManager()->getDefaultConnection();

    //通過容器獲取全部數(shù)據(jù)庫連接
    $allConnect = $this->capsule->getContainer()['config']['database.connections'];

    //如果當(dāng)前連接還沒有,則新增連接
    if(!in_array($curConnect, array_keys($allConnect))){
        $this->capsule->addConnection($config, $curConnect); // TODO: Change the autogenerated stub
    }

    //如果默認(rèn)連接不是當(dāng)前連接,則設(shè)置成默認(rèn)連接
    if($defaultConnect != $curConnect){
        //斷開當(dāng)前連接 2023-12-13
        $this->capsule->getDatabaseManager()->disconnect();
        //重置默認(rèn)連接
        $this->capsule->getDatabaseManager()->setDefaultConnection($curConnect);
    }

    $this->capsule->setAsGlobal();

    $this->capsule->bootEloquent();
}
  • walkor 2025-01-03

    你這個(gè)是自己做的數(shù)據(jù)庫接入,沒用webman自帶的,webman自帶的有數(shù)據(jù)庫心跳,你的沒看到哪里有心跳,所以mysql連接會(huì)斷開。
    下次提問的時(shí)候把相關(guān)信息說清楚,這樣大家節(jié)省時(shí)間。

  • awen 2025-01-03

    謝謝大佬回復(fù),自帶的因?yàn)闆]有看到怎么實(shí)現(xiàn)切換數(shù)據(jù)庫,所以就自己研究了下做了個(gè)插件。自帶數(shù)據(jù)庫顫抖有方法實(shí)現(xiàn)切換數(shù)據(jù)庫嗎

  • walkor 2025-01-03

    如果你的數(shù)據(jù)庫是同一個(gè)ip端口可以在中間件里用 use database 語句切換數(shù)據(jù)庫

  • calvin 2025-07-21

    我這邊的saas切庫用的是use database 但也出現(xiàn)這個(gè)報(bào)錯(cuò),不知道啥情況了

??