怎样在mysql里面修改数据库名称

怎样在mysql里面修改数据库名称,第1张

常见的主要有三种方法:

如果所有表都是MyISAM类型的话,可以直接修改文件夹的名字

关闭mysql→把data目录中的db_name目录重命名为new_db_name→开启mysql

新建数据库,在新的数据库里重命名所有旧数据库中的表,再删除旧的数据库。具体 *** 作命令如下:创建新的数据库→重命名数据表名称→删除旧的数据库。

CREATE DATABASE new_db_name;

RENAME TABLE db_nametable1 TO new_db_nametable1,db_nametable2 TO new_db_nametable2;

DROP DATABASE db_name;

利用mysqldump命令从旧的数据导出数据,再导入新数据库。具体 *** 作命令如下:导出数据→创建新的数据库→导入数据→删除旧的数据库。

mysqldump -u root -p -h ip db_name > db_name_dumpSQL

mysql -u root -p -h ip -e “CREATE DATABASE new_db_name”

mysql -u root -p -h ip new_db_name < db_name_dumpSQL

mysql -u root -p -h ip -e “DROP DATABASE db_name”

其实你要问的就是连接字符串吧应该是instance_name,如果你用的sql客户端管理工具。如果你问的是连接字符串,就是都要有的。data source 是insatnce_name initial catalog=是库名。

