当前位置:首页 > 服务器 > 正文

4种数据库服务器关闭方式(4种数据库服务器关闭方式有哪些)

今天给各位分享4种数据库服务器关闭方式的知识,其中也会对4种数据库服务器关闭方式有哪些进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

PostgreSQL服务器启动及关闭方法

1. 启动数据库服务器(posgres用户):

[postgres@localhost bin]$ postgres -D /opt/postgresql/data/ /opt/postgresql/log/pg_server.log 21

[1] 4508

当然如果设置了环境变量

PGDATA=/opt/postgresql/data

export PGDATA

后,可使用pg_ctl工具进行启动:

[postgres@localhost log]$ pg_ctl start -l /opt/postgresql/log/pg_server.log

pg_ctl: another server might be running; trying to start server anyway

pg_ctl: could not start server

Examine the log output.

[postgres@localhost log]$

因为之前已经启动,所以打印“another server might be running”。此时,查看日志,有如下信息:

[postgres@localhost log]$ cat pg_server.log

FATAL: lock file "postmaster.pid" already exists

HINT: Is another postmaster (PID 4491) running in data directory "/opt/postgresql/data"?

[postgres@localhost log]$

当然,最简的.启动方式是:

[postgres@localhost ~]$ pg_ctl start

server starting

[postgres@localhost ~]$ LOG: database system was shut down at 2011-07-09 13:58:00 CST

LOG: autovacuum launcher started

LOG: database system is ready to accept connections

如果要在操作系统启动时就启动PG,可以在/etc/rc.d/rc.local 文件中加以下语句:

/opt/postgresql/bin/pg_ctl start -l /opt/postgresql/log/pg_server.log -D /opt/postgresql/data

2.关闭服务器

最简单方法:

[postgres@localhost ~]$ pg_ctl stop

waiting for server to shut down.... done

server stopped

与Oracle相同,在关闭时也可采用不同的模式,简介如下:

SIGTERM

不再允许新的连接,但是允许所有活跃的会话正常完成他们的工作,只有在所有会话都结束任务后才关闭。这是智能关闭。

SIGINT

不再允许新的连接,向所有活跃服务器发送 SIGTERM(让它们立刻退出),然后等待所有子进程退出并关闭数据库。这是快速关闭。

SIGQUIT

令 postgres 向所有子进程发送 SIGQUIT 并且立即退出(所有子进程也会立即退出),而不会妥善地关闭数据库系统。这是立即关闭。这样做会导致下次启动时的恢复(通过重放 WAL 日志)。我们推荐只在紧急的时候使用这个方法。

SIGKILL

此选项尽量不要使用,这样会阻止服务器清理共享内存和信号灯资源,那样的话你只能在启动服务器之前自己手工做这件事。另外,SIGKILL 直接把 postgres 杀掉,而不会等它把信号中继给它的子进程,因此我们还需要手工杀掉每个独立子进程。

使用方法举例:

[postgres@localhost ~]$ pg_ctl stop -o SIGTERM

LOG: received smart shutdown request

LOG: autovacuum launcher shutting down

waiting for server to shut down....LOG: shutting down

LOG: database system is shut down

done

server stopped

[postgres@localhost ~]$

最快速关闭方法:kill postgres 进程

[postgres@localhost ~]$ kill -INT `head -1 /opt/postgresql/data/postmaster.pid`

[postgres@localhost ~]$ LOG: received fast shutdown request

LOG: aborting any active transactions

LOG: autovacuum launcher shutting down

LOG: shutting down

LOG: database system is shut down

附:postgre启动后的进程,如下:

[postgres@localhost ~]$ ps -ef|grep post

root 4609 4543 0 13:57 pts/2 00:00:00 su - postgres

postgres 4610 4609 0 13:57 pts/2 00:00:00 -bash

postgres 4724 1 0 14:08 pts/2 00:00:00 /opt/postgresql/bin/postgres

postgres 4726 4724 0 14:08 ? 00:00:00 postgres: writer process

postgres 4727 4724 0 14:08 ? 00:00:00 postgres: wal writer process

postgres 4728 4724 0 14:08 ? 00:00:00 postgres: autovacuum launcher process

postgres 4729 4724 0 14:08 ? 00:00:00 postgres: stats collector process

postgres 4752 4610 0 14:11 pts/2 00:00:00 ps -ef

postgres 4753 4610 0 14:11 pts/2 00:00:00 grep post

[postgres@localhost ~]$

