mysql 如何到指定文件夹建立数据库

mysql 如何到指定文件夹建立数据库,第1张

首先:保证d:\data\foo目录存在,如果没有就创建或

者你c:\mysql\data下面有,就把它剪切过来,当然在停止mysql的情况下作移动,否则是不起任何作用的。

再次:

在c:\mysql\data目录下建立一个文本文件命名为foo.sym,文件名与数据库名相同,后缀名为sym,里面的内容为:D:\data

\foo\,就是foo数据库的绝对路径。

d:\data\foo

指定文件夹

在c:\mysql\data

mysql

默认数据库位置路径

Mysql创建数据库时会在如下目录创建以数据库名为名的目录

show variables like "%datadir%"

数据文件日志也就在相应目录下了。

日志大小、看看这些参数是否能达到你的目的:

命令行参数

–log-bin=filename:记录二进制日志文件的位置,尽量指定路径名,如果不指定的话则保存在数据目录

–log-bin-index=file:记录二进制日志文件索引的位置,保存了日志文件名

–max_binlog_size:单个文件最大多少

–binlog-do-db=db_name:哪个数据库使用,只有这个数据库使用

–binlog-ignore-db=db_name:哪个数据库不使用,只有这个数据库不使用

系统变量

log_bin:日志的位置

binlog_cache_size:二进制日志缓存大小,是每一个连接进来的线程分配的大小,不是整个服务器的大小

max_binlog_cache_size:最大缓存大小

max_binlog_size:单个文件最大大小,超过此大小则再分配一个文件,但是一个事务必须在一个文件中,所以可能会稍大点

binlog_cache_use:当前连接使用的binlog缓存的事务的数量,使用show status like ‘binlog_cache_use’查看(show status命令显示了所有连接到mysql服务器的状态值)

binlog_cache_disk_use:如果binlog_cache_use不够用,则在磁盘上缓存,应该尽量避免

binlog_do_db:设置master-slave时使用

binlog-ignore-db:设置哪个数据库不记录日志

sync_binlog:缓存与硬盘的同步频率(commit多少下同步一次,0表示服务器自动控制)

要在Android系统中 *** 作SQLite数据库,是通过Android的核心类SQLiteDatabase类来实现的,通常情况下为了数据库升级的需要以及使用方便,会选择继承SQLiteOpenHelper抽像类,但是SQLiteOpenHelper会将数据库文件创建在一个固定的目录(内存的/data/data/<package name/databases>目录中),如果想使用已经存在的数据库文件也就是说数据库会和程序一起发布,就得通过使用SQLiteDabase的静态方法OpenOrCreateDatabase()方法来得到SQLiteDabase对象,下面是一个具体 *** 作类:

package net.my.dao

import java.io.File

import java.io.FileOutputStream

import java.io.InputStream

import net.my.jokebook.R

import android.app.Activity

import android.content.Context

import android.database.sqlite.SQLiteDatabase

public class DBHelper {

//得到SD卡路径

private final String DATABASE_PATH = android.os.Environment

.getExternalStorageDirectory().getAbsolutePath()

+ "/joke"

private final Activity activity

//数据库名

private final String DATABASE_FILENAME

public DBHelper(Context context) {

// TODO Auto-generated constructor stub

//这里直接给数据库名

DATABASE_FILENAME = "jokebook.db3"

activity = (Activity)context

}

//得到 *** 作数据库的对象

public SQLiteDatabase openDatabase()

{

try

{

boolean b = false

//得到数据库的完整路径名

String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME

//将数据库文件从资源文件放到合适地方(资源文件也就是数据库文件放在项目的res下的raw目录中)

//将数据库文件复制到SD卡中 File dir = new File(DATABASE_PATH)

if (!dir.exists())

b = dir.mkdir()

//判断是否存在该文件

if (!(new File(databaseFilename)).exists())

{

//不存在得到数据库输入流对象

InputStream is = activity.getResources().openRawResource(

R.raw.jokebook)

//创建输出流

FileOutputStream fos = new FileOutputStream(databaseFilename)

//将数据输出

byte[] buffer = new byte[8192]

int count = 0

while ((count = is.read(buffer)) >0)

{

fos.write(buffer, 0, count)

}

//关闭资源

fos.close()

is.close()

}

//得到SQLDatabase对象

SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(

databaseFilename, null)

return database

}

catch (Exception e)

{

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

}

return null

}

}

写完这个类之后,就能得到SQLiteDatabase对象,就能对数据库 *** 作了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9911412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存