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


Yii: How to connect remotely to a database?

我正在尝试使用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 [错误] [异常。CDbException] SQLSTATE[HY000]
[2003] 无法连接到"mysql5.ms.domain.net"上的 MySQL 服务器 (13)
2013/10/16 09:14:22 [信息] [应用程序] 用户: 访客 (ID: )

这段代码对我有效:

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

您是否在数据库服务器上配置了 %root 远程访问

编辑:

对于配置远程访问:

该过程有两个步骤:

a) 授予权限。作为根用户执行:

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

b) 绑定到所有地址:

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

#bind-address = 127.0.0.1 

并重新启动 MySQL

service mysql restart

@hovanessyan解决方案:来自所有主机的 MySQL 根访问权限

这是服务器可访问性的问题,而不是用户访问的问题。检查 mysql 服务器的端口号(必须是 3306,如果不是 - 使用 mysql:host=192.168.0.2;port=<your port>;dbname=mydb )并尝试从 yii 放置的位置ping 192.168.0.2(或者也许可以从这里运行这个nmap -p 3306 -sT 192.168.0.2