溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Navicat運行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧∪绾谓鉀Q

發(fā)布時間:2023-03-07 16:09:20 來源:億速云 閱讀:302 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細介紹“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文件 然后去修改 記得重啟

    Navicat運行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧∪绾谓鉀Q

    查找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)不同

    Navicat運行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧∪绾谓鉀Q

    修改數(shù)據(jù)庫的表字符集同步

    第四: 

    更改嚴格模式,執(zhí)行下列sql后再導(dǎo)入sql文件;

    SET sql_mode = '';
    SET GLOBAL sql_mode = '';

    Navicat運行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧∪绾谓鉀Q

    注意:

    當用"SET sql_mode=''"時,mysql清除的默認的模式信息,

    但是這也有一個問題,那就mysql不會作入侵檢測,錯誤提示,

    這就要求程序員在進行sql操作的時候更加小心??梢詫⑸厦鎠ql加入到sql文件中先執(zhí)行

    第五: 

    在我們導(dǎo)入數(shù)據(jù)的時候 把 "在每個運行中運行多個查詢" 給對掉  這么會慢一些 但是數(shù)據(jù)不會沖突 不會讓數(shù)據(jù)進行減少

    Navicat運行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧∪绾谓鉀Q

    第六: 

    這個方法有點玄學(xué) 可信度有待調(diào)查 可以嘗試嘗試大家

    在數(shù)據(jù)庫中選擇運行sql文件 沒有在表中選擇 運行sql文件 會準確度高一些

    Navicat運行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧∪绾谓鉀Q

    Navicat運行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧∪绾谓鉀Q

    第七: 

    使用命令行導(dǎo)入導(dǎo)出

    一、window環(huán)境

    A. 導(dǎo)出.sql

    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

    B. 導(dǎo)入.sql

    常用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ù)庫名 表名

    二、linux環(huán)境

    A. 導(dǎo)出.sql

    導(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目錄

    B. 導(dǎo)入.sql

    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帶的功能

    Navicat運行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧∪绾谓鉀Q

    數(shù)據(jù)傳輸和數(shù)據(jù)同步 結(jié)構(gòu)同步 打開界面看了一下 更加簡單暴力

    如果上面的都沒有解決你的問題

    可以嘗試一種簡單暴力的方法 如果要導(dǎo)入的數(shù)據(jù)不多

    可以把sql文件直接打開然后到navicat里面直接 查詢->新建查詢  然后輸入sql

    看看到底哪個地方報錯了 然后再對應(yīng)去修改

    Navicat運行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧∪绾谓鉀Q

    讀到這里,這篇“Navicat運行sql文件導(dǎo)入數(shù)據(jù)不全或?qū)胧∪绾谓鉀Q”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細節(jié)

    免責(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)容。

    AI