如何打开Mysql数据库文件

如何打开Mysql数据库文件,第1张

Q:朋友想叫我在里面的某个表里增加字段,但我是第一次遇到MySQL的数据库,我装了MySQL-Front 但是不知道怎么打开,装了MySQL Server 50也不知道如何打开,更不用说往表里加字段了,我把数据库放在 D:\data1\data里,那个表名是“showsMYD”, 说明:他传过来的没有SQL文件,都是frm 和 MYD 还有 MYI文件,其它没有了, 请问我该如何才能打开这个表? 如何往里面添加一个 字符型,长度为36 的字段?A:你需要把那个showsMYD 所在的那个文件夹拷贝到mysql安装目录的data目录下。如果你是默认安装,应该在c:\Program Files\MySQL\MySQL Server 50\data\注意是整个shows那些文件所在的目录。连目录一起拷贝哈。按你的描述,就应该是data目录了。 将d:\data1\下的data目录拷贝到c:\Program Files\MySQL\MySQL Server 50\data\下面。完成之后,重启mysql看看,可以运行servicesmsc 在里面找到mysql 重新启动mysql。(前提是你安装的时候配置了mysql服务,我想你应该配置了吧)重启之后 进入命令行,然后mysql -uroot -p 进入mysqlshow databases;看看能不能看到一个叫data数据库。如果能看到,恭喜你, 继续下面的命令。 如果不行,看后面的方法B。use dataalter table shows add 列名 类型 长度 等等举例:增加一个int型名为id的列alter table shows add id int(11) not null default '0';alter table shows add name varchar(32) not null default '';如果需要指定列的位置,假如加入的列在number列后面。那么alter table shows add id int(11) not null default '0' after number;方法B。如果按之前说的文件拷贝方式,重启进入mysql后看不到data 这个数据库,那么可能是你们的mysql版本不一致造成的,应该说这个可能性很大。那么,你让你朋友给你导出数据库内容。 用mysqldump命令。mysqldump -uroot -p -D 数据库名表名 > ssssql你拿到这个ssssql后 再把它导入到你的mysql数据库。在cmd下运行mysql -uroot -p test<ssssql或者在mysql命令行下运行use testsource ssssql这样shows表就导入到你的test数据库了。剩下的就简单了哈。和前面没啥差别。

在新的服务器上要导入备份,那么 *** 作之前要新建一个数据库;

创建数据库给予相应权限--》导入数据库

比如:数据库名称和用户都为test123,数据库密码mima123

mysql -uroot -p

create database test123;

grant all  privileges on test123 to 'test123'@'localhost' identified by 'mima123';

flush privileges;

quit

mysql -uroot -p test123 </root/test123sql

如何往里面添加一个

字符型,长度为36

的字段?a:你需要把那个showsmyd

所在的那个文件夹拷贝到mysql安装目录的data目录下。

如果你是默认安装,应该在c:\program

files\mysql\mysql

server

50\data\

注意是整个shows那些文件所在的目录。连目录一起拷贝哈。按你的描述,就应该是data目录了。

将d:\data1\下的data目录拷贝到c:\program

files\mysql\mysql

server

50\data\下面。

完成之后,重启mysql看看,可以运行servicesmsc

在里面找到mysql

重新启动mysql。(前提是你安装的时候配置了mysql服务,我想你应该配置了吧)

重启之后

进入命令行,

然后mysql

-uroot

-p

进入mysql

show

databases;

看看能不能看到一个叫data数据库。

如果能看到,恭喜你,

继续下面的命令。

如果不行,看后面的方法b。

use

dataalter

table

shows

add

列名

类型

长度

等等举例:增加一个int型名为id的列

alter

table

shows

add

id

int(11)

not

null

default

'0';

alter

table

shows

add

name

varchar(32)

not

null

default

'';

如果需要指定列的位置,假如加入的列在number列后面。那么

alter

table

shows

add

id

int(11)

not

null

default

'0'

after

number;方法b。

如果按之前说的文件拷贝方式,重启进入mysql后看不到data

这个数据库,那么可能是你们的mysql版本不一致造成的,应该说这个可能性很大。

那么,你让你朋友给你导出数据库内容。

用mysqldump命令。

mysqldump

-uroot

-p

-d

数据库名表名

>

ssssql

你拿到这个ssssql后

再把它导入到你的mysql数据库。

在cmd下运行

mysql

-uroot

-p

test<ssssql或者在mysql命令行下运行use

testsource

ssssql

这样shows表就导入到你的test数据库了。

剩下的就简单了哈。和前面没啥差别。

