JN專案-將伺服器上的mysql資料庫轉移到本地

ZHOU_VIP發表於2017-10-18

背景介紹:因為連的是遠端的資料庫,我本地沒有安裝資料庫,但是要改動資料庫裡面的配置檔案,所以先要在本地資料庫測試好

1.安裝mysql資料庫,和遠端保持一致版本是5.7.17


2.接著就是next一步步安裝,我發現和5.5安裝介面不一樣,無妨,一路next就可以了,其中要設定好使用者名稱和密碼

我設定的是使用者名稱和密碼是:root  mysql

3.一般情況下安裝好mysql服務就已經啟動了,平時不用的時候可以關掉,因為比較佔記憶體


4.測試連結,OK


5.從遠端資料庫拷貝一份資料庫下來


6.連線好本地資料庫,在裡面新建資料庫


7.右鍵點選執行SQL檔案匯入.sql檔案


8.原以為很簡單,就這樣匯入就好了,結果卻出現很多問題

問題1:.sql檔案裡面含有檢視,而且順序是亂的,直接執行是不行的,於是我把表和檢視分開成兩個.sql檔案,

準備先執行好建表語句和insert into語句,再執行檢視語句


問題2:授權

網上說要授權,所有要先授權

SELECT * FROM mysql.user WHERE USER='root'

GRANT ALL ON 資料庫名稱.* TO '使用者名稱'@'localhost' IDENTIFIED BY '密碼';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysql';

FLUSH PRIVILEGES;

主要是這句話:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysql';

問題3:匯入的時候,insert into資料量大會報錯,百度下

錯誤程式碼: 1153 - Got a packet bigger than 'max_allowed_packet' bytes 終止了資料匯入。

當MySQL客戶端或mysqld伺服器收到大於max_allowed_packet位元組的資訊包時,將發出“資訊包過大”錯誤,並關閉連線。對於某些

客戶端,如果通訊資訊包過大,在執行查詢期間,可能會遇到“丟失與MySQL伺服器的連線”錯誤。

客戶端和伺服器均有自己的max_allowed_packet變數,因此,如你打算處理大的資訊包,必須增加客戶端和伺服器上的該變數。

檢視當前此引數的值:show variables like '%max_allowed_packet%';只有4M,明顯小了。


網上說可以臨時加大該值,執行一下命令可以將max_allowed_packet的值設定大一點:

set global max_allowed_packet = 2*1024*1024*10

博主說:注意,使用這種方法,重啟伺服器之後又恢復預設值了。這裡博主只是導資料的時候臨時將其值設定大一點,導完之後盡

量讓其恢復原值,因為max_allowed_packet設定過大可能會導致伺服器太忙來不及接收,網路差的時候也可能會出現丟包的現

象。

也可以在配置檔案中增大該值,在配置檔案my.ini中修改,可是找不到my.ini檔案啊?


原來是找錯地方了,網上是在ProgramData中找到的 http://www.cnblogs.com/grasshopper/p/7098987.html


所以搜尋該資料夾,找到啦,頓時覺得有希望了




9.設定max_allowed_packet


我改成了40M,重新啟動mysql服務


mysql命令列檢視,OK,增大了10倍


10.接著按部就班先匯入建表語句和insert into語句,再執行檢視語句(注意在調整檢視的先後順序),完成


經過一下午的嘗試,完成了將伺服器上的mysql資料庫轉移到本地,這就是工作的成就感,不親自實踐怎能體會到其中的樂趣呢?



相關文章