我们最近开始使用Zend框架。我开始开发关于我的地方XAMPP服务器哪去了好的,但当我上传到我的1and1帐户,我不断收到以下错误:

信息:SQLSTATE[HY000][2002年]不能 连接到当地的MySQL server通过 插座'/var/运营/mysql/mysql.袜子' (2)

我已经尝试改变资源。db。参数。unix_socket线在我的应用程序。ini文件的不同部分中提到的phpinfo但没有成功。我找到了 在这里, 那人回答

是MySQL server于同一主 作为网络应用程序?如果不,你 不能使用一个插座连接, 将需要通过连接TCP。

我认为,这种情况与我的网主机。我如何可以改变苏连接via TCP,而不是?我目前正在使用PDO_MYSQL.

有帮助吗?

解决方案 2

我已经离开了行:

defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));

在我的index.php如但改变了公用/ htaccess来

SetEnv APPLICATION_ENV production

它看起来像htaccess的没有被读出。我改变了else语句在index.php来“生产”使用生产数据库的设置和它的工作。很令人沮丧。我不知道为什么没有被读取环境变量。感谢您的帮助。

其他提示

你如何连接到MySQL取决于传递给 mysql_connect()函数中的参数。如果你传递一个文件路径,即。 /var/run/mysqld/mysqld.sock,它会尝试一个套接字连接。如果你传递一个主机名,它会试图建立TCP连接。

您需要找到MySQL服务器的主机名(或IP),并连接到它是这样的:

mysql_connect('127.0.0.1:3306',$username,$password);

赔率是ZF,你可以在那里您存储数据库设置,或在配置文件中指定此当您使用host设置连接到数据库:

$db = new Zend_Db_Adapter_Pdo_Mysql(array(
    'host'     => '127.0.0.1',
    'username' => 'webuser',
    'password' => 'xxxxxxxx',
    'dbname'   => 'test'
));

修改:如果您的的传递一个正确的主机名/端口的主机参数mysql_connect()并获得此消息,那么它很可能是服务器配置有问题<。 / p>

尝试调整mysql.default_socket设置,即使用在php.ini或在应用程序代码的顶部的ini_set()

ini_set('mysql.default_socket','/path/to/real/socket.sock');

您将不得不找出其中套接字文件。通常它的“/var/lib/mysql/mysql.sock”,但我认为这是取决于系统。

Zend框架具有分贝PARAMS unix_socket选项,只需使用它

 $config= array(
 'db' => array(
'host'   => 'localhost',
'username' => 'user',
'password' => 'pass',
'dbname' => 'dbname',
'dbprefix' => '',
'unix_socket' => '/var/lib/mysqld/mysqld.sock'
  )
);
scroll top