Принудительное wordpress для подключения к базе данных через TCP

Я пытаюсь подключить wordpress, запущенный на моей машине, к удаленной базе данных mysql, которая туннелируется на моей машине (localhost). Соединение с базой данных работает, предоставляя следующие параметры клиенту CLI mysql

 $ mysql --protocol=TCP -P 10000 -h localhost -u username -p'password' db_name Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 93438893 Server version: 5.5.8-log Source distribution Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +-----------------------------------+ | Database | +-----------------------------------+ | information_schema | | db_name | +-----------------------------------+ 2 rows in set (1.38 sec) 

В wp-config.php файле wordpress я пробовал следующие значения:

 define('DB_NAME', 'db_name'); define('DB_USER', 'username'); define('DB_PASSWORD', 'password'); define('DB_HOST', 'localhost'); define('DB_PORT', 10000); 

это не работает и выдает следующую ошибку:

 Warning: include(/home/gaurish/Dropbox/code/projects/blog/wp-content/advanced-cache.php): failed to open stream: No such file or directory in /home/gaurish/Dropbox/code/projects/blog/wp-settings.php on line 62 Warning: include(): Failed opening '/home/gaurish/Dropbox/code/projects/blog/wp-content/advanced-cache.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /home/gaurish/Dropbox/code/projects/blog/wp-settings.php on line 62 Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/gaurish/Dropbox/code/projects/blog/wp-includes/wp-db.php on line 1038 

последняя строка в вышеприведенной ошибке ( Can't connect to local MySQL server through socket удается Can't connect to local MySQL server through socket ) дает ему прочь, почему соединение терпит неудачу, поскольку WordPress пытается подключиться через unix-сокет.

Теперь, какие параметры мне нужно настроить, чтобы иметь возможность заставить WordPress подключаться к базе данных так же, как клиент CLI mysql ?

Если вы хотите подключиться через TCP вместо Unix-сокета, попробуйте изменить хост с localhost на 127.0.0.1 .

 define('DB_HOST', '127.0.0.1'); // forces TCP 

Я смог подключиться, используя следующие настройки в wp-config.php .

 define('DB_NAME', 'db_name'); define('DB_USER', 'username'); define('DB_PASSWORD', 'password'); define('DB_HOST', '127.0.0.1:10000'); define('DB_PORT', 10000); 

соединение с базой данных было успешным 🙂

Проверьте это: http://chxo.com/be2/20040511_5667.html

Объясняет все это очень хорошо (не видел, что точка повторяет то, что она говорит, вот где я пошел, когда мне нужно было это сделать).