您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Navicat運行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧∪绾谓鉀Q”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“Navicat運行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧∪绾谓鉀Q”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
我們平時想把數(shù)據(jù)從一個數(shù)據(jù)庫中導(dǎo)入另外一個數(shù)據(jù)庫中的時候
一般都是把所需的數(shù)據(jù)表進行轉(zhuǎn)儲sql文件 然后再運行sql文件 導(dǎo)入新的數(shù)據(jù)庫中
這么做 數(shù)據(jù)少的時候一般不會出現(xiàn)什么錯
但是如果數(shù)據(jù)量比較大 表比較多 就會出現(xiàn)缺少數(shù)據(jù)表 或者缺少數(shù)據(jù)
先從數(shù)據(jù)庫的配置文件下手
找到服務(wù)器上的MYSQL安裝目錄下的my.ini文件 然后去修改 記得重啟
查找max_allowed_packet屬性
max_allowed_packet=50M
或者再改大一點都行
從navicat修改數(shù)據(jù)庫存儲大小 和第一個有點相似 我2個都改了
命令:
//查看當前max_allowed_packet的大小
show global variables like 'max_allowed_packet';
//修改max_allowed_packet的大小
set global max_allowed_packet=1024*1024*50;
改過后查詢以下大小有沒有改變 改變了就成功了
導(dǎo)入的數(shù)據(jù)庫和導(dǎo)出得數(shù)據(jù)庫編碼和結(jié)構(gòu)不同
修改數(shù)據(jù)庫的表字符集同步
更改嚴格模式,執(zhí)行下列sql后再導(dǎo)入sql文件;
SET sql_mode = ''; SET GLOBAL sql_mode = '';
注意:
當用"SET sql_mode=''"時,mysql清除的默認的模式信息,
但是這也有一個問題,那就mysql不會作入侵檢測,錯誤提示,
這就要求程序員在進行sql操作的時候更加小心??梢詫⑸厦鎠ql加入到sql文件中先執(zhí)行
在我們導(dǎo)入數(shù)據(jù)的時候 把 "在每個運行中運行多個查詢" 給對掉 這么會慢一些 但是數(shù)據(jù)不會沖突 不會讓數(shù)據(jù)進行減少
這個方法有點玄學(xué) 可信度有待調(diào)查 可以嘗試嘗試大家
在數(shù)據(jù)庫中選擇運行sql文件 沒有在表中選擇 運行sql文件 會準確度高一些
使用命令行導(dǎo)入導(dǎo)出
1. 導(dǎo)出整個數(shù)據(jù)庫
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 > 導(dǎo)出的文件名
mysqldump -u dbuser -p dbname > dbname.sql
2. 導(dǎo)出一個表
mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 表名> 導(dǎo)出的文件名
mysqldump -u dbuser -p dbname users> dbname_users.sql
3. 導(dǎo)出一個數(shù)據(jù)庫結(jié)構(gòu)
mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql -d 沒有數(shù)據(jù) --add-drop-table 在每個create語句之前增加一個drop table
常用source 命令
進入mysql數(shù)據(jù)庫控制臺,如
mysql -u root -p mysql>use 數(shù)據(jù)庫
然后使用source命令,后面參數(shù)為腳本文件(如這里用到的.sql)
mysql>source d:/dbname.sql
導(dǎo)入數(shù)據(jù)到數(shù)據(jù)庫
mysql -uroot -D數(shù)據(jù)庫名
導(dǎo)入數(shù)據(jù)到數(shù)據(jù)庫中得某個表
mysql -uroot -D數(shù)據(jù)庫名 表名
導(dǎo)出數(shù)據(jù)庫用mysqldump命令(注意mysql的安裝路徑,即此命令的路徑):
1、導(dǎo)出數(shù)據(jù)和表結(jié)構(gòu):
mysqldump -u 用戶名 -p 參數(shù)(可選) 數(shù)據(jù)庫名 >/home/sql/ 數(shù)據(jù)庫名.sql
mysqldump -u root -p --default-character-set=utf8 db_name>/home/sql/fileName.sql
敲回車后會提示輸入密碼
2、只導(dǎo)出表結(jié)構(gòu)
mysqldump -u用戶名 -p密碼 -d 數(shù)據(jù)庫名 > 數(shù)據(jù)庫名.sql
/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql
注:/usr/local/mysql/bin/ —> mysql的data目錄
1、首先建空數(shù)據(jù)庫
mysql>create database abc;
2、導(dǎo)入數(shù)據(jù)庫
方法一:
(1)選擇數(shù)據(jù)庫
mysql>use abc;
(2)設(shè)置數(shù)據(jù)庫編碼
mysql>set names utf8;
(3)導(dǎo)入數(shù)據(jù)(注意sql文件的路徑)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用戶名 -p 參數(shù)(可選) 數(shù)據(jù)庫名 < 數(shù)據(jù)庫名.sql
mysql -uabc_f -p--default-character-set=utf8 abc < abc.sql
沒有用過 看到最新的navicat12帶的功能
數(shù)據(jù)傳輸和數(shù)據(jù)同步 結(jié)構(gòu)同步 打開界面看了一下 更加簡單暴力
如果上面的都沒有解決你的問題
可以嘗試一種簡單暴力的方法 如果要導(dǎo)入的數(shù)據(jù)不多
可以把sql文件直接打開然后到navicat里面直接 查詢->新建查詢 然后輸入sql
看看到底哪個地方報錯了 然后再對應(yīng)去修改
讀到這里,這篇“Navicat運行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧∪绾谓鉀Q”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。