在数据库中创建对象时,管理员也要对其进行取名。现在谈谈取名的一些技巧。 一、表名大小写的控制 一般情况下Oracle数据库中的表名或者列名是不区分大小写的。在创建表或者列的时候,即使管理员采用了小写的名字,数据库在将其保存到数据字典之前,会先将其转换为大写,再将他们保存到数据字典中。这也就是为什么我们取名使用小写的子母取名,但是下次查看表的名字的时候,却变成了大写。 虽然说Oracle数据库中表与列等数据库对象对于大小写是不敏感的,但是如果数据库管理员确实有需要要让数据库系统对表的名字区分大小写,这也是可以做到的。通常情况下,如果把名字使用双引号括起来,则在Oracle数据字典中就会成为区分大小写的名字。不过笔者这里要提醒各位数据库管理员,虽然说从技术上可以让数据库系统强制取分大小写,但是在实际工作中,包括在内的绝大部分数据库管理员可能都不建议这么做。因为如果有混合的大小写存在,那么在引用这些表或者列名称的时候就需要特别的小心。因为即使用户或者数据库管理员有着过目不忘的本领,也很难准确的记住这些名称的大小写歌时。如果数据库管理员硬要这么做的话,那么很可能是自寻烦恼。在查询时或者其他作业时,要严格区分大小写那是一件很头疼的事情。为此,对于这个大小写的控制,笔者建议数据库管理员要谨慎使用。除非有充分的理由,否则的话,不要轻易使用这个双引号来控制大小写。 这个双引号不仅可以用来控制大小写,还有一个比较特殊的作用,就是用引用一些特殊的字符。如在建立表格的时候,需要设置一个名牌号的字段。有些数据库管理员习惯使用num#类似的名称。这不会违反数据库的取名规则。不过在处理的时候会比较麻烦。如利用create语句建立表格的时候,需要给这个字段名称加上双引号。否则的话,执行这条语句的时候,数据库会拒绝执行并向用户提示错误信息。类似的特殊符号还包括一个$美元符号。他们在建立表格的时候,在语句中都需要使用双引号。不过字段建立好之后,在引用这些对象的时候,不需要使用双引号了。同理,虽然Oracle数据库支持这些特殊符号,但是笔者不鼓励数据库管理员在表或者列的取名中采取这些特殊的符号。这有可能给后续的引用带来不必要的麻烦。 二、牢记取名空间 在Oracle数据库中,跟其他的数据库不同,有一个叫做取名空间的概念。在同一个取名空间中,其名字不可以重复。如表与视图就共享同一个取名空间,为此就要求不仅表的名字不能够相同,而且表的名字与视图的名字也不能够相同。因为他们处于同一个取名空间。类似的,表与函数也是同处于一个表空间,为此他们也不能够同名。不过表与索引、表与约束等等却属于不同的取名空间。也就是说,表的名字可以与约束的名字相同。所以说,数据库管理员在给表等对象取名的时候,一定要了解哪些对象共享同一个名称空间。如果在同一个名称空间内的,即使对象不同(如视图与表),但是他们仍然不能够取相同的名字。 为了避免同一个取名空间内重名的现象,笔者建立在取名的时候最好能够根据对象的不同加上对象的固有前缀。如大部分的数据库管理员,在给表取名的时候,一般不会表名前面加上表对象的前缀。但是在定义函数或者视图对象的时候,则会加上前缀。如在函数前面可能会加上FN的前缀,而在视图前面可能会加上vi的前缀。如此的话,在同一个取名空间内也不用担心对象重名的问题。不过无论怎么说,这个取名空间的概念数据库管理员必须牢记。即使在实际的工作中,可以通过前缀等手段轻易的避免这个陷阱,但是在Oracle数据库管理员的认证考试中,这个取名空间也是一个必要的知识点。所以无论从实际的工作还是认证考试的需要,对于这个取名空间管理员都必须要有一个清晰的认识。 三、在表、索引、约束、列之间设置密切的联系 在创建表的同时,可以给表中的某些列添加索引、约束等等。如在员工信息表中,会设置员工编号唯一性约束。在创建约束的时候,也需要对约束进行取名。虽然说也约束与表、列不属于同一个取名空间,所以在取名的时候基本上没有限制。但是为了后续使用的方便,笔者对约束的取名还有一个小小的建议。简单的说,就是给一个与表直接有关的其他对象具有该表的名字是一种好的做法。如现在有一张用户表名字叫做ad_user(在表名前面一般不加对象名,但是可以根据应用软件的模块设计加上模块的前缀),这种表中有一个字段叫做叫做vlaue,用来存储员工的编号。在表设计的时候,需要给这个字段加一个索引。那么这个索引的名字就可以取名为IDX_USER_VALUE(也就是索引前缀+表名+字段名的形式)。这么做有什么好处呢一是可以确保相关对象的名字不会重复。因为表的名字不会重复,所以将表的名字与列的名字一起组成某个对象的名字,那么其重复的几率可以说基本上没有。二是方便管理员阅读、理解、维护等等。一看到索引或者约束对象的名字时,就可以看到这个是索引或者约束是用在哪个表的那个字段上的。而且也可以知道这个约束是唯一性约束还是检查约束;索引时主键索引还是外键索引。给数据库管理员一目了然的感觉。这对于后续的维护、升级、调整、引用等等都提供了方便。 虽然说Oracle数据库中表与列等数据库对象对于大小写是不敏感的,但是如果数据库管理员确实有需要要让数据库系统对表的名字区分大小写,这也是可以做到的。通常情况下,如果把名字使用双引号括起来,则在Oracle数据字典中就会成为区分大小写的名字。不过笔者这里要提醒各位数据库管理员,虽然说从技术上可以让数据库系统强制取分大小写,但是在实际工作中,包括在内的绝大部分数据库管理员可能都不建议这么做。因为如果有混合的大小写存在,那么在引用这些表或者列名称的时候就需要特别的小心。因为即使用户或者数据库管理员有着过目不忘的本领,也很难准确的记住这些名称的大小写歌时。如果数据库管理员硬要这么做的话,那么很可能是自寻烦恼。在查询时或者其他作业时,要严格区分大小写那是一件很头疼的事情。为此,对于这个大小写的控制,笔者建议数据库管理员要谨慎使用。除非有充分的理由,否则的话,不要轻易使用这个双引号来控制大小写。

被取消的命令MySQL 之前提供了一个 rename database db_old to db_new 的命令来直接对数据库改名,可能由于实现的功能不完备(比如,这条命令可能是一个超大的事务,或者是由于之前的表很多还是 MyISAM 等),后来的版本直接取消了这条命令。更改数据库名大致上有以下几种方案:

一、mysqldump 导入导出要说最简单的方法,就是直接用 mysqldump 工具,在旧库导出再往新库导入(最原始、最慢、最容易想到)的方法:旧库 yttdb_old 导出(包含的对象:表、视图、触发器、事件、存储过程、存储函数)

二、改整库的表名利用 MySQL 更改表名的方法来批量把旧库的所有表依次遍历,改名为新库的表。这种方法比第一种要快很多倍,但是没有第一步 *** 作起来那么顺滑,不能一步到位。比如,要把数据库 yttdb_old 改名为 yttdb_new,如果数据库 yttdb_old 里只有磁盘表,那很简单,直接改名即可。或者写个脚本来批量改,非常简单。但是一般旧库里不只有磁盘表,还包含其他各种对象。这时候可以先考虑把旧库的各种对象导出来,完了在逐一改完表名后导进去。

