linux下执行sql文件

linux下执行sql文件,第1张

linux里登录数据库后直接执行特定的命令就可以,参数是文件所在位置。比如说mysql:首先登录数据库mysql -u用户名 -p,之后执行source sql文件位置 就可以。

执行sql文件,可以在mysql命令行里面执行,步骤如下:

1使用cmd命令执行(windows下,unix或linux在的其控制台下)

2Mysql的bin目录\mysql –u用户名 –p密码 –D数据库<sql脚本文件路径全名,示例:

D:\mysql\bin\mysql –uroot –p123456 -Dtest

注意:

A、如果在sql脚本文件中使用了use 数据库,则-D数据库选项可以忽略

B、如果Mysql的bin目录中包含空格,则需要使用“”包含,如:“C:\Program Files\mysql\bin\mysql” –u用户名 –p密码 –D数据库<sql脚本文件路径全名

首先通过xshell连接数据库服务器,执行命令mysql -u root -p 命令,按照提示输入密码。连接上数据库。
在连接终端上执行命令create database JD_Model;
执行完成后,验证数据库是否创建成功。执行命令show database;查看是否有JD_Model数据库。
将准备好的数据库文件20151010sql文件通过xftp工具,上传至/root目录下,并等待上传完毕。
在连接数据库的终端执行命令use JD_Model。
使用JD_Model数据库。具体 *** 作如下图所示。
执行命令source /root/20151010sql。执行数据库导入命令。
待导入完毕,执行下一步 *** 作。
确定数据表是否创建成功,即数据文件是否导入成功。
执行命令 show tables;查看数据库下的表。

Ubuntu下使用MySql命令导入/导出sql文件 ( redhat的mysql命令在: /usr/local/mysql/bin/ 目录下面 )导出:1导出整个数据库mysqldump 数据库名 > 导出的文件名 -u 用户名 -p密码2导出一个表mysqldump 数据库名 表名 > 导出的文件名 -u 用户名 -p密码导入:在提示符下输入mysql -u root -p 密码进入MYSQL后:先打开要导入的数据库mysql>use test;然后,设置要导入的数据的编码(如果MySQL默认编与要导入的数据编码一致,此步可省略)mysql>set names 编码格式(utf8或gbk);最后,导入数据sql文件mysql> source c:/testsql;Windows下使用MySql命令导入/导出sql文件 1 导出数据库:D:\mysql\bin> mysql 数据库名 > 导出的文件名 -u 用户名 -p密码2 导入数据库:

主要有以下几种方法:
1、将SQL语句直接嵌入到shell脚本文件中
代码如下:
--演示环境
[root@SZDB ~]# more /etc/issue
CentOS release 59 (Final)
Kernel \r on an \m
root@localhost[(none)]> show variables like 'version';
+---------------+------------+
| Variable_name | Value |
+---------------+------------+
| version | 5612-log |
+---------------+------------+

[root@SZDB ~]# more shell_call_sql1sh
#!/bin/bash
# Define log
TIMESTAMP=`date +%Y%m%d%H%M%S`
LOG=call_sql_${TIMESTAMP}log
echo "Start execute sql statement at `date`" >>${LOG}

# execute sql stat
mysql -uroot -p123456 -e "
tee /tmp/templog
drop database if exists tempdb;
create database tempdb;
use tempdb
create table if not exists tb_tmp(id smallint,val varchar(20));
insert into tb_tmp values (1,'jack'),(2,'robin'),(3,'mark');
select from tb_tmp;
notee
quit"

echo -e "\n">>${LOG}
echo "below is output result">>${LOG}
cat /tmp/templog>>${LOG}
echo "script executed successful">>${LOG}
exit;

