最近,有很多學員留言讓我整理一下“零基礎如何mysql學習?”.今天武漢電腦培訓就整理一下學習MySQL你需要掌握的知識點以及送給新手學習的建議,希望對大家能夠有所幫助!給新手的學習建議:1.在學習新的東西的時候,我們至少從三個問題開始。
創(chuàng)新互聯公司始終堅持【策劃先行,效果至上】的經營理念,通過多達十多年累計超上千家客戶的網站建設總結了一套系統(tǒng)有效的全網整合營銷推廣解決方案,現已廣泛運用于各行各業(yè)的客戶,其中包括:成都假山制作等企業(yè),備受客戶夸獎。
What?why?how?2.學習需要堅持,如果還沒準備好堅持半年比較枯燥的MySQL之旅,那么就別開始。
3.學習東西不在多,在精,市面上有非常多的MySQL教程,不要瞎學,今天這里學一點,明天那里學一點,這樣你學的都只是知識點,無法形成一個知識面,知識網絡。
4.在學習過程中充滿好奇,使用google進行問題搜索,千萬不要使用度娘了,質量不高。
至于怎么用Google,請自行搜索。
5.學習的目的在于使用,因此,不要僅僅看書,看一遍,看兩遍,你可能還是沒什么感覺。
因此學習一開始,就要動手練習,把資料上的情況,模擬一下。
6.請不要在windows上安裝mysql進行學習,因為工作中都是linux系統(tǒng)。
我們需要從一開始就是實戰(zhàn),就是生產環(huán)境。
7.保持好心態(tài),一步一個腳印的前進。
學習MySQL你需要掌握的知識點:1.系統(tǒng),當然windos基本的要會。
然后就是Linux系統(tǒng),現在做MySQLDBA的系統(tǒng)多數都是Linux系統(tǒng),而生產環(huán)境大多又是RedHat,Centos。
其他的Linux和Unix系統(tǒng)可以只做了解。
2.Linux基礎,網絡,IO,內存,磁盤,CPU。
包括不限于安裝,啟動過程,目錄結構,遠程登錄,文件屬性與管理,用戶與用戶權限,LAMP結構vim,yum等shell命令,dns,ftp,以及一些常用工具。
3.MySQL基礎:MySQL安裝、MySQL體系結構,SQL,MySQL管理維護。
4.數據備份與恢復,常用的引擎:MyISAM、Innodb、NDB等。
5.數據庫設計優(yōu)化,一個好的MySQL系統(tǒng),往往從設計開始。
6.SQL優(yōu)化,參數優(yōu)化,監(jiān)控,安全等。
7.MySQL負載均衡,讀寫分離,MHA,MMM高可用架構,以及分布式架構:mycat、maxscale、galeracluster、MySQLGroupReplication等。
8.mysql5.6,mysql5.7新特性,mariadb、percona分支的差異和特點。
9.MySQLJSON、MySQLmemcached。
10.常見MySQL搭配的緩存系統(tǒng),redis,memcached,以及NOSQL、NEWSQL。
以上,就是小編為大家整理的mysql學習你需要掌握的知識點以及送給新手學習的建議,希望能夠幫助到大家!
對于非計算機出身的我,大學只會hello word和跑馬燈,期間過程確實非常曲折,分享下我的自學過程:
1、 自己在windows和linux上安裝了mysql,自學linux的基礎知識,學習mysql的最基礎的知識,即怎么寫sql,存儲過程,表的設計等,從0到熟悉大概花了3個月 ,推薦《mysql入門很簡單》。
2、系統(tǒng)地較為深入地學習mysql的sql優(yōu)化,備份和恢復,參數優(yōu)化,架構優(yōu)化,硬件層面的優(yōu)化,高可用方案,復制技術等等,這段時間你不一定能實際接觸到這些,就像我當初那樣,肯定沒什么公司招一個小白。 我選擇自己看書,推薦《高性能mysql》,里面所有的章節(jié)都需要看一遍,以現在的水平肯定看不懂,但需要知道大概怎么回事,為后續(xù)的找mysql初級dba的工作打一個鋪墊,這個過程大概也需要3個月。
3、 紙上得來終覺淺,完成以上兩步,我開始準備找一份mysql相關的工作,而不是天天用著excel表格做著select * from table_sb這樣的工作。 當然我這么猥瑣的人肯定不會裸辭,該畫的電路板也一樣畫,業(yè)余時間開始投初級mysql dba的工作,并且不間斷地學習,網上各種找mysql面試的相關題目(實際上我當時完全沒有任何實戰(zhàn)經驗),陸續(xù)收到一些面試,憑借之前自學的mysql知識,開始胡亂吹牛逼,先混進去再說。 你不做mysql實際相關的工作,永遠也不知道自己之前認知的db知識有多幼稚。 友情提示一點,一般公司都沒有專職dba的,所以面試的時候一定要自信,其實你學了這么多,雖然毫無實戰(zhàn)經驗,理論知識很大概率比面試你的人牛逼,所以各種吹,我就這樣真正進入初級dba的圈子(由于這時對linux還處于cd ls的水平,所以之前也根本沒做過運維),這個邊工作邊找工作的過程又持續(xù)了2個月。
4、真正進入互聯網,接觸生產環(huán)境后,這是我進步最大的時候。 第一步需要將之前所學真正地應用起來,并且應用的過程中,再回頭看之前的書籍,這時候需要真正去理解,而不是似是而非,一知半解。 這時再推薦《高性能mysql 第三版》,全本再看一遍,這時需要全部看懂,另外還有《mysql技術內幕:innodb存儲引擎》等等。 總之這段時間就需要開始關注mysql一些細節(jié)了,比如db故障處理,高可用,負載均衡等等的具體實現了。 另外,linux的知識同步也要深入去學習,至少會寫shell腳本,常見的linux知識等,我在這花了1年多;
5、 dba的工作一般是非常輕閑的,畢竟不是大公司,技術能力有限,該學的也學得差不多了,接觸不到海量數據,高并發(fā)等比較鍛煉人的場合,于是我又準備跳了。 于是來了公有云,現在每天運維萬多個db實例,平均每天處理5+個緊急db故障,幾乎mysql會遇到的問題,感覺都遇到了,能感覺到技術實力和經驗也在每天都在積累,在進步。 但是感覺還是欠缺了很多,下一步就看你選擇了,是再去研究源代碼,底層原理的東西多點,還是數據庫運維和應用多一點,就比如業(yè)界姜承堯,何登成與葉金榮的區(qū)別。 由于我的歷史原因,對c++等幾乎不懂,平時也用不到,所以看代碼等事實際太累,于是我再去學mongodb,接了公司mongodb運維的活,算是在廣度上的一個擴展,萬一哪天mysql不行了呢
6、 總之,對于db小白來說,最重要的一點就是,學習的過程不能斷。 PS 上面的方法比較野路子,適合沒什么基礎的童鞋,如果本來就是DBA,比如從oracle轉到mysql,那么建議直接看mysql官方文檔,而官方文檔是db達到一定水平后必看,出問題時必查的權威文檔。
有很多朋友雖然安裝好了mysql但卻不知如何使用它 在這篇文章中我們就從連接MYSQL 修改密碼 增加用戶等方面來學習一些MYSQL的常用命令 一 連接MYSQL 格式 mysql h主機地址 u用戶名-p用戶密碼 例 連接到本機上的MYSQL 首先在打開DOS窗口 然后進入目錄 mysqlbin 再鍵入命令mysql uroot p 回車后提示你輸密碼 如果剛安裝好MYSQL 超級用戶root是沒有密碼的 故直接回車即可進入到MYSQL中了 MYSQL的提示符是 mysql 例 連接到遠程主機上的MYSQL 假設遠程主機的IP為 用戶名為root 密碼為abcd 則鍵入以下命令 mysql h uroot pabcd 退出MYSQL命令 exit (回車) 二 修改密碼 格式 mysqladmin u用戶名 p舊密碼 password 新密碼 例 給root加個密碼ab 首先在DOS下進入目錄mysqlbin 然后鍵入以下命令mysqladmin uroot password ab 注 因為開始時root沒有密碼 所以 p舊密碼一項就可以省略了 例 再將root的密碼改為djg mysqladmin uroot pab password djg 三 增加新用戶 (注意 和上面不同 下面的因為是MYSQL環(huán)境中的命令 所以后面都帶一個分號作為命令結束符)格式 grant select on 數據庫 * to 用戶名@登錄主機 identified by 密碼 例 增加一個用戶test 密碼為abc 讓他可以在任何主機上登錄 并對所有數據庫有查詢 插入 修改 刪除的權限 首先用以root用戶連入MYSQL 然后鍵入以下命令 grant select insert update delete on * * to test @ % Identified by abc ;但例 增加的用戶是十分危險的 你想如某個人知道test 的密碼 那么他就可以在internet上的任何一臺計算機上登錄你的mysql數據庫并對你的資料可以為所欲為了 解決辦法見例 例 增加一個用戶test 密碼為abc 讓他只可以在localhost上登錄 并可以對數據庫mydb進行查詢 插入 修改 刪除的操作(localhost指本地主機 即MYSQL數據庫所在的那臺主機) 這樣用戶即使用知道test 的密碼 他也無法從internet上直接訪問數據庫 只能通過MYSQL主機上的web頁來訪問了 grant select insert update delete on mydb * to test @localhost identified by abc ;如果你不想test 有密碼 可以再打一個命令將密碼消掉 grant select insert update delete on mydb * to test @localhost identified by ;注意 你必須首先登錄到MYSQL中 以下操作都是在MYSQL的提示符下進行的 而且每個命令以分號結束 四一 操作技巧 如果你打命令時 回車后發(fā)現忘記加分號 你無須重打一遍命令 只要打個分號回車就可以了 也就是說你可以把一個完整的命令分成幾行來打 完后用分號作結束標志就OK 你可以使用光標上下鍵調出以前的命令 但以前我用過的一個MYSQL舊版本不支持 我現在用的是 mysql beta win 五 顯示命令 顯示數據庫列表 show databases;剛開始時才兩個數據庫 mysql和test mysql庫很重要它里面有MYSQL的系統(tǒng)信息 我們改密碼和新增用戶 實際上就是用這個庫進行操作 顯示庫中的資料表 use mysql //打開庫 學過FOXBASE的一定不會陌生吧show tables; 顯示資料表的結構 describe 表名; 建庫 create database 庫名; 建表 use 庫名 create table 表名 (字段設定列表) 刪庫和刪表:drop database 庫名;drop table 表名 將表中記錄清空 delete from 表名; 顯示表中的記錄 select * from 表名; 六 一個建庫和建表以及插入數據的實例 drop database if exists school; //如果存在SCHOOL則刪除create database school; //建立庫SCHOOLuse school; //打開庫SCHOOLcreate table teacher //建立表TEACHER(id int( ) auto_increment not null primary key name char( ) not null address varchar( ) default 深圳 year date); //建表結束//以下為插入字段insert into teacher valuess( glchengang 深圳一中 );insert into teacher valuess( jack 深圳一中 );注 在建表中( )將ID設為長度為 的數字字段:int( )并讓它每個記錄自動加一:auto_increment并不能為空:not null而且讓他成為主字段primary key( )將NAME設為長度為 的字符字段( )將ADDRESS設為長度 的字符字段 而且缺省值為深圳 varchar和char有什么區(qū)別呢 只有等以后的文章再說了 ( )將YEAR設為日期字段 如果你在mysql提示符鍵入上面的命令也可以 但不方便調試 你可以將以上命令原樣寫入一個文本文件中假設為school sql 然后復制到c:下 并在DOS狀態(tài)進入目錄mysqlbin 然后鍵入以下命令 mysql uroot p密碼 c:school sql如果成功 空出一行無任何顯示 如有錯誤 會有提示 (以上命令已經調試 你只要將//的注釋去掉即可使用) 七 將文本資料轉到數據庫中 文本資料應符合的格式 字段資料之間用tab鍵隔開 null值用n來代替 例 rose 深圳二中 mike 深圳一中 數據傳入命令 load data local infile 文件名 into table 表名;注意 你最好將文件復制到mysqlbin目錄下 并且要先用use命令打表所在的庫 八 備份數據庫 (命令在DOS的mysqlbin目錄下執(zhí)行)mysqldump opt schoolschool bbb注釋:將數據庫school備份到school bbb文件 school bbb是一個文本文件 文件名任取 打開看看你會有新發(fā)現 后記 其實MYSQL的對數據庫的操作與其它的SQL類數據庫大同小異 您最好找本將SQL的書看看 我在這里只介紹一些基本的 其實我也就只懂這些了 呵呵 最好的MYSQL教程還是 晏子 譯的 MYSQL中文參考手冊 不僅免費每個相關網站都有下載 而且它是最權威的 可惜不是象 PHP 中文手冊 那樣是chm的格式 在查找函數命令的時候不太方便 lishixinzhi/Article/program/MySQL/201311/29306
看你基礎如何了.
你要是 什么都不知道的. 那么可能需要先掌握 基本的 SQL 語言, 然后再在 MYSQL 里面慢慢實踐。
你要是 僅僅知道基本的 SQL 語言的語法, 那么就可以直接 在 MySQL 里面做一些基本的實踐, 然后慢慢的多看一些 別人的例子。然后了解一些 MySQL 的函數之類的。
你要是 已經對 SQL Server 或者 Oracle 比較熟練了,那么就可以直接 看看 MySQL 與 其他數據庫之間的差異?;旧暇涂梢粤?。不必從零開始了。