0

我正在尝试使用远程连接到数据库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' (13) 上的 MySQL 服务器
2013/10/16 09:14:22 [info] [application] 用户:Guest (ID: )

4

2 回答 2

3

此代码对我有效:

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

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

编辑:

对于配置远程访问:

这个过程有两个步骤:

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 根访问

于 2013-10-16T06:30:25.093 回答
2

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

于 2013-10-16T08:35:31.683 回答