根據經驗,學習一門DB,要分以下進行掌握,總結如下,供參考:
學習一門DB:
用途,安裝,啟動與關閉,日志,用戶與權限(安全),字符集,備份與恢復,事務控制,常用工具,schema(sql,表,視圖,索引,存儲過程與觸發器等),內部結構分析(鎖等),優化(負載均衡),多節點集群,數據庫復制。
MySQL 本人學習了一個初步,記錄如下:
基本信息查看
登錄: MySQL -uroot -pxxx -h192.168.0.1
語法幫助:> help show variables;
查數據庫:show databases;
查告警:show warnings;
查看數據庫及表,行數:mysqlshow -uroot --count; MySQLshow --count
切換數據庫:use xxx;
查數據庫中的表:show tables;
查看數據庫中的參數:show variables ; show variables like '%lo%';
查看數據庫中權限的方法:user--db--tables_priv--columns_priv (user,db,host)
創建用戶方法:授權給一個新用戶就創建了此用戶:grant select on ssl1.* to ssl2@localhost;
修改用戶權限:grant update,insert,delete on ssl1.* to ssl2@localhost; 通過增加或減少完成。
回收用戶權限:revoke delete on ssl1.* from ssl2@localhost;
查看用戶權限:show grants for ssl2@localhost;
創建用戶及授權、修改權限,回收權限也可以通過直接操作user,db,tables_priv,column_priv 來完成。
權限中super,process,file一定不要授給普通用戶。
備份及恢復的方法:
邏輯備份與恢復:mysqldump --help; MySQL -uroot -pxxx <backup.txt ; 也可以基於時間點和位置。
導出數據庫中的表結構,不包括數據:MySQLdump -d -uroot -pxx -hxxx -p3306 db_name >db_name_ddl.txt
導出數據庫中的表數據,不包括結構:MySQLdump -t -n -uroot -pxx -hxxx -p3306 db_name>db_name_data.txt
導出表結構及數據:MySQLdump -uroot -pxxx -hxxx -p3306 db_name>db_name_all.txt
導出一個表分兩個文件完成:MySQLdump -uroot -p db_name T1 -T ./bak
物理備份與恢復:冷備份和熱備份
冷備份:停止數據庫進行備份;直接copy過來數據文件及日志就可以進行啟動。
熱備份:對於不同存儲引擎不同(MyISAM,InnoDB)
MyISAM: MySQLhotcopy db_name [path] 也可以手工鎖表copy( flush tables for read);
InnoDB: ibbackup工具。
表的導出與導入:
導出的方法第一種: select …into outfile ….; select * from students into outfile './emp2.txt' fIElds terminated by "," enclosed by '"';
導出的方法第二種:MySQLdump
導入的方法第一種:load data infile; load data infile './emp2.txt' into table test.tt fIElds terminated by "," enclosed by '"';
導入的方法第二種:MySQLimport .
MySQL 日志管理
MySQL 日志分為四類:錯誤日志,二進制日志,查詢日志,慢查詢日志。
錯誤日志:MySQLd --log-error[=file_name]. hostname.err 用more 可以查看。
二進制日志:是DDL,DML(除了select)的所有操作,以事件形式保存。>MySQLbinlog log-file;
查詢日志:記錄了客戶端的所有語句。用more 可以查看。
慢查詢日志:hostname-slow.log 可以用more 查看。 MySQLdumpslow 工具可以查看慢日志。
日志的刪除管理:
方法一:reset master; 以前的日志全部刪除,重新編號開始。
方法二:purge master logs to 'localhost-bin.000006'; 則000006以前的刪除全部刪除;
方法三:purge master logs before 'yyyy-mm-dd hh24:mi:ss' ,則此時間點以前的日志全部刪除。
方法四:配置參數:--expire_logs_days=xx; 以天為單位自動刪除。
SQL介紹:
DDL: create,drop,alter
DML: insert,update,delete ,select
DCL: grant,revoke
幫助系統
MySQL>? contents
數據類型:?data types 主要包括:數值型,字符串型,日期和時間類型。
數據操作:? Functions
MySQL 圖形化工具:
Mysql Administrator ;MySQL Query Brower; PHPMyAdmin
MySQL 是未來一個不錯的趨勢,會有好的發展,建議想在互聯網上作技術生計的人學習。