三、历史方案其实在 MySQL 早期还有一种方法。假设 MySQL 部署好了后,所有的 binlog 都有备份,并且二进制日志格式还是 statement 的话,那就可以简单搭建一台从机,让它慢慢追主机到新的库名,等确切要更改旧库的时候,再直接晋升从机为主机即可。这里只需要从机配置一个参数来把旧库指向为新库:replicate-rewrite-db=yttdb_old->yttdb_new不过这种局限性很大,不具备标准化,不推荐。

总结其实针对 MySQL 本身改库名,大致就这么几种方法:

如果数据量小,推荐第一种;数据量大,则推荐第二种;数据量巨大,那就非 MySQL 本身能解决的了。可通过部署第三方 ETL 工具,通过解析 MySQL 二进制日志或其他的方式来把旧库数据直接读取到新库达到改名的目的等等。

1、打开PLSQL DEOVLOPER,并登录要查询全局数据库名的数据库。

2、方法一通过SQL语句查询,点击文件--》新建--》SQL窗口,新建一个SQL窗口。

3、执行 select from v$database 语句可以通过系统视图v$database查询数据库相关信息,其中的name字段为数据库名。

4、执行语句 select from v$parameter where name = 'db_domain' 则可以通过v$parameter系统视图的db_domain查询数据库域名信息。

5、value字段为域名,如果为空就是没有域名,此时全局数据库名就等于数据库名了。

一)连接MYSQL:

格式:mysql-h主机地址-u用户名-p用户密码

1、例1:连接到本机上的MYSQL

首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如:D:mysqlin,再键入命令mysql-uroot-p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>

2、例2:连接到远程主机上的MYSQL

假设远程主机的IP为:10001,用户名为root,密码为123。则键入以下命令:

mysql-h10001-uroot-p123

(注:u与root可以不用加空格,其它也一样)

3、退出MYSQL命令

exit(回车)

(二)修改密码:

格式:mysqladmin-u用户名-p旧密码password新密码

1、例1:给root加个密码123。首先在DOS下进入目录C:mysqlin,然后键入以下命令:

mysqladmin-uroot-password123

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

2、例2:再将root的密码改为456

mysqladmin-uroot-pab12password456

(三)增加新用户:(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)

格式:grantselecton数据库to用户名@登录主机identifiedby"密码"

例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:

grantselect,insert,update,deleteontotest1@"%"Identifiedby"abc";

但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。

例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的 *** 作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。

grantselect,insert,update,deleteonmydbtotest2@localhostidentifiedby"abc";

如果你不想test2有密码,可以再打一个命令将密码消掉。

grantselect,insert,update,deleteonmydbtotest2@localhostidentifiedby"";

(四)显示命令

1、显示数据库列表:

showdatabases;

刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行 *** 作。

2、显示库中的数据表:

usemysql;//打开库

showtables;

3、显示数据表的结构:

describe表名;

4、建库:

createdatabase库名;

5、建表:

use库名;

createtable表名(字段设定列表);

6、删库和删表:

dropdatabase库名;

droptable表名;

7、将表中记录清空:

deletefrom表名;

8、显示表中的记录:

selectfrom表名;

MySQL导入导出命令

1导出整个数据库

mysqlmp-u用户名-p数据库名>导出的文件名

mysqlmp-uwcnc-psmgp_apps_wcnc>wcncsql

2导出一个表

mysqlmp-u用户名-p数据库名表名>导出的文件名

mysqlmp-uwcnc-psmgp_apps_wcncusers>wcnc_userssql

3导出一个数据库结构

mysqlmp-uwcnc-p-d--add-drop-tablesmgp_apps_wcnc>d:wcnc_dbsql

-d没有数据--add-drop-table在每个create语句之前增加一个droptable

4导入数据库

常用source命令

进入mysql数据库控制台,如mysql-uroot-p

mysql>use数据库

然后使用source命令,后面参数为脚本文件(如这里用到的sql)

mysql>sourced:wcnc_dbsql(注:如果写成sourced:wcnc_dbsql,就会报语法错误

以上就是关于怎样在mysql里面修改数据库名称全部的内容,包括:怎样在mysql里面修改数据库名称、我们连接数据库时,填写的数据库名指的是是数据库名(DB_NAME)还是数据库实例名(instance_name)、如何为数据库取名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/sjk/9757787.html

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

发表评论

登录后才能评论

评论列表(0条)

保存