xml地图|网站地图|网站标签 [设为首页] [加入收藏]
搬迁数据库,system和Scott客户下的数据库连接难题
分类:数据库

由于当初安装sqlserver 的时候选择默认安装的路径,导致现在c盘爆满,安装不了其它软件。因此想到了迁移数据库,网上搜索了一些简介,但是缺少一些步骤,导致数据库附加的时候失败。现总结如下:

本文从如何建立mysql索引以及介绍mysql的索引类型,再讲mysql索引的利与弊,以及建立索引时需要注意的地方

system默认:manager

1、将当前数据库和文件的链接 “分离”。

首先:先假设有一张表,表的数据有10W条数据,其中有一条数据是nickname='css',如果要拿这条数据的话需要些的sql是 SELECT * FROM award WHERE nickname = 'css'

 

图片 1

一般情况下,在没有建立索引的时候,mysql需要扫描全表及扫描10W条数据找这条数据,如果我在nickname上建立索引,那么mysql只需要扫描一行数据及为我们找到这条nickname='css'的数据,是不是感觉性能提升了好多咧....

sys默认:change_on_install

2、将C:Program Files (x86)Microsoft SQL ServerMSSQL12.MSSQLSERVERMSSQLDATA下需要迁移的数据库移到目标文件。

mysql的索引分为单列索引(主键索引,唯索引,普通索引)和组合索引.

 

3、打开服务窗口  快捷键win+r输入services.msc打开服务窗口重启SQL server服务

单列索引:一个索引只包含一个列,一个表可以有多个单列索引.

使用SQL Plus登录数据库时,system使用密码manager可直接登录。

图片 2

组合索引:一个组合索引包含两个或两个以上的列,

由于为自己的密码时更改过的,所以我的密码不是使用manager登陆,但是代码格式依然是差不多的。

3、附加数据库  打开数据库  在右键databases  选择附加--attach。在附加框中点击“Add”--添加

本文使用的案例的表

代码示例:

图片 3

CREATE TABLE `award` (
   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
   `aty_id` varchar(100) NOT NULL DEFAULT '' COMMENT '活动场景id',
   `nickname` varchar(12) NOT NULL DEFAULT '' COMMENT '用户昵称',
   `is_awarded` tinyint(1) NOT NULL DEFAULT 0 COMMENT '用户是否领奖',
   `award_time` int(11) NOT NULL DEFAULT 0 COMMENT '领奖时间',
   `account` varchar(12) NOT NULL DEFAULT '' COMMENT '帐号',
   `password` char(32) NOT NULL DEFAULT '' COMMENT '密码',
   `message` varchar(255) NOT NULL DEFAULT '' COMMENT '获奖信息',
   `created_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
   `updated_time` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='获奖信息表';
conn system
输入密码:1234
conn system/输入密码

图片 4

(一)索引的创建

 

4、选择要附加的数据库。点击确定

1.单列索引

但如果是sys用户,密码必须加上as sysdba,即完整密码为:change_on_install as sysdba 

图片 5

1-1)    普通索引,这个是最基本的索引,

代码示例:

以上操作完成后点击OK,但是报错了。。。。。

其sql格式是 CREATE INDEX IndexName ON `TableName`(`字段名`(length)) 或者 ALTER TABLE TableName ADD INDEX IndexName(`字段名`(length))

1  conn sys/change_on_install as sysdba
conn 用户sys/密码

图片 6

第一种方式 :

连接scott用户,密码使用tiger可以直接登陆。【该情况只适用于你没有更改过Scott用户密码的设置】

这是因为目标文件夹的访问权限限制了     注意错误码5120   我们需要为当前系统用户访问目标文件夹添加完全控制权限

  CREATE INDEX account_Index ON `award`(`account`);

代码示例:

  1. 在文件夹中右键选择属性  弹出页面点击安全,选择Authenticated Users(根据当前登陆用户选择),单击编辑

    图片 7

  2. Authenticated Users权限中选择完全控制,点击确定,点击属性界面的确定。

    图片 8

    重启sqlserver服务   重新打开数据库,重新附加数据库。点击OK---成功。

    至此数据库迁移成功。 

     

第二种方式: 

1 conn scott/1234
conn 用户scott/密码
ALTER TABLE award ADD INDEX account_Index(`account`)

 

 

 

 

如果是CHAR,VARCHAR,类型,length可以小于字段的实际长度,如果是BLOB和TEXT类型就必须指定长度,

1-2)    唯一索引,与普通索引类似,但是不同的是唯一索引要求所有的类的值是唯一的,这一点和主键索引一样.但是他允许有空值,

其sql格式是 CREATE UNIQUE INDEX IndexName ON `TableName`(`字段名`(length)); 或者 ALTER TABLE TableName ADD UNIQUE (column_list)  

CREATE UNIQUE INDEX account_UNIQUE_Index ON `award`(`account`);

1-3)    主键索引,不允许有空值,(在B+TREE中的InnoDB引擎中,主键索引起到了至关重要的地位)

主键索引建立的规则是 int优于varchar,一般在建表的时候创建,最好是与表的其他字段不相关的列或者是业务不相关的列.一般会设为 int 而且是 AUTO_INCREMENT自增类型的

本文由澳门新葡亰手机版发布于数据库,转载请注明出处:搬迁数据库,system和Scott客户下的数据库连接难题

上一篇:server数据库压缩空间,有关站内信的数据库设计 下一篇:没有了
猜你喜欢
热门排行
精彩图文