
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数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)