请教!!

可读 有两种说法

1 是指 文件属性是 -R 的(文件可读属性)

2 指 文件是可视化编辑的,譬如 .txt、.html文件等,都是可以直接读写的,二进制文件、.exe文件就是不可读文件

可执行文件一般指 .exe、.com的文件,是可以独立执行完成预定任务的一个程序

什么是数据库?

数据库是以某种文件结构存储的一系列信息表,这种文件结构使您能够访问这些表、选择表中的列、对表进行排序以及根据各种标准选择行。数据库通常有多个 索引与这些表中的许多列相关联,所以我们能尽可能快地访问这些表。

以员工记录为例,您可以设想一个含有员工姓名、地址、工资、扣税以及津贴等内容的表。让我们考虑一下这些内容可能如何组织在一起。您可以设想一个表包含员工姓名、地址和电话号码。您希望保存的其它信息可能包括工资、工资范围、上次加薪时间、下次加薪时间、员工业绩评定等内容。

这些内容是否应保存在一个表格中?几乎可以肯定不应该如此。不同类别的员工的工资范围可能没有区别;这样,您可以仅将员工类型储存在员工记录表中,而将工资范围储存在另一个表中,通过类型编号与这个表关联。考虑以下情况:

Key Lastname SalaryType SalaryType Min Max

1 Adams 2 1 30000 45000

2 Johnson 1 2 45000 60000

3 Smyth 3 3 60000 75000

4 Tully 1

5 Wolff 2

SalaryType 列中的数据引用第二个表。我们可以想象出许多种这样的表,如用于存储居住城市和每个城市的税值、健康计划扣除金额等的表。每个表都有一个主键列(如上面两个表中最左边的列)和若干数据列。在数据库中建立表格既是一门艺术,也是一门科学。这些表的结构由它们的范式指出。我们通常说表属于1NF、2NF 或 3NF。

第一范式:表中的每个表元应该只有一个值(永远不可能是一个数组)。(1NF)

第二范式:满足 1NF,并且每一个非主键列完全依赖于主键列。这表示主键和该行中的剩余表元之间是 1 对 1 的关系。(2NF)

第三范式:满足 2NF,并且所有非主键列是互相独立的。任何一个数据列中包含的值都不能从其他列的数据计算得到。(3NF)

现在,几乎所有的数据库都是基于“第三范式 (3NF)”创建的。这意味着通常都有相当多的表,每个表中的信息列都相对较少。

从数据库中获取数据

假设我们希望生成一个包含员工及其工资范围的表,在我们设计的一个练习中将使用这个表。这个表格不是直接存在在数据库中,但可以通过向数据库发出一个查询来构建它。我们希望得到如下所示的一个表:

Name Min Max

Tully $30,000.00 $45,000.00

Johnson $30,000.00 $45,000.00

Wolff $45,000.00 $60,000.00

Adams $45,000.00 $60,000.00

Smyth $60,000.00 $75,000.00

我们发现,获得这些表的查询形式如下所示

SELECT DISTINCTROW Employees.Name, SalaryRanges.Min,

SalaryRanges.Max FROM Employees INNER JOIN SalaryRanges ON Employees.SalaryKey = SalaryRanges.SalaryKey

ORDER BY SalaryRanges.Min;

这种语言称为结构化查询语言,即 SQL,而且它是几乎目前所有数据库都可以使用的一种语言。SQL-92 标准被认为是一种基础标准,而且已更新多次。

数据库的种类

PC 上的数据库,如 dBase、Borland Paradox、Microsoft Access 和 FoxBase。

数据库服务器:IBM DB/2、Microsoft SQL Server、 Oracle、Sybase、SQLBase 和 XDB。

所有这些数据库产品都支持多种相对类似的 SQL 方言,因此,所有数据库最初看起来好象可以互换。每种数据库都有不同的性能特征,而且每一种都有不同的用户界面和编程接口。

ODBC

如果我们能够以某种方式编写不依赖于特定厂商的数据库的代码,并且能够不改变自己的调用程序即可从这些数据库中得到相同的结果,那将是一件很好的事。如果我们可以仅为所有这些数据库编写一些封装,使它们具有相似的编程接口,这种对数据库编程独立于供应商的特性将很容易实现。

什么是 JDBC?

JDBC 是对 ODBC API 进行的一种面向对象的封装和重新设计,它易于学习和使用,并且它真正能够使您编写不依赖厂商的代码,用以查询和操纵数据库。尽管它与所有 Java API 一样,都是面向对象的,但它并不是很高级别的对象集.

