mysql導出存儲過程
首先,導出存儲過程的命令如下,
mysqlmp -R -ndt dbname -u root -p > xxx.sql
另外,補充其他知識點,
查詢資料庫中的存儲過程
select * from mysql.proc where db = dbName and `type` = 'PROCEDURE'
show procere status;
查看存儲過程或函數的創建代碼
show create procere proc_name;
show create function func_name;
B. mysql 導入導出資料庫以及函數、存儲過程的介紹
mysql常用導出數據命令:
1.mysql導出整個資料庫
mysqlmp
-hhostname
-uusername
-ppassword
databasename
>
backupfile.sql
mysqlmp
-hlocalhost
-uroot
hqgr>
hqgr.sql
(如果root用戶沒用密碼可以不寫-p,當然導出的sql文件你可以制定一個路徑,未指定則存放在mysql的bin目錄下)
2.mysql導出資料庫一個表
mysqlmp
-hhostname
-uusername
-ppassword
database
tablename>
導出的文件名
mysqlmp
-hlocalhost
-uroot
hqgr
t_ug_user>
user.sql
3.mysql導出一個資料庫結構
mysqlmp
-hhostname
-uusername
-ppassword
-d
--add-drop-table
databasename>d:hqgrstructure.sql
-d
沒有數據
--add-drop-table
在每個create語句之前增加一個drop
table
4.如果需要導出mysql裡面的函數或者存儲過程
mysqlmp
-hhostname
-uusername
-ppassword
-ntd
-R
databasename
>
backupflie.sql
mysqlmp
-hlocalhost
-uroot
-ntd
-R
hqgr
>
hqgr.sql
其中的
-ntd
是表示導出存儲過程;-R是表示導出函數
mysql常用導入數據的命令:
1.mysql命令
mysql
-hhostname
-uusername
-
ppassword
databasename
<
backupfile.sql
2.source命令
mysql>source
backupfile.sql
C. mysql 怎麼導入/執行.SQL(存儲過程)文件
方法一 進入命令行
mysql –u用戶名 –p密碼 –D資料庫<【sql腳本文件路徑全名】,示例:
mysql –uroot –p123456 -Dtest < /home/zj/create_table.sql
注意:
如果在sql腳本文件中使用了use 資料庫,則-D資料庫選項可以忽略
方法二 進入mysql的控制台後,使用source命令執行
Mysql>source 【sql腳本文件的路徑全名】 或 Mysql>\. 【sql腳本文件的路徑全名】,示例:
source /home/zj/create_table.sql
D. Mysql 如何一次性將一台伺服器上的所有表結構、數據和存儲過程都導出到移動存儲介質(比如U盤)中
這種架構一般用在以下三類場景
1. 備份多台 Server 的數據到一台如果按照數據切分方向來講,那就是垂直切分。比如圖 2,業務 A、B、C、D 是之前拆分好的業務,現在需要把這些拆分好的業務匯總起來備份,那這種需求也很適用於多源復制架構。實現方法我大概描述下:業務 A、B、C、D 分別位於 4 台 Server,每台 Server 分別有一個資料庫來隔離前端的業務數據,那這樣,在從庫就能把四台業務的數據全部匯總起來,而不需要做額外的操作。那沒有多源復制之前,要實現這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關聯的問題,不但性能急劇下降,管理多個實例也沒有單台來的容易。
E. 怎麼導出mysql中已有的的表和存儲過程(不使用可視界面)
你好!你的意思是使用DOS命令導出來嗎?
不過現在基本上有可視化工具啊!很少有人使用命令導出:
這樣吧!我寫一
進入:cmdmysql安裝目錄C:ProgramFilesMySQLMySQLServer5.1in
命令:mysqlmp-uroot(用戶名)-ptest(資料庫名)-R>123.sql(導出數據的文件名)
下吧。歡迎採納!
F. 我想導出MYSQL資料庫中的部分數據,該怎麼操作
1、用sqlyong 工具可以很方便的導出部分列的數據,cvs、html、xml、execl xml、sql等格式。
2、如果一定用命令的話,用下面的操作吧:
mysqlmp -u用戶名 -p密碼 資料庫名 表名 > 路徑\xxx.sql
說明:上面這個命令只能導出一個表的全部數據不能導出部分數據,為了導出部分數據,先把users表的user和password列導出到臨時表,再講臨時表導出,需要的時候再倒入從臨時表中拿出數據。
1)create table tmp as select user,name from users;
2)mysqlmp -u用戶名 -p密碼 資料庫名 tmp > 路徑\xxx.sql
※注意create命令要在mysql中執行,mysqlmp在cmd中執行就可以。
***************
補充:只導入部分數據
mysqlmp -u用戶名 -p密碼 資料庫名 表名 "--w='where 條件'"< 路徑\xxx.sql
如:
mysqlmp -u用戶名 -p密碼 test t1 "--w='where name='張三'"< 路徑\xxx.sql
就是只導入 name='張三'的數據。
&&&&&&&&&&
再補充:
mysqlmp -u用戶名 -p密碼 test t1 "--w='where uid between 1 and 100"< 路徑\xxx.sql
說明:【"--w='where uid between 1 and 100"】就是你要寫的where條件,你想怎麼寫,寫進去就可以了。
---
以上,希望對你有所幫助。
G. 如何導出mysql 的存儲過程
這個問題比較蛋疼了 sqlservice與mysql 語法是有區別的 即時倒進去了也不能保證就能用的 而且如果你把sqlservice導成腳本 在mysql中執行是100%出錯滴
H. mysql只導出某個存儲過程怎麼導最好用mysqlmp命令。
單個的沒有 導出資料庫dbname下面全部的 mysqlmp -R -ndt dbname -u root -p > C:\xxx.sql;
I. Navicat導出mysql資料庫時出錯怎麼解決
項目上 MySQL還原 SQL 備份經常會碰到一個錯誤如下,且通常出現在導入視圖、函數、存儲過程、事件等對象時,其根本原因就是因為導入時所用賬號並不具有SUPER 許可權,所以無法創建其他賬號的所屬對象。ERROR 1227 (42000) : Access denied; you need (at least one of) the SUPER privilege(s) for this operation常見場景:1. 還原 RDS 時經常出現,因為 RDS 不提供 SUPER 許可權;2. 由開發庫還原到項目現場,賬號許可權等有所不同。
處理方式:
1. 在原庫中批量修改對象所有者為導入賬號或修改SQL SECURITY為Invoker;2. 使用 mysqlmp 導出備份,然後將 SQL 文件中的對象所有者替換為導入賬號。
二、問題原因我們先來看下為啥會出現這個報錯,那就得說下 MySQL 中一個很特別的許可權控制機制,像視圖、函數、存儲過程、觸發器等這些數據對象會存在一個DEFINER和一個SQL SECURITY的屬性,如下所示:
--視圖定義CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`%`SQLSECURITYDEFINERVIEWv_test
--函數定義CREATEDEFINER=`root`@`%`FUNCTION`f_test()`RETURNSvarchar(100)SQLSECURITYDEFINER
--存儲過程定義CREATEDEFINER=`root`@`%`PROCEDURE`p_test`()SQLSECURITYDEFINER
--觸發器定義CREATE DEFINER=`root`@`%` trigger t_test
--事件定義CREATE DEFINER=`root`@`%` EVENT `e_test`
DEFINER:對象定義者,在創建對象時可以手動指定用戶,不指定的話默認為當前連接用戶;
SQL SECURITY:指明以誰的許可權來執行該對象,有兩個選項,一個為DEFINER,一個為INVOKER,默認情況下系統指定為 DEFINER;DEFINER:表示按定義者的許可權來執行;INVOKER:表示按調用者的許可權來執行。
如果導入賬號具有 SUPER 許可權,即使對象的所有者賬號不存在,也可以導入成功,但是在查詢對象時,如果對象的SQL SECURITY為DEFINER,則會報賬號不存在的報錯。ERROR 1449 (HY000): The user specified as a definer ('root'@'%') does not exist
改寫好處:1. 可以避免還原時遇到 DEFINER 報錯相關問題;2. 根據輸出信息知道備份是否正常進行,防止備份中遇到元數據鎖無法獲取然後一直卡住的情況。