匯出表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次序排...