mysql導資料及注意事項

2021-07-08 16:43:02 字數 3229 閱讀 3749

匯出表test

mysql> use db1;

database changed

mysql> select count(*) from test;

+----------+

| count(*) |

+----------+

| 5 |

+----------+

1 row in set (0.01 sec)

使用mysqldump匯出

加--single-transaction引數

[root@miles21 ~]# mysqldump -uroot -pbeijing --socket=/data/mysql.sock --single-transaction db1 test > /home/mysql/table_db1_test.sql

檢視對應的general日誌

151207

11:38:53

8 connect root@localhost on

8 query /*!40100 set @@sql_mode='' */

8 query /*!40103 set time_zone='+00:00' */

8 query set session transaction isolation level repeatable read #設定隔離級別為可重複讀

8 query start transaction /*!40100 with consistent snapshot */ #開啟新事務

8 query show variables like 'gtid\_mode'

8 query unlock tables

...不加--single-transaction引數

[root@miles21 ~]# mysqldump -uroot -pbeijing --socket=/data/mysql.sock db1 test > /home/mysql/table_db1_test.sql

檢視對應的general日誌,可以看到lock tables的鎖表操作。

...9 query show variables like 'ndbinfo\_version'

9 init db db1

9 query show tables like 'test'

9 query lock tables `test` read /*!32311 local */ #鎖表

...而且使用--single-transaction引數對匯出的使用者的許可權要求更低

mysql> grant select on *.* to test@'localhost' identified by 'beijing';

query ok, 0 rows affected (0.01 sec)

加--single-transaction引數,mysqldump正常匯出

[root@miles21 ~]# mysqldump -utest -pbeijing --socket=/data/mysql.sock db1 test > /home/mysql/table_db1_test.sql

不加--single-transaction引數,mysqldump會報錯

[root@miles21 ~]# mysqldump -utest -pbeijing --socket=/data/mysql.sock db1 test > /home/mysql/table_db1_test.sql

mysqldump: got error: 1044: access denied for user 'test'@'localhost' to database 'db1' when doing lock tables

匯出csv檔案

需要file許可權

[root@miles21 mysql]# mysqldump -utest -pbeijing --socket=/data/mysql.sock --single-transaction --fields-terminated-by=, db1 test -t /home/mysql

mysqldump: got error: 1045: access denied for user 'test'@'localhost' (using password: yes) when executing 'select into outfile'

mysql> grant file on *.* to test@'localhost';

query ok, 0 rows affected (0.00 sec)

[root@miles21 mysql]# mysqldump -utest -pbeijing --socket=/data/mysql.sock --single-transaction --fields-terminated-by=, db1 test -t /home/mysql

[root@miles21 mysql]# ll

...-rw-r--r--. 1 root root 1335 dec 7

16:32 test.sql #表定義檔案

-rw-rw-rw-. 1 mysql mysql 24 dec 7

16:32 test.txt #資料檔案

檢視對應的general日誌

...select /*!40001 sql_no_cache */ * into outfile '/home/mysql/test.txt' /*!50138 character set binary */ fields terminated by ',' from `test`

...所以可以直接使用select into outfile

mysql> select * from test into outfile '/home/mysql/test2.txt' fields terminated by ',';

query ok, 5 rows affected (0.00 sec)

也可以根據業務需要使用連表查詢

mysql> select a.id,a.name,b.age from test a,test2 b where a.id=b.id into outfile '/home/mysql/join.txt';

query ok, 3 rows affected (0.00 sec)

關閉MySQL注意事項

關閉mysql有很多方法,但是如何安全 緩和的關閉mysql不是每個人都知道的,下面 聯動北方 來總結一下mysql的幾種關閉方式和注意事項 關閉過程 1 發起shutdown,發出 sigterm訊號 2 有必要的話,新建乙個關閉執行緒 shutdown thread 3 mysql server...

mysql解除安裝注意事項

由於資料庫軟體十分的複雜,不管是mysql還是sqlserver安裝都有很多配置要選擇。假若你第一次安裝資料庫失敗,然後又想解除安裝,又再次安裝,這時可能由於你第一次的解除安裝不完全,會導致你第二次安裝時出現錯誤 比如說安裝進度停在一處,不動了 這是因為安裝路徑上殘留上次安裝的檔案,再一次安裝時會衝...

mysql索引注意事項

在查詢條件中必須有復合索引還中最左側的列 在建立多列索引時,要根據業務需求,where子句中使用最頻繁的一列放在最左邊 假設你在表的state city和zip資料列上建立了復合索引。索引中的資料行按照state city zip次序排列,因此它們也會自動地按照state city和state次序排...