2017-06-21 16:35:09 9724次浏览 4条回答 0 悬赏 10 金钱

无论我的mysql的配置写的什么,只要写的是IP地址就链接不上 提示 SQLSTATE[HY000] [2002] Operation now in progress
就像这样:

   'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:host=127.0.0.1;dbname=test',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
    ],

但是当我把数据库的配置文件改成域名访问,这样:

   'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:host=localhost;dbname=test',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
    ],

就可以访问了。
在命令行下,是可以通过 mysql -h127.0.0.1 -uroot 来访问的。而且之前的项目也会报这个错误,之前运行也是没问题的。

补充于 2017-06-21 17:09

这个是因为什么原因呢?今天执行了一个耗时的mysql任务,难道是因为这个?

最佳答案

  • cola 发布于 2017-06-22 09:15 举报

    127.0.0.1和localhost的区别我记得127.0.0.1使用TCP/IP连接,localhost使用Unix socket,是不是这的问题

    1 条回复
    回复于 2017-06-22 14:51 回复

    应该是这个原因,我之前修改了 php.ini 中的 default_socket_timeout=-1 现在把这个值设置成default_socket_timeout=60 的默认值,然后重启 php-fpm 问题就解决了,程序就能正确运行了。
    我查了一下,当主机填写为localhost时mysql会采用 unix domain socket连接,当主机填写为127.0.0.1时mysql会采用tcp方式连接。
    但还是不明白为什么会报这个错误

  • 回答于 2017-06-22 09:08 举报

    加个端口号

  • 回答于 2017-06-22 09:15 举报

    'db' => [

            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=121.22.44.88;dbname=rent',
            'username' => 'root',
            'password' => 'root',
            'charset' => 'utf8',
            'tablePrefix' => 'bab_'
        ],
    
  • 回答于 2017-06-22 10:38 举报

    应该是host,要和数据库里 连接信息里的名字一致。

您需要登录后才可以回答。登录 | 立即注册
zhangyuCUMT
职场新人

zhangyuCUMT

注册时间:2016-04-29
最后登录:2017-09-29
在线时长:2小时10分
  • 粉丝0
  • 金钱55
  • 威望0
  • 积分75

热门问题