Yii:如何远程连接到数据库?

时间:2013-10-16 06:25:54

标签: php mysql yii

我正在尝试使用Yii framework

远程连接数据库

是否有任何特定设置,因为我无法连接到数据库。

'db' => array(
    'class' => 'PortalDbConnection',
    'connectionString' => 'mysql:host=192.168.0.2;dbname=mydb',
    'username' => 'root',
    'password' => '',
    'tablePrefix' => '',
    'emulatePrepare' => true,
    'enableParamLogging' => true,
    'enableProfiling' => true,
    'charset' => 'utf8',
),

错误

  

2013/10/16 09:14:22 [错误] [exception.CDbException] SQLSTATE [HY000]
  [2003]无法连接到'mysql5.ms.domain.net'上的MySQL服务器(13)
  2013/10/16 09:14:22 [info] [application]用户:Guest(ID :)

2 个答案:

答案 0 :(得分:3)

此代码对我有效:

'db'=>array( 
        'connectionString' => 'mysql:host=192.168.1.96;dbname=dbname',
        'emulatePrepare' => true,
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
        'enableProfiling'=>true,
        'enableParamLogging' => true,
    ),

远程

数据库服务器 访问 已配置? >

<强>编辑:

配置远程访问:

该过程有两个步骤:

a) 授予权限。以root用户身份执行:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';

b) 绑定到所有地址:

最简单的方法是在my.cnf文件中注释掉该行:

#bind-address = 127.0.0.1 

并重启mysql

service mysql restart

@hovanessyan解决方案:MySQL root access from all hosts

答案 1 :(得分:2)

这是服务器访问的问题,而不是用户访问。检查mysql服务器的端口号(必须是3306,否则使用mysql:host=192.168.0.2;port=<your port>;dbname=mydb)并尝试ping 192.168.0.2(或者可以运行此nmap -p 3306 -sT 192.168.0.2,来自here)从yii放置的地方