內容目录

上一个主题

如何使用 SSH/SFTP 客户端登录容器虚拟机

下一个主题

如何使用独享MySQL服务

如何使用共享MySQL服务

概述

在使用共享MySQL服务前,您需要先在其服务面板里创建自己的数据库。

以下是和共享数据库使用相关的环境变量:

MYSQL_HOST MySQL主库的host
MYSQL_HOST_S MySQL从库的host
MYSQL_PORT MySQL的端口
ACCESSKEY 应用的AccessKey(当前应用的数据库的用户名)
SECRETKEY 应用的SecretKey(当前应用的数据库的密码)

NodeJS

对于NodeJS应用,您可以使用 node-mysql

您可以通过 npm 来安装node-mysql扩展。

$ npm install --save mysql

以上命令会安装node-mysql到node_modules目录下,并将依赖添加到 package.json 里。

下面是一段简单的使用示例:

var mysql      = require('mysql');

// 连接共享型MySQL
var connection = mysql.createConnection({
    host     : process.env.MYSQL_HOST,
    port     : process.env.MYSQL_PORT,
    user     : process.env.ACCESSKEY,
    password : process.env.SECRETKEY,
    database : 'app_' + process.env.APPNAME
});
connection.query('show status', function(err, rows) {
    if (err) {
        // 处理错误
    }

    // 处理query的结果
});

完整示例代码

Go

您可以使用 github.com/go-sql-driver/mysql 来连接共享MySQL数据库。

import "os"
import "database/sql"
import _ "github.com/go-sql-driver/mysql"

db, err := sql.Open("mysql", os.ExpandEnv("$ACCESSKEY:$SECRETKEY@tcp($MYSQL_HOST:$MYSQL_PORT)/app_$APPNAME"))
defer db.Close()

完整示例代码

Java

您可以直接使用jdbc驱动连接数据库,在您项目中的 pom.xml 文件中添加您需要的jdbc的依赖库。

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.20</version>
</dependency>

使用:

String driver = "com.mysql.jdbc.Driver";
String username = System.getenv("ACCESSKEY");
String password = System.getenv("SECRETKEY");
//System.getenv("MYSQL_HOST_S"); 为从库,只读
String dbUrl = String.format("jdbc:mysql://%s:%s/%s", System.getenv("MYSQL_HOST"), System.getenv("MYSQL_PORT"), System.getenv("MYSQL_DB"));
try {
    Class.forName(driver).newInstance();
    con = DriverManager.getConnection(dbUrl, username, password);
    // ...
} catch (Exception e) {
    // ...
}

注解

注意:如果您使用了连接池,如C3P0,请将连接池的idletime调整60秒以下,否则连接可能会被服务端主动断开。

Python

您可以使用 MySQL-python 或者任何其它python mysql客户端连接数据库。

安装:

$ pip install MySQL-python

您需要将 MySQL-python 加入 requirements.txt 中,告诉容器云的构建程序在构建的时候安装MySQL-python。

使用:

host = os.environ.get('MYSQL_HOST')
port = int(os.environ.get('MYSQL_PORT'))
user = os.environ.get('ACCESSKEY')
passwd = os.environ.get('SECRETKEY')
db = 'app_' + os.environ.get('APPNAME')

import MySQLdb
db = MySQLdb.connect(host=host, port=port, user=user, passwd=passwd, db=db)