mysql遠程機器導入導出數據 鎖表不鎖表 部分數據或全部

最近在使用mysql的時候,經常要遇到導出或者導入數據的情況,對于一些簡單的,可以直接使用navicate直接導出結果,但是有很多時候,由于機器在遠程端,并且是線上機器的情況下,在跳轉一次跳轉還鏈接不到mysql的時候,navicate就不能使用這種方法去導出了,搜索了網上的一些文章,大概將mysql導入導出的情況做個總結,如下:

一、導出數據庫

mysqldump?-h?127.0.0.1??-u?name?-p??dbname?>name.sql

將127.0.0.1的數據庫dbname導出到name.sql文件里面

二、導出數據庫的某張表

mysqldump?-h?127.0.0.1??-u?username?-ppassword??dbname?tablename?>name.sql

將ip 127.0.0.1上面的數據庫dbname里面的tablename表導出到name.sql文件里面

三、導出數據庫的某張表的符合某些條件的數據

mysqldump?-h?127.0.0.1??-u?username?-ppassword??dbname?tablename??--where="id>10?limit?10000"?>name.sql

上面一、二的情況均屬于將所有的表或者庫全部導出來,但是有些時候我們只是想要部分的數據,這部分數據符合某些條件,對于上述的結構就是

將數據庫dbname里面的tablename表里面的 id>10 的數據取出來100條,導出到name.sql文件里面

四、導出數據庫的某張表不鎖表

mysqldump?-h?127.0.0.1??-u?username?-ppassword?--single-transaction?dbname??tablename>name.sql

有時候導出的時候并沒有鎖表的權限,例如如果你只是一個只讀權限的話,很可能沒有鎖表的權限,這個時候只要加上一句 ?–single-transaction 就可以不鎖表進行導出

上述對于一、二、三來說都會對數據庫進行鎖表,加上此命令即可達到不鎖表導數據的目的

五、導出數據庫的某張表的表結構,不導出數據

mysqldump?-h?127.0.0.1??-u?username?-ppassword?--single-transaction?-d?dbname??tablename>name.sql

有時候我們并不是要導出數據,只是要導出表結構,比如說你要按照這個表結構完全去復制創建這個表結構,這種情況下可以使用的方法很多,比如可以直接連上數據庫,使用show create table tablename命令,也可以得到建表的語句;此處只是提供另外一種導出表結構的辦法,如果要只導出表結構的話,可以加 -d就可以

六、導出數據庫的某張表的數據,不導出結構

mysqldump?-h?127.0.0.1??-u?username?-ppassword?--single-transaction?-t?dbname??tablename>name.sql

如果要只導出數據,但是不導出表結構的話,使用-t就可以達到目的,本來使用這一句的目的是為了導出數據庫里面的視圖,因為沒有show create view的權限,只能嘗試能否只導出數據,結果發現不太可以,再琢磨琢磨,再次mark一下,方便之后使用

七、數據庫到導入

use?dbname;  set?names?gbk;  source?/d1/name/name.sql;

導入數據的時候只要連上數據庫,使用source就可以,之前可以設置編碼格式為gbk或者utf-8等,這樣不會出現中文的亂碼

八、授權

insert?into?mysql.user(User,Password)?values(“name”,password(“password”));

GRANT?ALL?PRIVILEGES?ON?*.*?TO?“name”@’%’?IDENTIFIED?BY?‘password’;

flush?privileges;

show?grants?for?‘test_group’@’%’;

?以上就是mysql遠程機器導入導出數據 鎖表不鎖表 部分數據或全部的內容,更多相關內容請關注PHP中文網(www.php.cn)!

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享