本文汇总了使用云虚拟主机数据库时遇到的常见问题。

云虚拟主机支持哪些数据库?

不同操作系统的云虚拟主机支持不同类型的数据库,如下所示:

  • Linux操作系统云虚拟主机支持MySQL和SQLite数据库。
  • Windows操作系统云虚拟主机支持SQL Server和Access数据库。

更多信息,请参见云虚拟主机支持的数据库版本

如何管理云虚拟主机数据库?

购买云虚拟主机时,阿里云会根据您选择的数据库类型为您的云虚拟主机预装数据库。您可以在云虚拟主机管理控制台执行重置数据库密码、变更数据库、备份数据库的数据等操作,也可以通过数据管理DMS对数据库中的表和数据进行维护。更多信息,请参见云虚拟主机数据库概述

您可以通过以下方式管理数据库:

如何查看数据库已用空间?

本文以MySQL数据库为例,操作步骤如下所示:

  1. 登录云虚拟主机管理控制台
  2. 查看云虚拟主机数据库空间的使用情况。
    • 站点信息页面:

      站点信息页面的网站信息区域查看空间使用情况。

      站点信息页面
    • 数据库信息页面:

      单击左侧的数据库信息,在数据库信息页面的数据空间列下查看空间使用情况。

      数据库信息页面

如何扩大云虚拟主机的数据库空间?

阿里云会提前为云虚拟主机预装数据库。购买云虚拟主机后,如果您需要扩大云虚拟主机的数据库空间,可以通过升级云虚拟主机来实现,具体操作,请参见升级云虚拟主机

说明 云虚拟主机的数据库空间扩容上限为1 GB。

MySQL数据库是否支持开启event_scheduler?

云虚拟主机的MySQL数据库默认关闭event_scheduler参数,且不支持手动开启。

event_scheduler是MySQL中一个类似定时器的组件,通过调用该组件,您可以在指定的时间点执行一条SQL语句或一个语句块,也可以用于在固定间隔重复执行SQL语句。

通过以下操作,您可以看到event_scheduler为关闭状态:

  1. 登录MySQL数据库。

    具体操作,请参见通过数据管理DMS Web版本登录数据库

  2. 在顶部菜单栏,选择SQL窗口
  3. SQL窗口编辑区域,输入show variables like '%sche%';,然后单击执行(F8)

    命令执行成功后,在结果集1页签下,您可以查询到event_scheduler的状态为OFF

    SQL窗口

如何修改ASP和ASP.NET网站的数据库连接字符串?

当您执行手动迁移网站数据、重置数据库密码等操作后,还需要同步修改网站程序配置文件中包含的数据库连接字符串信息。

在使用ASP或ASP.NET编写的网站程序中,一般配置文件Conn.aspWeb.Config中包含连接数据库信息的字符串。以配置文件Conn.asp为例,代码示例如下:

set Conn=server.CreateObject("ADODB.CONNECTION")
StrConn="Provider=SQLOLEDB;Data Source=云虚拟主机数据库地址,端口号;User ID=云虚拟主机数据库用户名;Password=云虚拟主机数据库密码;Initial Catalog= 云虚拟主机数据库名称"
Conn.open StrConn

数据库信息变更后,上述代码示例中的数据库信息需要您替换为变更后的数据库信息。获取数据库信息的具体操作,请参见获取和配置数据库信息

如何区别MySQL函数与MySQLi函数?

PHP可以通过MySQL和MySQLi两种函数操作MySQL数据库,函数的具体说明和示例代码如下所示:

  • MySQL函数
    • 在PHP 5.0之前,一般使用PHP的MySQL函数操作MySQL数据库,属于面向过程的方式。例如,函数mysql_query()
    • MySQL是非持久连接函数,每次连接都会打开一个新的连接进程。
    • MySQL函数语法:以query语句为例,使用mysql_query(SQL语句,资源标识)时,资源标识是可选参数,默认值是上次打开的连接或资源。
    • 以使用MySQL函数连接数据库、并从数据库中获取指定字段的值为例,MySQL示例代码如下所示:
      $conn = mysql_connect(‘localhost’, ‘user’, ‘password’); //连接mysql数据库  
      mysql_select_db(‘data_base’);  //选择数据库
      $result = mysql_query(‘select from data_base’);//第二个可选参数,指定打开的连接  
      $row = mysql_fetch_row( $result ) ) //只取一行数据  
      echo $row[0]; //输出第一个字段的值 
  • MySQLi函数
    • 在PHP 5.0之后,新增了MySQLi函数,它是MySQL函数的增强版,比MySQL函数更加稳定、高效和安全,属于面向对象的方式。例如,函数mysqli_query()
    • MySQLi是永久连接函数。即使您多次运行MySQLi函数连接服务器,也只会使用同一连接进程,可有效减少服务器的资源浪费。
    • MySQLi不仅封装了数据库操作过程中的常用方法,还封装了事务等一些高级操作。
    • MySQLi函数语法:以query语句为例,使用mysqli_query(资源标识,SQL语句)时,必须指定资源。
    • 以使用MySQLi函数连接数据库、并从数据库中获取指定字段的值为例,MySQLi示例代码如下所示:
      $conn = new mysqli(‘localhost’, ‘user’, ‘password’,’data_base’);  //使用new操作符,最后一个参数是直接指定数据库
      $conn -> select_db(‘data_base’) //如果上一句没有指定数据库,需要执行本命令指定数据库 
      $result = $conn -> query( ‘select from data_base’ );  
      $row = $result -> fetch_row(); //取一行数据 
      echo row[0]; //输出第一个字段的值