在日常工作中,會簡單的使用一下mysql,故對常見命令操作總結一下,常用方式如下
mysqldump 命令的使用:
備份和匯出資料庫
mysqldump -h database_ip -u Username -p --opt databasename > backup-file.sql
只匯出資料庫表結構
mysqldump -h database_ip -d -u Username -p databasename >database_structure.sql
只匯出資料庫中的某個表
mysqldump --opt --add-drop-table -u Username -p databasename tablename > dump.sql
如果不想手工輸入密碼 請使用--password 參數
mysqldump -h database_ip -u Username --password=123456 --opt databasename > backup-file.sql
mysqldump -h database_ip -d -u Username --password=123456 databasename >database_structure.sql
mysql 命令使用:
將查詢結果儲存到檔案
select title from book into outfile '/tmp/outfile.txt';
尋找表中多餘的重複記錄,重複記錄是根據某個欄位(peopleId)來判斷
select * from people where peopleId in (select peopleId from people group by
peopleId having count(peopleId) > 1);
查詢表中不重複記錄(排除重複記錄)
select * from phome_ecms_wma where title in (select distinct title from phome_ecms_wma);
刪除表中重複記錄,重複記錄是根據某個欄位(title)來判斷
select *,count(distinct title) INTO OUTFILE '/tmp/table.bak' from phome_ecms_wma group by title;
delete from phome_ecms_wma;
LOAD DATA INFILE '/tmp/table.bak' REPLACE INTO TABLE phome_ecms_wma character set utf8;
查詢資料庫當前編碼
mysql> show variables like "character_set%";
修改表欄位類型
mysql> alter table table_name change last_action last_action datetime NOT NULL default '0000-00-00 00:00:00';
給表添加一個新欄位
mysql> ALTER TABLE host ADD ks_mac VARCHAR(100);
從表中刪除一個欄位
mysql> ALTER TABLE table_name DROP field_name;
重新命名表
mysql>alter table t1 rename t2;
給欄位加索引
mysql> alter table tablename add index 索引名 (欄位名1[,欄位名2 …]);
mysql> alter table tablename add index emp_name (name);
加主關鍵字的索引
mysql> alter table tablename add primary key(id);
加唯一限制條件的索引
mysql> alter table tablename add unique emp_name2(cardnumber);
刪除某個索引
mysql>alter table tablename drop index emp_name;
遠端存取mysql 設定
mysql> GRANT ALL PRIVILEGES ON database_test.* to root@192.168.1.9 IDENTIFIED BY '123456';
mysql> FLUSH PRIVILEGES;