除 Microsoft 之外,多数厂商都采用了 JDBC,并为其数据库提供了 JDBC 驱动程序;这使您可轻松地真正编写几乎完全不依赖数据库的代码。另外,JavaSoft 和 Intersolv 已开发了一种称为 JDBC-ODBC Bridge 的产品,可使您连接还没有直接的 JDBC 驱动程序的数据库。支持 JDBC 的所有数据库必须至少可以支持 SQL-92 标准。这在很大程度上实现了跨数据库和平台的可移植性。

安装和使用 JDBC

JDBC 的类都被归到 java.sql 包中,在安装 Java JDK 1.4时会自动安装。然而,如果您想使用 JDBC-ODBC 桥。JDBC-ODBC 驱动程序可从 Sun 的 Java 网站 () 轻松地找到并下载。在您扩充并安装了这个驱动程序后,必须执行下列步骤:

将 \jdbc-odbc\classes; 路径添加到您的 PATH 环境变量中。

将 \jdbc-odbc\classes; 路径添加到您的 CLASSPATH 环境变量中。

JDBC 驱动程序的类型

Java 程序连接数据库的方法实际上有四种:

1. JDBC-ODBC 桥和 ODBC 驱动程序 -- 在这种方式下,这是一个本地解决方案,因为 ODBC 驱动程序和桥代码必须出现在用户的每台机器中。从根本上说这是一个临时解决方案。

2. 本机代码和 Java 驱动程序 -- 它用另一个本地解决方案(该平台上的 Java 可调用的本机代码)取代 ODBC 和 JDBC-ODBC 桥。

3. JDBC 网络的纯 Java 驱动程序 -- 由 Java 驱动程序翻译的 JDBC 形成传送给服务器的独立协议。然后,服务器可连接任何数量的数据库。这种方法使您可能从客户机 Applet 中调用服务器,并将结果返回到您的 Applet。在这种情况下,中间件软件提供商可提供服务器。

4. 本机协议 Java 驱动程序 -- Java 驱动程序直接转换为该数据库的协议并进行调用。这种方法也可以通过网络使用,而且可以在 Web 浏览器的 Applet 中显示结果。在这种情况下,每个数据库厂商将提供驱动程序。

如果您希望编写代码来处理 PC 客户机数据库,如 dBase、Foxbase 或 Access,则您可能会使用第一种方法,并且拥有用户机器上的所有代码。更大的客户机-服务器数据库产品(如 IBM 的 DB2)已提供了第 3 级别的驱动程序。

两层模型和三层模型

当数据库和查询它的应用程序在同一台机器上,而且没有服务器代码的干预时,我们将生成的程序称为两层模型。一层是应用程序,而另一层是数据库。在 JDBC-ODBC 桥系统中通常是这种情况。

当一个应用程序或 applet 调用服务器,服务器再去调用数据库时,我们称其为三层模型。当您调用称为“服务器”的程序时通常是这种情况。

编写 JDBC 代码访问数据库

用 ODBC 注册您的数据库

连接数据库

所有与数据库有关的对象和方法都在 java.sql 包中,因此在使用 JDBC 的程序中必须加入 "import java.sql.* "。 JDBC 要连接 ODBC 数据库,您必须首先加载 JDBC-ODBC 桥驱动程序

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

该语句加载驱动程序,并创建该类的一个实例。然后,要连接一个特定的数据库,您必须创建 Connect 类的一个实例,并使用 URL 语法连接数据库。

String url = "jdbc:odbc:Northwind";

Connection con = DriverManager.getConnection(url);

请注意,您使用的数据库名是您在 ODBC 设置面板中输入的“数据源”名称。

URL 语法可能因数据库类型的不同而变化极大。

jdbc:subprotocol:subname

第一组字符代表连接协议,并且始终是 jdbc。还可能有一个子协议,在此处,子协议被指定为 odbc。它规定了一类数据库的连通性机制。如果您要连接其它机器上的数据库服务器,可能也要指定该机器和一个子目录:

jdbc:bark//doggie/elliott

最后,您可能要指定用户名和口令,作为连接字符串的一部分:

jdbc:bark//doggie/elliot;UID=GoodDog;PWD=woof

访问MSSQL Server方法:(驱动程序需要:msutil.jar,msbase.jar,mssqlServer.jar)

DBDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver

URL=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=demo

username=sa

password=