dmp文件是mysql数据库用mysqldump工具导出来的一个数据包。但是此数据库的导入并不一定需要mysqldump 来导入。用一下语句可以实现:

mysql -uroot -proot -h127001 test < c:\cs_contractdmp

命令注释:

1、-h127001 是服务器的地址 ;

2、test 是数据库名称 ;

3、c:\cs_contractdmp是备份文件的路径。

以mysql数据库为例分情况一一说明:

两张表:insertTest和insertTest2,前者中有测试数据

create table insertTest(id int(4),name varchar(12));

insert into insertTest values(100,'liudehua');

insert into insertTest values(101,'zhourunfa');

insert into insertTest values(102,'zhouhuajian');

1如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:

INSERT INTO 目标表 SELECT FROM 来源表;

insert into insertTest select from insertTest2;

2如果只希望导入指定字段,可以用这种方法:

INSERT INTO 目标表 (字段1, 字段2, ) SELECT 字段1, 字段2, FROM 来源表;

注意字段的顺序必须一致。

insert into insertTest2(id) select id from insertTest2;

3如果您需要只导入目标表中不存在的记录,可以使用这种方法:

INSERT INTO 目标表

(字段1, 字段2, )

SELECT 字段1, 字段2,

FROM 来源表

WHERE not exists (select from 目标表

where 目标表比较字段 = 来源表比较字段);

1>插入多条记录:

insert into insertTest2

(id,name)

select id,name

from insertTest

where not exists (select from insertTest2

where insertTest2id=insertTestid);

2>插入一条记录:

insert into insertTest

(id, name)

SELECT 100, 'liudehua'

FROM dual

WHERE not exists (select from insertTest

where insertTestid = 100);

使用 dual 作表名,select 语句后面直接跟上要插入的字段的值。

4将查询出来的数据并同其他变量一起插入新的数据表中

insert into t_supp_PurchPlan_s(PurPlanCode,itemcode,Speccode) select 'hello'as PurPlanCode,itemcode,speccode from b_item where id=8

直接将变量放到相应的位置即可(如上将固定的变量或动态变量放入即可)

这个非常简单,MySQL数据库的用户信息、数据库信息和登录IP信息通常都保存在系统数据库中,可以直接经过查询得到,下面我简单介绍一下,以MySQL55为例:

用户信息

这个主要保存在mysql数据库的user表中,通常修改用户的密码、删除用户及分配权限等就是在这个表进行,下面我简单介绍一下:

查询所有用户

这个直接执行“selectuser,hostfromuser;”语句就行,如下,第一列为用户名,第二列为允许登录的IP,%表示任意IP都可登录,localhost则只允许本地登录:

查询用户权限

这个直接执行“showgrantsfor'user'@'host';”命令就行,如下,以root用户为例,则直接执行“showgrantsfor'root'@'localhost';”命令,all表示所有权限,select表示只查权限,update表示只改权限,delete表示只删权限等:

数据库信息

这个主要保存在information_schema数据库中,它通常保存着MySQL数据库所维护的所有数据库信息,包括数据库名,数据表名,表栏的数据类型与访问权限等,下面我简单介绍一下:

查询所有数据库

这个直接执行“showdatabases;”命令就行,如下,会列出当前MySQL数据库中存储的所有数据库,查看某一个数据库下所有数据表的话,执行“showtables;”命令就行:

查看数据库大小

以test数据库为例,计算单位为MB,直接执行“selectconcat(round(sum(data_length)/(10241024),2)+round(sum(index_length)/(10241024),2),'MB')as'DBSize'fromtableswheretable_schema='test';”命令就行,如下:

查看数据库编码

这个直接执行“showvariableslike'character%';”命令就行,如下,character_set_client为客户端编码,character_set_connection为建立连接编码,character_set_database为数据库编码,character_set_results为结果集编码,character_set_server为数据库服务器编码;

登录IP信息

这里通常是查看连接MySQL数据库的IP信息,统计每个IP的连接数,执行“selectSUBSTRING_INDEX(host,':',1)asip,count()frominformation_schemaprocesslistgroupbyip”命令就行,如下,第一列为IP地址,第二列为该IP下的连接数:

至此,我们就完成了查询MySQL数据库的用户信息、数据库信息和登录IP信息。总的来说,整个过程非常简单,只要你有一定的MySQL基础,熟悉一下相关文档和说明,很快就能掌握的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

以上就是关于如何打开Mysql数据库文件全部的内容,包括:如何打开Mysql数据库文件、linux下mysql导入数据库出现这个错误是怎么回事啊、如何打开朋友传过来的Mysql数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9713254.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存