[root@SZDB ~]# /shell_call_sql1sh
Logging to file '/tmp/templog'
+------+-------+
| id | val |
+------+-------+
| 1 | jack |
| 2 | robin |
| 3 | mark |
+------+-------+
Outfile disabled
2、命令行调用单独的SQL文件
代码如下:
[root@SZDB ~]# more tempsql
tee /tmp/templog
drop database if exists tempdb;
create database tempdb;
use tempdb
create table if not exists tb_tmp(id smallint,val varchar(20));
insert into tb_tmp values (1,'jack'),(2,'robin'),(3,'mark');
select from tb_tmp;
notee
[root@SZDB ~]# mysql -uroot -p123456 -e "source /root/tempsql"
Logging to file '/tmp/templog'
+------+-------+
| id | val |
+------+-------+
| 1 | jack |
| 2 | robin |
| 3 | mark |
+------+-------+
Outfile disabled
3、使用管道符调用SQL文件
代码如下:
[root@SZDB ~]# mysql -uroot -p123456 </root/tempsql
Logging to file '/tmp/templog'
id val
1 jack
2 robin
3 mark
Outfile disabled
#使用管道符调用SQL文件以及输出日志
[root@SZDB ~]# mysql -uroot -p123456 </root/tempsql >/tmp/templog
[root@SZDB ~]# more /tmp/templog
Logging to file '/tmp/templog'
id val
1 jack
2 robin
3 mark
Outfile disabled
4、shell脚本中MySQL提示符下调用SQL
代码如下:
[root@SZDB ~]# more shell_call_sql2sh
#!/bin/bash
mysql -uroot -p123456 <<EOF
source /root/tempsql;
select current_date();
delete from tempdbtb_tmp where id=3;
select from tempdbtb_tmp where id=2;
EOF
exit;
[root@SZDB ~]# /shell_call_sql2sh
Logging to file '/tmp/templog'
id val
1 jack
2 robin
3 mark
Outfile disabled
current_date()
2014-10-14
id val
2 robin
5、shell脚本中变量输入与输出
代码如下:
[root@SZDB ~]# more shell_call_sql3sh
#!/bin/bash
cmd="select count() from tempdbtb_tmp"
cnt=$(mysql -uroot -p123456 -s -e "${cmd}")
echo "Current count is : ${cnt}"
exit
[root@SZDB ~]# /shell_call_sql3sh
Warning: Using a password on the command line interface can be insecure
Current count is : 3

[root@SZDB ~]# echo "select count() from tempdbtb_tmp"|mysql -uroot -p123456 -s
3

[root@SZDB ~]# more shell_call_sql4sh
#!/bin/bash
id=1
cmd="select count() from tempdbtb_tmp where id=${id}"
cnt=$(mysql -uroot -p123456 -s -e "${cmd}")
echo "Current count is : ${cnt}"
exit

[root@SZDB ~]# /shell_call_sql4sh
Current count is : 1

1shell中执行sql
export ORACLE_SID=ORCL
sqlplus -S /nolog @/home/oracle/testsql #注意此处执行sql脚本的方法 -S 表示以静默方式执行
exit
2testsql中要加入连接
conn scott/tiger@orcl
set time on

exit;

同样,可以手动执行sql文件,具体步骤如下:
1、使用root帐户登录到MySQL服务器;
2、执行source命令:
mysql>
source
c:/testsql
注意:文件路径中建议使用“/”,如果使用“\”,要首先进行转义即“\\”,否则可能会出现错误。
另外还有一个load命令可以批量插入数据,但是这个对文件中数据格式的要求比较严格,否则容易出现错误,很少使用。
mysql
查看所有用户的语句
输入指令select
user();
例:(项目来源:尚学堂)struts_training_itemmgrsql内容如下:
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','精通Spring2X
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','箱');

首先通过xshell连接数据库服务器,执行命令mysql -u root -p 命令,按照提示输入密码。连接上数据库。\x0d\\x0d\在连接终端上执行命令create database JD_Model;\x0d\执行完成后,验证数据库是否创建成功。执行命令show database;查看是否有JD_Model数据库。\x0d\\x0d\将准备好的数据库文件20151010sql文件通过xftp工具,上传至/root目录下,并等待上传完毕。\x0d\\x0d\在连接数据库的终端执行命令use JD_Model。\x0d\使用JD_Model数据库。具体 *** 作如下图所示。\x0d\\x0d\执行命令source /root/20151010sql。执行数据库导入命令。\x0d\待导入完毕,执行下一步 *** 作。\x0d\\x0d\确定数据表是否创建成功,即数据文件是否导入成功。\x0d\执行命令 show tables;查看数据库下的表。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存