maxcon=10

mincon=1

poolName=SkyDev

利用我们开发的数据库类,使用方法如下:

DbObject DbO = new DbObject(new SqlServerConnectionFactory("localhost",

1433, "demo", "sa", ""));

Connection con = DbO.getConnection();

//类代码(不含连接工厂实现)

package skydev.modules.data;

public final class SqlServerConnectionFactory

extends ConnectionFactory {

private final String dbDriver =

"com.microsoft.jdbc.sqlserver.SQLServerDriver";

private String host;

private int port;

private String databaseName;

public SqlServerConnectionFactory() {

super.setDriverName(dbDriver);

}

/**

*

* @param host 数据库所在的主机名:如"localhost"

* @param port SQL服务器运行的端口号,如果使用缺省值 1433,传入一个负数即可

* @param databaseName 数据库名称

* @param userName 用户名

* @param password 口令

*/

public SqlServerConnectionFactory(String host,

int port,

String databaseName,

String userName,

String password) {

this.setHost(host);

this.setPort(port);

this.setDatabaseName(databaseName);

this.setUserName(userName);

this.setPassword(password);

init();

}

private void init() {

super.setDriverName(dbDriver);

super.setUrl("jdbc:microsoft:sqlserver://" + host.trim() + ":" +

new Integer(port).toString() + ";DatabaseName=" +

databaseName.trim());

//super.setUrl("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=demo");

}

……

//------------------------------------------------------------------------------------

访问MySQL的方法:

DBDriver=com.mysql.jdbc.Driver

URL=jdbc:mysql://localhost/demo

username=

password=

maxcon=5

mincon=1

poolName=zhengmao

访问数据库

一旦连接到数据库,就可以请求表名以及表列的名称和内容等信息,而且您可以运行 SQL 语句来查询数据库或者添加或修改其内容。可用来从数据库中获取信息的对象有:

DatabaseMetaData 有关整个数据库的信息:表名、表的索引、数据库产品的名称和版本、数据库支持的操作。

ResultSet 关于某个表的信息或一个查询的结果。您必须逐行访问数据行,但是您可以任何顺序访问列。

ResultSetMetaData 有关 ResultSet 中列的名称和类型的信息。

尽管每个对象都有大量的方法让您获得数据库元素的极为详细的信息,但在每个对象中都有几种主要的方法使您可获得数据的最重要信息。然而,如果您希望看到比此处更多的信息,建议您学习文档以获得其余方法的说明。

ResultSet

ResultSet 对象是 JDBC 中最重要的单个对象。从本质上讲,它是对一个一般宽度和未知长度的表的一种抽象。几乎所有的方法和查询都将数据作为 ResultSet 返回。ResultSet 包含任意数量的命名列,您可以按名称访问这些列。它还包含一个或多个行,您可以按顺序自上而下逐一访问。在您使用 ResultSet 之前,必须查询它包含多少个列。此信息存储在 ResultSetMetaData 对象中。

//从元数据中获得列数

ResultSetMetaData rsmd;

rsmd = results.getMetaData();

numCols = rsmd.getColumnCount();

当您获得一个 ResultSet 时,它正好指向第一行之前的位置。您可以使用 next() 方法得到其他每一行,当没有更多行时,该方法会返回 false。由于从数据库中获取数据可能会导致错误,您必须始终将结果集处理语句包括在一个 try 块中。

您可以多种形式获取 ResultSet 中的数据,这取决于每个列中存储的数据类型。另外,您可以按列序号或列名获取列的内容。请注意,列序号从 1 开始,而不是从 0 开始。ResultSet 对象的一些最常用方法如下所示。

getInt(int); 将序号为 int 的列的内容作为整数返回。

getInt(String); 将名称为 String 的列的内容作为整数返回。

getFloat(int); 将序号为 int 的列的内容作为一个 float 型数返回。

getFloat(String); 将名称为 String 的列的内容作为 float 型数返回。

getDate(int); 将序号为 int 的列的内容作为日期返回。

getDate(String); 将名称为 String 的列的内容作为日期返回。

next(); 将行指针移到下一行。如果没有剩余行,则返回 false。

Close(); 关闭结果集。

getMetaData(); 返回 ResultSetMetaData 对象。

ResultSetMetaData

您使用 getMetaData() 方法从 ResultSet 中获取 ResultSetMetaData 对象。您可以使用此对象获得列的数目和类型以及每一列的名称。

getColumnCount(); 返回 ResultSet 中的列数。

getColumnName(int); 返回列序号为 int 的列名。

getColumnLabel(int); 返回此列暗含的标签。

isCurrency(int); 如果此列包含带有货币单位的一个数字,则返回 true。

isReadOnly(int); 如果此列为只读,则返回 true。

isAutoIncrement(int); 如果此列自动递增,则返回 true。这类列通常为键,而且始终是只读的。

getColumnType(int); 返回此列的 SQL 数据类型。这些数据类型包括

BIGINT

BINARY

BIT

CHAR

DATE

DECIMAL

DOUBLE

FLOAT

INTEGER

LONGVARBINARY

LONGVARCHAR

NULL

NUMERIC

OTHER

REAL

SMALLINT

TIME

TIMESTAMP

TINYINT

VARBINARY

VARCHAR

DatabaseMetaData

DatabaseMetaData 对象可为您提供整个数据库的信息。您主要用它获取数据库中表的名称,以及表中列的名称。由于不同的数据库支持不同的 SQL 变体,因此,也有多种方法查询数据库支持哪些 SQL 方法。

getCatalogs() 返回该数据库中的信息目录列表。使用 JDBC-ODBC Bridge 驱动程序,您可以获得用 ODBC 注册的数据库列表。这很少用于 JDBC-ODBC 数据库。

getTables(catalog, schema,tableNames, columnNames) 返回表名与 tableNames 相符而且列名与 columnNames 相符的所有表的说明。

getColumns(catalog, schema,tableNames, columnNames) 返回表名与 tableNames 相符而且列名与 columnNames 相符的所有表列说明。

getURL(); 获得您所连接的 URL 名称。

getDriverName(); 获得您所连接的数据库驱动程序的名称。

获取有关表的信息

您可以使用 DataBaseMetaData 的 getTables() 方法来获取数据库中表的信息。这个方法有如下4个 String 参数:

results =dma.getTables(catalog, schema, tablemask, types[]);

其中参数的意义是:

Catalog 要在其中查找表名的目录名。对于 JDBC-ODBC 数据库以及许多其他数据库而言,可将其设置为 null。这些数据库的目录项实际上是它在文件系统中的绝对路径名称。

Schema 要包括的数据库“方案”。许多数据库不支持方案,而对另一些数据库而言,它代表数据库所有者的用户名。一般将它设置为 null。

Tablemask 一个掩码,用来描述您要检索的表的名称。如果您希望检索所有表名,则将其设为通配符 %。请注意,SQL 中的通配符是 % 符号,而不是一般 PC 用户的 * 符号。

types[] 这是描述您要检索的表的类型的 String 数组。数据库中通常包括许多用于内部处理的表,而对作为用户的您没什么价值。如果它是空值,则您会得到所有这些表。如果您将其设为包含字符串“TABLES”的单元素数组,您将仅获得对用户有用的表格。

一个简单的 JDBC 程序

我们已经学习了 JDBC 的所有基本功能,现在我们可以编写一个简单的程序,该程序打开数据库,打印它的表名以及某一表列的内容,然后对该数据库执行查询。此程序如下所示:

package skydevkit;

import java.sql.*;

public class JdbcOdbc_test {

ResultSet results;

ResultSetMetaData rsmd;

DatabaseMetaData dma;

Connection con;

public JdbcOdbc_test() throws SQLException {

String url = "jdbc:odbc:Northwind";

try {

//加载 JDBC-ODBC 桥驱动程序

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

con = DriverManager.getConnection(url);//连接数据库

dma = con.getMetaData();//获取数据库的元数据

System.out.println("Connected to:" + dma.getURL());

System.out.println("Driver " + dma.getDriverName());

} catch (Exception e) {

System.out.println(e);

}

try {

Statement stmt = con.createStatement();

results = stmt.executeQuery("select * from 客户;");

ResultSetMetaData resultMetaData = results.getMetaData();

int cols = resultMetaData.getColumnCount();

String resultRow = "";

for (int i = 1; i cols; i++) {

resultRow += resultMetaData.getColumnName(i) + ";";

}

System.out.println(resultRow);

while (results.next()) {

resultRow = "";

for (int i = 1; i cols; i++) {

try {

resultRow += results.getString(i) + ";";

} catch (NullPointerException e) {

System.out.println(e.getMessage());

}

}

System.out.println(resultRow);

}

} catch (Exception e) {

System.out.println("query exception");

} finally {

results.close();

}

}

}

补充高级内容

关于调用SQLServer存储过程的例子:(用到了我们开发的数据库连接类)

CREATE PROCEDURE [dbo].[sp_getStudentByName](@name char(10))

AS

Select * from Students where [Name]=@name

GO

DbObject DbO = new DbObject(new SqlServerConnectionFactory("localhost",

1433, "demo", "sa", ""));

Connection con = DbO.getConnection();

CallableStatement pstmt = null;

System.out.println("TestDB1()............");

/* try {

pstmt = con.prepareCall("{call sp_getStudentById(?)}");

pstmt.setInt(1, 1);

}*/

try {

pstmt = con.prepareCall("{call sp_getStudentByName(?)}"); //注意参数如何传递

pstmt.setString(1, "Tom");

}

……

使用输出参数:

CREATE PROCEDURE [dbo].[sp_insertStudent](@name char(10),@age int,@id int OUTPUT) AS

insert into Students([Name],[Age]) values (@name,@age)

select @id=@@IDENTITY

GO

try {

pstmt = con.prepareCall("{call sp_insertStudent(?,?,?)}");

pstmt.setString(1, "zengqingsong");

pstmt.setInt(2, 22);

pstmt.registerOutParameter(3, Types.INTEGER);

pstmt.executeUpdate();

int id = pstmt.getInt(3);

System.out.println(id);

}

使用返回参数的例子:

CREATE PROCEDURE [dbo].[sp_insertStudent](@name char(10),@age int,@id int OUTPUT) AS

insert into Students([Name],[Age]) values (@name,@age)

select @id=@@IDENTITY –测试输出参数

return 30 –测试返回30

GO

try {

pstmt = con.prepareCall("{?=call sp_insertStudent(?,?,?)}");

pstmt.setString(2, "zengqingsong");

pstmt.setInt(3, 22);

pstmt.registerOutParameter(4, Types.INTEGER);

pstmt.registerOutParameter(1, Types.INTEGER);

int ret = pstmt.executeUpdate(); //执行影响的行数

int ret2 = pstmt.getInt(1); //返回参数(输出参数)

int id = pstmt.getInt(4); //输出参数

System.out.println(ret);

System.out.println(ret2);

System.out.println(id);

数据库服务器的启动、暂停和停止有哪3种方法?试说明

MSSQ了吗?

1、通过控制面板-》管理工具-》服务,找到数据库服务名

2、打开SQL SERVER服务管理器,该管理器一般在右下角任务栏能找到,或者从开始菜单SQL SERVER 2000目录下可以找到

3、通过命令提示符控制,开始,运行net stop MSSQLSERVER停止服务,net start MSSQLSERVER启动服务

C# 数据库打开和关闭的问题

SqlDataAdapter adap1= new SqlDataAdapter(strsql1,conn1);

adap1.Fill(ds1);

你用的是Adapter (适配器)

这种方式你不用写open和close

他在adap1.Fill(ds1); 的时候自动打开,读取数据填充到ds1里,读完自动关闭,

这是Adapter的最大优点--不用人为的去打开和关闭数据库

mysql数据库怎么才能关闭一下,再打开它

普通方式:

(1)在Windows中打开“控制面板”窗口,在“控制面板”窗口中,双击“管理工具”打开“管理工具”窗口。

(2)在“管理工具”窗口双击“服务”程序。

(3)打开“服务”窗口,双击列表中的“MySQL”打开“MySQL的属性”对话框。

(4)在“常规”选项卡下有服务状态选项,单击“停止”,即可关闭数据库。

(5)关闭后若要重新打开数据库,单击“启动”即可。

另外,可使用DOS命令方式:

(1)在桌面“开始”搜索框内输入“cmd”,点击cmd.exe打开DOS命令窗口。

(2)在命令窗口中输入net stop mysql后回车,即可关闭数据库。

(3)关闭后若要重新打开数据库,在DOS命令窗口输入net start mysql后回车,即可。

如何使用ADO.NET实现数据库的打开和关闭

data

source=数据库服务器名;initial

catalog=数据库名;user

id=连接用户名;password=密码;

然后用open()打开;close关闭数据库;

使用的时候打开,不使用的时候就关闭,节省内存使用空间。

操作数据库的话直接用SQL语句操作就可以了

4种数据库服务器关闭方式的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于4种数据库服务器关闭方式有哪些、4种数据库服务器关闭方式的信息别忘了在本站进行查找喔。

取消
扫码支持 支付码