Linux下如何运行sql脚本

Linux下如何运行sql脚本,第1张

Linux运行sql脚本的具体 *** 作步骤如下:

1、使用shell工具登陆到安装postgresql的服务器,切换到postgres用户,postgresql默认的 *** 作用户,命令是:su - postgres,查看当前路径是/var/lib/psql,创建一个test.sql脚本文件,命令是:vim test.sql。

2、sql脚本内容是:create table test (id int not null primary key,name text)insert into test valus(1, 't1')

3、执行test.sql脚本,命令是:psql -f test.sql

这里是因为postgresql安装本机上,在第一步中我们切换到了postgres用户,因此这里默认就是postgres用户来 *** 作,不用带上用户名和密码。执行结果如下,可以看到有两个提示:

create table

insert 0 1

执行完成后,我们登入数据库,命令是:psql

4、进入psql交互式命令行后,我们执行两个查看命令:\d

可以看到表test确实已经创建成功,然后执行命令:\d test

可以看到表中字段是id和name,和我们创建语句中内容一样,说明第一条语句执行成功。

5、查看表中数据,命令是:select * from test

显示出来的值是1,t1,说明第二条执行语句也执行成功,说明test.sql脚本执行成功。

6、默认是postgres用户,本机 *** 作是,不需要用户和密码,现在我们来试试 *** 作远程linux服务器上的postgresql,也就是说执行本地的脚本文件,在远程服务器上创建表。如下面图中所示,命令是:psql -U test1 -h 192.168.1.194 -f test.sql,输入对应用户的密码。

7、登陆到这个远程服务器上,命令是:psql -U test -h 192.168.194

执行查看命令:\d,\d test

最后查询数据库:select * from test结果和上面都一致。

在Linux里面,有一个比较好的工具sed,sed -i "s#A#B#g" filename,比如:sed -i "s#linux#windows#g" a.txt,这样可以把a.txt文件中所有的linux替换成windows,“#”可以换成其他的字符,可以根据实际情况来定。如果替换的内容来自文件,可以用脚本遍历文件的方式实现。例如:

旧地址文件:A.txt,需要处理的sql文件:mysql.sql,替换后的新内容:newtext

#/bin/bash

for line in `cat .A.txt`

do

sed -i "s#$line#newtext#g" mysql.sql

done

当然,也可以指定替换行的范围(例如50行到100行),具体的请参考linux下sed命令的用法

同样,可以手动执行sql文件,具体步骤如下:

1、使用root帐户登录到MySQL服务器

2、执行source命令:

mysql>

source

c:/test.sql

注意:文件路径中建议使用“/”,如果使用“\”,要首先进行转义即“\\”,否则可能会出现错误。

另外还有一个load命令可以批量插入数据,但是这个对文件中数据格式的要求比较严格,否则容易出现错误,很少使用。

mysql

查看所有用户的语句

输入指令select

user()

例:(项目来源:尚学堂)struts_training_itemmgr.sql内容如下:

Sql代码

DROP

TABLE

t_items

DROP

TABLE

t_data_dict

CREATE

TABLE

t_items

(

item_no

varchar(20)

not

null

key,

item_name

varchar(20)

not

null,

spec

varchar(20),

pattern

varchar(10),

category

varchar(20),

unit

char(20)

)

CREATE

TABLE

t_data_dict

(

id

varchar(5)

not

null

key,

category

varchar(20),

name

varchar(30)

)

#

t_data_dict的初始化数据

INSERT

INTO

t_data_dict(id,category,name)

values('B01','item_category','精通Spring2.X

Java

Web开发')

INSERT

INTO

t_data_dict(id,category,name)

values('B02','item_category','Java语言与面向对象程序设计')

INSERT

INTO

t_data_dict(id,category,name)

values('B03','item_category','2B铅笔')

INSERT

INTO

t_data_dict(id,category,name)

values('B04','item_category','HOTROCK

notebook')

INSERT

INTO

t_data_dict(id,category,name)

values('C01','item_unit','本')

INSERT

INTO

t_data_dict(id,category,name)

values('C02','item_unit','支')

INSERT

INTO

t_data_dict(id,category,name)

values('C03','item_unit','箱')


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

原文地址: http://outofmemory.cn/yw/9009566.html

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

发表评论

登录后才能评论

评论列表(0条)

保存