【问题标题】:Error establishing a database connection with WordPress on CloudSQL在 CloudSQL 上与 WordPress 建立数据库连接时出错
【发布时间】:2014-03-23 07:26:13
【问题描述】:

在我的一生中,我无法将我的 WordPress Google App Engine 部署连接到我拥有的 CloudSQL 实例。

app.yaml

application: dark-gateway-XXX
version: wp
runtime: php
api_version: 1

handlers:
- url: /(.*\.(htm|html|css|js))$
static_files: wordpress/\1
upload: wordpress/.*\.(htm|html|css|js)$
application_readable: true

- url: /wp-content/(.*\.(ico|jpg|png|gif))$
static_files: wordpress/wp-content/\1
upload: wordpress/wp-content/.*\.(ico|jpg|png|gif)$
application_readable: true

- url: /(.*\.(ico|jpg|png|gif))$
static_files: wordpress/\1
upload: wordpress/.*\.(ico|jpg|png|gif)$

- url: /wp-admin/(.+)
script: wordpress/wp-admin/\1
secure: always

- url: /wp-admin/
script: wordpress/wp-admin/index.php
secure: always

- url: /wp-login.php
script: wordpress/wp-login.php
secure: always

- url: /wp-cron.php
script: wordpress/wp-cron.php
login: admin

- url: /xmlrpc.php
script: wordpress/xmlrpc.php

- url: /wp-(.+).php
script: wordpress/wp-\1.php

- url: /(.+)?/?
script: wordpress/index.php`

wp-配置

<?php
/**
 * The base configurations of the WordPress.
 *
 * This file has the following configurations: MySQL settings, Table Prefix,
 * Secret Keys, WordPress Language, and ABSPATH. You can find more information
 * by visiting {@link http://codex.wordpress.org/Editing_wp-config.php Editing
 * wp-config.php} Codex page. You can get the MySQL settings from your web host.
 *
 * This file is used by the wp-config.php creation script during the
 * installation. You don't have to use the web site, you can just copy this file
 * to "wp-config.php" and fill in the values.
 *
 * @package WordPress
 */

// Required for batcache use
define('WP_CACHE', true);

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'production_db');

/** MySQL database username */
define('DB_USER', 'root');

if (isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'],'Google App Engine') !== false) {
/** Live environment Cloud SQL login and SITE_URL info */
    define('DB_HOST', ':/cloudsql/dark-gateway-XXX:production');
define('DB_USER', 'root');
define('DB_PASSWORD', 'XXXX');
} else {
/** Local environment MySQL login info */
    define('DB_HOST', '127.0.0.1');
define('DB_USER', 'root');
define('DB_PASSWORD', 'password');
}

// Determine HTTP or HTTPS, then set WP_SITEURL and WP_HOME
if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443)
{
$protocol_to_use = 'https://';
} else {
    $protocol_to_use = 'http://';
}
define( 'WP_SITEURL', $protocol_to_use . $_SERVER['HTTP_HOST']);
define( 'WP_HOME', $protocol_to_use . $_SERVER['HTTP_HOST']);

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

/**#@+
 * Authentication Unique Keys and Salts.
 *
 * Change these to different unique phrases!
 * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
 * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

/**#@-*/

/**
 * WordPress Database Table prefix.
 *
 * You can have multiple installations in one database if you give each a unique
 * prefix. Only numbers, letters, and underscores please!
 */
$table_prefix  = 'wp_';

/**
 * WordPress Localized Language, defaults to English.
 *
 * Change this to localize WordPress. A corresponding MO file for the chosen
 * language must be installed to wp-content/languages. For example, install
 * de_DE.mo to wp-content/languages and set WPLANG to 'de_DE' to enable German
 * language support.
 */
define('WPLANG', '');

/**
 * For developers: WordPress debugging mode.
 *
 * Change this to true to enable the display of notices during development.
 * It is strongly recommended that plugin and theme developers use WP_DEBUG
 * in their development environments.
 */
define('WP_DEBUG', false);

/* That's all, stop editing! Happy blogging. */

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/wordpress/');

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

// configures batcache
$batcache = [
  'seconds'=>0,
  'max_age'=>30*60, // 30 minutes
  'debug'=>false
];

我遵循了这些指示。我唯一不同的是重命名我的数据库。 http://googlecloudplatform.github.io/appengine-php-wordpress-starter-project/

任何帮助都将不胜感激,因为我无法在任何地方找到此信息。

【问题讨论】:

    标签: php mysql wordpress google-app-engine google-cloud-sql


    【解决方案1】:

    当以 root 身份从 App Engine 连接到 Cloud SQL 时,您不应使用密码,而应使用空字符串:

    define('DB_HOST', ':/cloudsql/dark-gateway-XXX:production');
    define('DB_USER', 'root');
    define('DB_PASSWORD', '');
    

    https://developers.google.com/appengine/docs/php/cloud-sql/#PHP_Connect_to_your_database

    您可以在控制台中设置的root密码仅适用于外部连接。

    【讨论】:

    • 密码是问题,非常感谢!我可以设计和实现大规模的应用程序供应,但说到 SQL,我就像一个 5 岁的孩子。
    • 唷,这并不容易假设。谢谢
    【解决方案2】:

    您的文件看起来不错,因此下一步是在运行时验证设置。在wp-config.php中,在define('DB_HOST',...)行前,添加一行log执行,如:

    syslog(LOG_INFO, 'setting AppEngine Cloud SQL client parameters');
    

    在预期的数据库访问之前和之后,在此处未显示的其他项目文件中添加类似的 syslog 调用。尽可能包括变量的值。查看AppEngine Dashboard 的日志部分中的输出。结果应该使您能够逐渐接近实际故障。

    【讨论】:

    • IanGSY 回答了它,但我将日志记录作为其中的一部分添加,因为这会在昨晚有所帮助!你们都很棒。谢谢!
    猜你喜欢
    • 2016-07-17
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2021-05-28
    • 1970-01-01
    • 2015-08-11
    相关资源
    最近更新 更多