如何使用独享MySQL服务
######################

概述
=======

在使用独享MySQL服务前,您需要先在其服务面板里创建自己的数据库实例、用户和数据库。


.. _docker-rds-nodejs:

NodeJS
==========

对于NodeJS应用,您可以使用 `node-mysql <https://github.com/felixge/node-mysql>`_ 。

您可以通过 `npm <http://npmjs.org/>`_ 来安装node-mysql扩展。

.. code-block:: console

    $ npm install --save mysql

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

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

.. code-block:: javascript

    var mysql      = require('mysql');

    var connection = mysql.createConnection({
        host     : '数据库地址',
        port     : '数据库端口',
        user     : '用户名',
        password : '密码',
        database : '数据库名称'
    });
    connection.query('show status', function(err, rows) {
        if (err) {
            // 处理错误
        }

        // 处理query的结果
    });


.. _docker-rds-go:

Go
=========

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

.. code-block:: go

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

    db, err := sql.Open("mysql", "用户名:密码@tcp(数据库地址:数据库端口)/数据库名称"))
    defer db.Close()


.. _docker-rds-java:

Java
=========

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

.. code-block:: xml

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

使用:

.. code-block:: java

    String driver = "com.mysql.jdbc.Driver";
    String username = "用户名";
    String password = "密码";
    String dbUrl = String.format("jdbc:mysql://%s:%s/%s", "数据库地址", 数据库端口, "数据库名称");
    try {
        Class.forName(driver).newInstance();
        con = DriverManager.getConnection(dbUrl, username, password);
        // ...
    } catch (Exception e) {
        // ...
    }

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

.. _docker-rds-python:

Python
==========

您可以使用 `MySQL-python <https://pypi.python.org/pypi/MySQL-python>`_ 或者任何其它python mysql客户端连接数据库。

安装:

.. code-block:: console

    $ pip install MySQL-python

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

使用:

.. code-block:: python

    host = '数据库地址'
    port = int('数据库端口')
    user = '用户名'
    passwd = '密码'
    db = '数据库名称'

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