當前位置:首頁 » 編程軟體 » mysql腳本執行

mysql腳本執行

發布時間: 2022-01-09 17:27:43

❶ 怎麼寫一個Mysql自動執行腳本

呵呵~前幾天剛搞好這個...
分兩個BAT(1.bat,2.bat)~~當然可以連起來~BAT路徑自己修改
1.bat內容以下

D:\wamp\bin\mysql\mysql5.5.8\bin\mysql -uroot -p < D:\wamp\www\mysqlCreatDB.sql
2.bat

mysqlCreatDB.sql內容為:create database 「自己資料庫名字」

2.bat內容以下

@ECHO off
set user=root
set pass=
set wdb=gx
set port=3306
set server=localhost

@ECHO 正在安裝資料庫....
D:\wamp\bin\mysql\mysql5.5.8\bin\mysql -h %server% --user=%user% --password=%pass% --port=%port% %wdb% < D:\wamp\www\自己導出的SQL文件
@ECHO 安裝完畢

❷ mysql是用的.sh寫的腳本,執行後提示沒有命令

在Shell中執行mysql的腳本,這里介紹比較容易使用的一種方法
首先寫好sql的腳本,後綴為.sql,比如
sql_file.sql:內容如下
#這是SQL的腳本
create table if not exists test_sql(id int(10),name varchar(20));
insert into test_sql values(1,'正餐');
select * from test_sql;

很簡單的創建、插入、查詢
之後shell的腳本,內容如下
#!/bin/bash #這是執行SQL的腳本,傳入資料庫表,和SQL文件名即可
name=$1
file_name=$2
cd /opt/lampp/bin ./mysql -uroot -p123456 <<EOF
use ${name};
source ${file_name};
EOF

./mysql -uroot -p123456是進入mysql的命令,前面的路徑可以改成自己的絕對路徑
<< EOF EOF 中間可以寫出任意的mysql腳本
其中,如果要執行某個.sql的命令,直接用 source 腳本.sql 即可執行該腳本上面的命令,這里使用的是source sql_file.sql
此外,如果在mysql中需要執行shell腳本
可以在EOF中 ./mysql -uroot -p123456<<EOF \! sh shell.sh EOF
前面加上 !\ +linux中執行的shell命令即可

❸ 如何查看mysql運行腳本文件

