文档中心 V3.0
MySQL

MySQL(数据库)是MoPaaS为开发者提供的分布式的关系型数据库服务,后端采用业界广泛使用的数据库:MySQL,并且在前端提供与MySQL完全一致的使用方式。其特点如下:
1.应用迁移的代价几乎为零;
2.支持百万级别的后端数据库集群,并且多机房自动冗余备份,自动读写分离,开发者不需要关注后端机器及数据库的稳定性、网络问题、机房灾难、单库压力等各种风险,像连接本地MySQL一样使用SQL服务即可;
3.提供数据隔离,不同应用的数据会存在于不同的数据库中而不会相互影响;
4.提供安全性检查,对于恶意攻击性访问及时发现并拒绝;
5.支持各语言原生的SDK访问数据库。

使用示例

接下来,我们将通过本教程介绍如何使用MySQL服务。步骤包括:
1.在您的MoPaaS应用控制台界面中创建绑定MySQL服务。
2.备份和下载数据库文件。
3.代码示例。
注意:系统检测到sql语句为慢查询的时候,有可能被系统中断。
在应用中心页面,点击某个应用,进入控制台页。点击“服务详情”可以查看并添加当前支持的所有服务。创建MySQL步骤如下:
1、选择MySQL,输入服务名称,点击创建按钮
注:在创建页面可以对Mysql进行简单的配置

mysql-1.png
mysql-2.png

2、创建成功后,将在您的服务列表中显示出数据库MySQL。

mysql-3.png

3、点击绑定按钮,使服务MySQL与当前应用绑定

mysql-4.png

4、点击管理按钮进入数据库详情页,显示了数据库的各项详细信息。

mysql-5.png

注意:数据库的用户名和密码等就是“USER”、“PASSWORD”,……可点击显示查看
5、点击“PHPMyAdmin”进入PHPMyAdmin管理MySQL数据库

mysql-6.png

代码示例

PHP:

<?php
/*替换为你自己的数据库名*/
$dbname = 'd4858ebccee1d4e03923f9fb2104ca681';
/*填入数据库连接信息*/
$host = '10.4.3.92';
$port = 3306;
$user = 'ucYDlWSS0to5H';//用户名
$pwd = 'pueYXP2xyEBeC';//密码
/*以上信息都可以在数据库管里页面查找到*/
/*接着调用mysql_connect()连接服务器*/
$link = @mysql_connect("{$host}:{$port}",$user,$pwd,true);
if(!$link) {
die("Connect Server Failed: " . mysql_error());
}
/*连接成功后立即调用mysql_select_db()选中需要连接的数据库*/
if(!mysql_select_db($dbname,$link)) {
die("Select Database Failed: " . mysql_error($link));
}
/*至此连接已完全建立,就可对当前数据库进行相应的操作了*/
//创建一个数据库表
$sql = "create table if not exists test_mysql(
id int primary key auto_increment,
no int,
name varchar(1024),
key idx_no(no))";
$ret = mysql_query($sql, $link);
if ($ret === false) {
die("Create Table Failed: " . mysql_error($link));
} else {
echo "Create Table Succeed<br />";
}
/*显式关闭连接,非必须*/
mysql_close($link);
?>
<?php


Java:

public class MySQLBasic extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Connection connection = null;
Statement stmt = null;
ResultSet rs = null;
String sql = null;
try {
/*****1. 填写数据库相关信息(请查找数据库管理页面)*****/
String databaseName = " d4858ebccee1d4e03923f9fb2104ca681 ";
String host = "10.4.3.92";
String port = "3306";
String username = "ucYDlWSS0to5H";//用户名;
String password = "pueYXP2xyEBeC";//密码
String driverName = "com.mysql.jdbc.Driver";
String dbUrl = "jdbc:mysql://";
String serverName = host + ":" + port + "/";
String connName = dbUrl + serverName + databaseName;
/******2. 接着连接并选择数据库名为databaseName的服务器******/
Class.forName(driverName);
connection = DriverManager.getConnection(connName, username, password);
stmt = connection.createStatement();
/*至此连接已完全建立,就可对当前数据库进行相应的操作了*/
/* 3. 接下来就可以使用其它标准mysql函数操作进行数据库操作*/
//创建一个数据库表
sql = "create table if not exists test_mysql(" +
"id int primary key auto_increment," +
"no int, "+
"name varchar(1024)," +
"key idx_no(no))";
stmt.execute(sql);
} catch (Exception e) {
e.printStackTrace(resp.getWriter());
}
}
}


Python:

#-*- coding:utf-8 -*-
def test_sql():
### 开发者直接在requirements.txt中指定依赖MySQL-python使用
import MySQLdb
dbname = "d4858ebccee1d4e03923f9fb2104ca681"
### 连接MySql服务
mydb = MySQLdb.connect(
host = "10.4.3.92",
port = 3306,
user = ucYDlWSS0to5H,
passwd = pueYXP2xyEBeC,
db = dbname)
### 执行sql命令,创建table test
cursor = mydb.cursor()
cmd = '''CREATE TABLE IF NOT EXISTS test (
id int(4) auto_increment,
name char(20) not null,
age int(2),
sex char(8) default 'man',
primary key (id))'''
cursor.execute(cmd)
mydb.close()
return 'create table test success!'
def app(environ, start_response):
status = '200 OK'
headers = [('Content-type', 'text/html')]
start_response(status, headers)
try:
return test_sql()
except:
return 'handle exceptions'
from bae.core.wsgi import WSGIApplication
application = WSGIApplication(app)


Node.js:

var mysql = require('mysql');
//填写数据库连接信息,可查询数据库详情页
var username = 'ucYDlWSS0to5H';
var password = 'pueYXP2xyEBeC';
var db_host = '10.4.3.92';
var db_port = 3306;
var db_name = 'd4858ebccee1d4e03923f9fb2104ca681';
var option = {
host: db_host,
port: db_port,
user: username,
password: password,
database: db_name
}
//连接数据库
function testSql(req, res) {
var TEST_TABLE = 'baeSql';
var client = mysql.createConnection(option);
client.connect(function(err){
if (err) {
res.end('connect error');
console.log(err);
return;
}
res.write('connected success\n');
createTalble(client);
});
client.on('error',function(err) {
if (err.errno != 'ECONNRESET') {
throw err;
} else {
//do nothing
}
});
//至此连接已建立,可以对数据库进行操作
function createTalble(client) {
client.query(
'CREATE TABLE '+ TEST_TABLE +
'(id INT(11) AUTO_INCREMENT, '+
'title VARCHAR(255), '+
'text TEXT, '+
'PRIMARY KEY (id));', function(err, results) {
if (err && err.number != client.ERROR_TABLE_EXISTS_ERROR) {
console.log(err);
return;
}
res.write("create table success \n");
insertData(client);
}
);
}
function insertData(client) {
client.query(
'INSERT INTO '+ TEST_TABLE +
' SET title = ?, text = ?',
['baidu', 'welcome to BAE'],
function(err, results) {
if (err) {
res.end('insertData error');
console.log(err);
return;
}
res.write('insert success \n');
queryData(client);
}
);
}
function queryData (client) {
client.query(
'SELECT * FROM '+TEST_TABLE,
function (err, results, fields) {
if (err) {
res.end('query error');
console.log(err);
return;
}
// res.end('results: ' + JSON.stringify(results) + '\n');
res.write('query success \n');
res.end('results length: ' + results.length);
client.end();
}
);
}
}
module.exports = testSql