A. linux怎麼執行sql文件命令
以下舉個例子,在shell下執行sql命令然後馬上回到shell.
其中mysql密碼和賬號都是www
$
mysql
-uwww
-pwww
-hlocalhost
-e
"show
databases;"
+--------------------+
|
database
|
+--------------------+
|
information_schema
|
+--------------------+
$
如果要執行不止一條命令,則可以先寫到一個文件中,然後再用輸入重定向完成。比如我可以把sql指令都寫到/tmp/sqltest中然後
$
mysql
-uwww
-pwww
-hlocalhost
<
/tmp/testsql
database
information_schema
$
#註:為方便,我
testsql
中還是只有一條命令,還是
show
databases;
B. linux 怎麼執行sql
要看你有沒有設資料庫bin目錄的環境變數 如果設置了就直接可以用,如果沒設置你就:
1.切換工作目錄到mysql(或其他資料庫產品)下,用root用戶執行 sudo bin/mysqld_safe --user root &(這個符號表示從後台啟動)
2.然後再切換到bin目錄下工作 執行./mysql -u 用戶名 -p
3.終端會提示你輸入密碼
C. 求一個linux下的shell腳本執行mysql的sql語句,但老是 不成功....大神幫忙啊...
簡單的看了一下
第一,第六行a= awk 'NR==2{print $1}' testsss.log 這里是否沒有加``,另外shell下賦值在等號兩側是不允許有空格的,這個不知道是不是你貼在裡面顯示的錯誤
第二,$sqlw取出來的應該就已經是id>3的了,那麼你在for循環里的判斷if [ "$num" -gt "3" ]應該進不去,所以循環里是不會走到if里去的,你可以在if外面列印一下$num的值看看。
D. MySQL中如何執行SQL語句
MYSQL裡面執行SQL語句使用一個DOS命令:MYSQL.EXE
滑鼠雙擊MYSQL.EXE不一定能夠執行,因為那是連接的默認主機、用戶名、密碼,往往不能工作,你需要在CMD命令提示符下,執行命令的時候用參數指定這些內容,參數格式是:
MYSQL.EXE -h 主機名稱或者IP比如127.0.0.1 -u 用戶名稱比如root -p
E. 怎樣查看mysql的sql執行sql語句
1先通過status命令查看Mysql運行狀態mysql>status;--------------mysqlVer14.14Distrib5.1.73,forredhat-linux-gnu(x86_64)usingreadline5.1Connectionid:113752Currentdatabase:information_schemaCurrentuser:push_user@localhostSSL:NotinuseCurrentpager:stdoutUsingoutfile:''Usingdelimiter:;Serverversion:5.1.:10Connection::latin1Dbcharacterset:utf8Clientcharacterset:latin1Conn.characterset:latin1UNIXsocket:/tmp/mysql.sockUptime:22days8hours31min23secThreads:38Questions:1037751897Slowqueries:2356Opens:79836Flushtables:1Opentables:64Queriespersecondavg:537.282--------------在上面顯示列表的最後一條,我們來查看Slowqueries這一項的值,如果多次查看的值大於0的話,說明有些查詢sql命令執行時間過長。2)這時再通過showprocesslist命令來查看當前正在運行的SQL,從中找出運行慢的SQL語句,找到執行慢的語句後,再用explain命令查看這些語句的執行計劃。mysql>showprocesslist;+--------+-----------+---------------------+--------------------+---------+-------+-------+------------------+|Id|User|Host|db|Command|Time|State|Info|+--------+-----------+---------------------+--------------------+---------+-------+-------+------------------+|50270|ambari|DataBase-01:41512|ambari|Sleep|23||NULL||50271|ambari|DataBase-01:41511|ambari|Sleep|6||NULL||50272|ambari|DataBase-01:41514|ambari|Sleep|23||NULL||62452|oozie|DataBase-02:42987|oozie|Sleep|25||NULL||63660|ambari|DataBase-01:56052|ambari|Sleep|0||NULL||110404|push_user|localhost:33817|quartz|Sleep|12||NULL||112835|push_user|localhost:46571|hibernate|Sleep|1||NULL||113163|push_user|localhost:56585|hibernate|Sleep|1||NULL||113289|push_user|14.118.132.20:47333|DW|Sleep|628||NULL||113320|push_user|localhost:47428|hibernate|Sleep|3||NULL||113321|push_user|localhost:47429|hibernate|Sleep|3||NULL||113322|push_user|localhost:47430|hibernate|Sleep|3||NULL||113357|push_user|localhost:52337|hibernate|Sleep|3||NULL||113364|push_user|localhost:57206|hibernate|Sleep|3||NULL||113366|push_user|localhost:34813|hibernate|Sleep|1||NULL||113398|push_user|localhost:37382|hibernate|Sleep|1||NULL||113498|push_user|localhost:47626|quartz|Sleep|12717||NULL||113709|push_user|localhost:59382|hibernate|Sleep|1||NULL||113710|push_user|localhost:33627|hibernate|Sleep|1||NULL||113715|hive|DataBase-02:54968|hive|Sleep|2390||NULL||113716|hive|DataBase-02:54969|hive|Sleep|2390||NULL||113717|hive|DataBase-02:54974|hive|Sleep|2336||NULL||113718|hive|DataBase-02:54975|hive|Sleep|2336||NULL||113719|push_user|localhost:48243|hibernate|Sleep|1||NULL||113720|push_user|localhost:48245|hibernate|Sleep|1||NULL||113721|push_user|localhost:48244|hibernate|Sleep|1||NULL||113722|push_user|localhost:48247|hibernate|Sleep|1||NULL||113723|push_user|localhost:48249|hibernate|Sleep|1||NULL||113724|push_user|localhost:48248|hibernate|Sleep|1||NULL||113745|push_user|localhost:50684|hibernate|Sleep|1||NULL||113746|push_user|localhost:50685|hibernate|Sleep|1||NULL||113747|push_user|localhost:50695|hibernate|Sleep|1||NULL||113748|push_user|localhost:50696|hibernate|Sleep|1||NULL||113749|push_user|localhost:50697|hibernate|Sleep|1||NULL||113750|push_user|localhost:50699|hibernate|Sleep|1||NULL||113751|push_user|localhost:50700|hibernate|Sleep|1||NULL||113752|push_user|localhost|information_schema|Query|0|NULL|showprocesslist||113753|push_user|14.118.132.20:28688|DW|Sleep|396||NULL|+--------+-----------+---------------------+--------------------+---------+-------+-------+------------------+38rowsinset(0.00sec)或者通過如下命令查詢:mysql>useinformation_schema;mysql>select*;+--------+-----------+-----------+--------------------+---------+------+-----------+--------------------------------------------------+|ID|USER|HOST|DB|COMMAND|TIME|STATE|INFO|+--------+-----------+-----------+--------------------+---------+------+-----------+--------------------------------------------------+|113752|push_user|localhost|information_schema|Query|0|executing|select*|+--------+-----------+-----------+--------------------+---------+------+-----------+--------------------------------------------------+1rowinset(0.00sec)
F. linux系統下怎麼在終端運行sql語句
主要有以下幾種方法:
1、將SQL語句直接嵌入到shell腳本文件中
代碼如下:
--演示環境
[root@SZDB ~]# more /etc/issue
CentOS release 5.9 (Final)
Kernel \r on an \m
root@localhost[(none)]> show variables like 'version';
+---------------+------------+
| Variable_name | Value |
+---------------+------------+
| version | 5.6.12-log |
+---------------+------------+
[root@SZDB ~]# more shell_call_sql1.sh
#!/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/temp.log
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/temp.log>>${LOG}
echo "script executed successful.">>${LOG}
exit;
[root@SZDB ~]# ./shell_call_sql1.sh
Logging to file '/tmp/temp.log'
+------+-------+
| id | val |
+------+-------+
| 1 | jack |
| 2 | robin |
| 3 | mark |
+------+-------+
Outfile disabled.
2、命令行調用單獨的SQL文件
代碼如下:
[root@SZDB ~]# more temp.sql
tee /tmp/temp.log
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/temp.sql"
Logging to file '/tmp/temp.log'
+------+-------+
| id | val |
+------+-------+
| 1 | jack |
| 2 | robin |
| 3 | mark |
+------+-------+
Outfile disabled.
3、使用管道符調用SQL文件
代碼如下:
[root@SZDB ~]# mysql -uroot -p123456 </root/temp.sql
Logging to file '/tmp/temp.log'
id val
1 jack
2 robin
3 mark
Outfile disabled.
#使用管道符調用SQL文件以及輸出日誌
[root@SZDB ~]# mysql -uroot -p123456 </root/temp.sql >/tmp/temp.log
[root@SZDB ~]# more /tmp/temp.log
Logging to file '/tmp/temp.log'
id val
1 jack
2 robin
3 mark
Outfile disabled.
4、shell腳本中MySQL提示符下調用SQL
代碼如下:
[root@SZDB ~]# more shell_call_sql2.sh
#!/bin/bash
mysql -uroot -p123456 <<EOF
source /root/temp.sql;
select current_date();
delete from tempdb.tb_tmp where id=3;
select * from tempdb.tb_tmp where id=2;
EOF
exit;
[root@SZDB ~]# ./shell_call_sql2.sh
Logging to file '/tmp/temp.log'
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_sql3.sh
#!/bin/bash
cmd="select count(*) from tempdb.tb_tmp"
cnt=$(mysql -uroot -p123456 -s -e "${cmd}")
echo "Current count is : ${cnt}"
exit
[root@SZDB ~]# ./shell_call_sql3.sh
Warning: Using a password on the command line interface can be insecure.
Current count is : 3
[root@SZDB ~]# echo "select count(*) from tempdb.tb_tmp"|mysql -uroot -p123456 -s
3
[root@SZDB ~]# more shell_call_sql4.sh
#!/bin/bash
id=1
cmd="select count(*) from tempdb.tb_tmp where id=${id}"
cnt=$(mysql -uroot -p123456 -s -e "${cmd}")
echo "Current count is : ${cnt}"
exit
[root@SZDB ~]# ./shell_call_sql4.sh
Current count is : 1
G. 如何在mysql shell命令中執行sql命令行
本文介紹 MySQL 8.0 shell 子模塊 Util 的兩個導入特性 importTable/import_table(JS和python 版本的命名差異)、importJson/import_json的使用方法。
其中 import_table 是通過傳統 MySQL 協議來通信,Import_json 是通過 X 插件協議來通信。MySQL 一直以來提供導入文件 SQL 命令 load data infile(單線程)以及對應的可執行文件 mysqlimport(多線程)。
比如我導入 100W 行示例數據到表 ytt.tl1,花了 24 秒。這個已經是 MySQL 默認導入來的最快的。分析那我們現在看下 mysqlimport 工具的升級版,mysqlshell 的 util 工具集。
使用這兩個工具之前,必須得臨時開啟 local_infile 選項。1. import_table建立 3306 埠的新連接我這里切換為 python 模式清空掉示例表 Ytt.tl1import_table 有兩個參數,第一個參數定義導入文件的路徑,第二個定義相關選項,比如導入的格式,並發的數量等。定義文件路徑(參數1)定義選項(參數2)執行導入:只花了不到 17 秒,比傳統 mysqlimport 快了不少。
我們上面指定了顯式指定了欄位分隔符,那有沒有已經定義好的組合格式呢? 答案是有的,選項 dialect 可以指定以下格式:csv,tsv,json,csv-unix那麼上面的導入,我們可以更簡單,改下變數 y_options1 的定義導入時間差不多。這里要說明下,dialect 選項的優先順序比較低,比如添加了'linesTerminatedBy':' ', 則覆蓋他自己的' '。
選項 diaelect 還有一個可選值為 json,可以直接把 json 結果導入到文檔表裡。比如我新建一張表 tl1_json重新定義文件以及導入選項。導入 JSON 數據速度也還可以,不到 24 秒。那導入 json 數據,就必須得提到以 X 插件協議通信的工具 import_json了。2. imort_json我們切換到 mysqlx 埠import_json 參數和 Import_table 參數類似,這里我改下選項我在手冊上沒有看到多線程的選項,所以單線程跑 35 秒慢了些。查看剛剛導入的數據import_json 不僅僅可以導入 Json 數據,更重要的是可以在 BSON 和 JSON 之間平滑的轉換,有興趣的同學可以去 TRY 下。
H. linux:如何跟蹤mysql執行的sql語句
是指應用程序的方法吧。如果你是用hibernate、iBATIS等連接資料庫,直接從log4j配置文件中打開調試模式就行,如果用的自己寫的jdbc連接,那就只能在執行前列印了
I. Linux下如何運行sql腳本
1、打開navicat for mysql並打開鏈接和資料庫,注意資料庫的狀態是打開的,關閉狀態下是無法運行sql腳本的。
J. 在linux的mysql中,如何執行txt中的sql語句
利用管道命令
【假設】:
1. 你的mysql用戶名是user ,密碼是passwd
2. 需要執行的命令全部正確的保存在cmd.txt中
【執行】:
catcmd.txt|mysql-uuser-ppasswd