sql腳本是包含一到多個sql命令的sql語句,我們可以將這些sql腳本放在一個文本文件中(我們稱之為「sql腳本文件」),然後通過相關的命令執行這個sql腳本文件。基本步驟如下:
1、創建包含sql命令的sql腳本文件
文件中包含一些列的sql語句,每條語句最後以;結尾,文件內容示例如下:
--創建表,使用「--」進行注釋
create table 表名稱
(
Guid Varchar(38) not null primary key,
Title Varchar(255),

❹ 如何執行一個mysql的sql腳本文件

基本步驟如下:
一、創建包含sql命令的sql腳本文件
文件中包含一系列的sql語句,每條語句最後以;結尾,假設文件名為ss.sql,文件內容示例如下(使用「--」進行注釋):--創建表create table 表名稱(Guid Varchar(38) not null primary key,
Title Varchar(255),
) TYPE=InnoDB;--在表A中增加欄位Status
alter table A add Status TinyInt default '0';--在表A上創建索引
create index XX_TaskId_1 on A(Id_);
--在A表中添加一條記錄
Insert into A (Id,ParentId, Name) values(1,0,'名稱');
--添加、修改、刪除數據後,有可能需要提交事務
Commit;二、執行sql腳本文件方法一 使用cmd命令執行(以windows為例,unix或linux的在其類似的控制台下運行)
格式:【Mysql的bin目錄】\mysql –u用戶名 –p密碼 –D資料庫<【sql腳本文件路徑全名】
示例:D:\mysql\bin\mysql –uroot –p123456 -Dtest<d:\test\ss.sql注意事項:1、如果在sql腳本文件中使用了use 資料庫,則-D資料庫選項可以忽略
2、如果【Mysql的bin目錄】中包含空格,則需要使用「」包含,如:
「C:\Program Files\mysql\bin\mysql」 –u用戶名 –p密碼 –D資料庫<【sql腳本文件路徑全名】
3、如果需要將執行結果輸出到文件,可以採用以下模式
D:\mysql\bin\mysql –uroot –p123456 -Dtest<d:\test\ss.sql>d:\dd.txt
方法二 進入mysql的控制台後,使用source命令執行
1、進入mysql控制台
D:\mysql\bin\mysql –uroot –p123456 -Dtest
2、執行sql腳本文件

❺ 進入mysql控制台後執行sql腳本的方法

使用source命令執行sql腳本。
進入mysql的控制台後,使用source命令執行
Mysql>source
【sql腳本文件的路徑全名】
具體步驟:
假設運行sql腳本是hello.sql,在控制台下輸入:
mysql>source
c:\hello
world\hello.sql(注意路徑不用加引號)
或者
\.
c:\hello
world\hello.sql
然後回車即可

❻ mysql命令行工具如何執行腳本文件

mysql
-u
root
-p
#輸入root密碼
如果這個SQL里有
create
database
member;
這句,那麼直接執行下面的語句,如果沒有,那麼你需要先
create
database
member;
use
member;
再執行下面的語句
source
/xxx/create_db_member.sql

❼ mysql如何執行sql腳本文件

mysql
–u用戶名–p密碼
–D資料庫<【sql腳本文件路徑全名】,示例:mysql
–uroot
–p11111
-Dtest注意:A、如果在sql腳本文件中使用了use
資料庫,則-D資料庫選項可以忽略B、如果【Mysql的bin目錄】中包含空格,則需要使用「」包含,如:「C:\Program
Files\mysql\bin\mysql」
–u用戶名
–p密碼–D資料庫<【sql腳本文件路徑全名】方法二
進入mysql的控制台後mysql>source
sql腳本路徑

❽ linux shell腳本執行mysql mysql資料庫在遠程伺服器上

方法一、適合所有格式的mysql資料庫,通過對資料庫導出導進寫個腳本定時執行:
1.導出整個資料庫 mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名 mysqlmp -u wcnc -p smgp_apps_wcnc > /存放路徑/wcnc.sql
2.導出一個表 mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名 mysqlmp -u wcnc -p smgp_apps_wcnc users> /存放路徑/wcnc_users.sql
3.導出一個資料庫結構 mysqlmp -u wcnc -p -d --add-drop-table smgp_apps_wcnc >/存放路徑/wcnc_db.sql
定義:
-d 沒有數據
--add-drop-table 在每個create語句之前增加一個drop table
4.導入資料庫 常用source 命令 進入mysql資料庫控制台:
如mysql -u root -p mysql>use 資料庫

方法二、針對mysql數據表格式為MyISAM的
假如數據文件在/var/lib/mysql
那麼直接寫個腳本
cp -r /var/lib/mysql /備份到的文件夾路徑

隔機備份用rsync增量,或定時完整備份。

❾ 如何提高mysql腳本執行速度

看了一個優化案例覺的挺有代表性,這里記錄下來做一個標記,來紀念一下隨便的欄位定義的問題。
回憶一下,在表的設計中很多人習慣的把表的結構設計成Varchar(64),Varchar(255)之類的,雖然大多數情況只存了5-15個位元組.那麼我看一下下面這個案例.
查詢語句:
?1 SELECT SQL_NO_CACHE channel, COUNT(channel) AS visitors FROM xxx_sources WHERE client_id = 1301 GROUP BY client_id, channel;該表(client_id,channel)是一個組合索引.
利用explain,看一下執行計劃,對於索引使用上看上非常完美?1234567 mysql> explain SELECT SQL_NO_CACHE channel, COUNT(channel) AS visitors FROM xxx_sources WHERE client_id = 1301 GROUP BY client_id, channel; +----+-------------+-------------+-------+--------------------+--------------------+---------+------+----------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------------+-------+--------------------+--------------------+---------+------+----------+--------------------------+ | 1 | SIMPLE | xxx_sources | index | idx_client_channel | idx_client_channel | 1032 | NULL | 20207319 | Using where; Using index | +----+-------------+-------------+-------+--------------------+--------------------+---------+------+----------+--------------------------+ 1 row in set (0.00 sec)看一下實際執行:
?1234567 mysql> SELECT SQL_NO_CACHE channel, COUNT(channel) AS visitors FROM xxx_sources WHERE client_id = 1301 GROUP BY client_id, channel; +---------+----------+ | channel | visitors | +---------+----------+ | NULL | 0 | +---------+----------+ 1 row in set (11.69 sec)實際執行的情況非常的糟糕.傳通的想法,這個執行從索引上執行計劃上看非常完美了,好象和MySQL沒什麼關系了. 在去看一下表的設計會發現client_id也是設計成了varchar(255).看到這里不防可以使用下面的方法試一下:
?1234567 mysql> explain SELECT SQL_NO_CACHE channel, COUNT(channel) AS visitors FROM xxx_sources WHERE client_id = '1301' GROUP BY client_id, channel; +----+-------------+-------------+------+--------------------+--------------------+---------+-------+--------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------------+------+--------------------+--------------------+---------+-------+--------+--------------------------+ | 1 | SIMPLE | xxx_sources | ref | idx_client_channel | idx_client_channel | 258 | const | 457184 | Using where; Using index | +----+-------------+-------------+------+--------------------+--------------------+---------+-------+--------+--------------------------+ 1 row in set (0.00 sec)從執行計劃上來看,差不多,但實際差多了.具體上來看key_len從1032降到了258,執行計劃變成了const基於等於的查找,行數從原來千萬級到了十萬級了.不算也能明白IO節省了很多.
再來看實際執行:
?1234567 mysql> SELECT SQL_NO_CACHE channel, COUNT(channel) AS visitors FROM xxx_sources WHERE client_id = '1301' GROUP BY client_id, channel; +---------+----------+ | channel | visitors | +---------+----------+ | NULL | 0 | +---------+----------+ 1 row in set (0.25 sec)哇,從11.69秒變成了0.25秒,這是什麼概念,優化了多少倍,算一下吧.
看到這里在想什麼呢,記住這個案例,嗯,不錯,以後還可以加引號優化一下.那為什麼不問一下,能不能在優化了,為什麼會這樣呢?
我們先來看一下第一個問題:
能不能在優化了?
答案是當然可以了.從索引的長度上來看258還是一個非常大的數據,對於client_id這個欄位從名字上來看,也只會存數據型的值,那為什麼不用的一個int unsigned去存呢,索引的長度馬上會從258降到4。這樣不是又節省了很多嗎?
接下來看一下第二個問題,為什麼會這樣呢?
原因有兩點,同時基於一個原則,基於成本的優化器。對於client_id在表的定義時定義成了字元型的值,在查詢時傳入了數值型的值,需要經過一個數值轉換,悲劇的開始,最終導致MySQL選擇了一個完成的索引去掃描。
從這個案例上,我們需要注意什麼呢?
合理的選擇數據類型,基本工太重要了,就這叫贏在起跑線,一切都不能隨便了,別把一個表定義成了降了主建外其它全是Varchar(255)。對資料庫的double/float這種欄位做索引時一定要小心。

❿ MySql怎樣跟蹤SQL腳本執行

其實方法很簡單,開啟mysql的日誌log功能,通過查看跟蹤日誌即可。

開啟mysql的日誌log方法:

windows環境下的配置方法:

我使用的版本:Version: 5.0.37-community-nt-log (MySQL Community Edition (GPL))
找到my.ini,我的是在「G:\Program Files (x86)\MySQL\MySQL Server 5.0」目錄下,
找到[mysqld],在下面添加:

log=存放日誌的路徑/my.log

熱點內容
linux下ntp伺服器搭建 發布:2024-09-08 08:26:46 瀏覽:742
db2新建資料庫 發布:2024-09-08 08:10:19 瀏覽:171
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:778
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:101
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:209
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995
加上www不能訪問 發布:2024-09-08 06:39:52 瀏覽:811
銀行支付密碼器怎麼用 發布:2024-09-08 06:39:52 瀏覽:513
蘋果手機清理瀏覽器緩存怎麼清理緩存 發布:2024-09-08 06:31:32 瀏覽:554