1、基礎部分
1.數據庫是簡介 python
以前所學,數據要永久保存,好比用戶註冊的用戶信息,都是保存於文件中,而文件只能存在於某一臺機器上。mysql
若是咱們不考慮從文件中讀取數據的效率問題,而且假設咱們的程序全部的組件都運行在一臺機器上,那麼用文件存取數據,並無問題linux
但須要考慮的問題是:程序的執行效率依賴於承載它的硬件,而一臺機器機器的性能總歸是有限的,受限於目前的硬件水平,垂直擴展是有極限的。因而咱們只能經過水平擴展來加強咱們系統的總體性能,這就須要咱們將程序的各個組件分佈於多臺機器去執行。程序員
須要注意的是,雖然咱們將程序的各個組件分佈到各臺機器,但各組件仍然是一個總體,言外之意,全部組件的數據仍是要共享的。但每臺機器上的組件都只能操做本機的文件,這就致使了數據必然不一致。redis
因而咱們想到了將數據與應用程序分離:把文件存放於一臺機器,而後將多臺機器經過網絡去訪問這臺機器上的文件,即共享這臺機器上的文件,共享則意味着競爭,會發生數據不安全,須要加鎖處理。。。。sql
爲了遠程訪問並處理這臺共享機器上的文件,咱們必須爲咱們的程序額外寫一段代碼,完成以下功能:mongodb
#1.遠程鏈接 #2.打開文件 #3.讀寫(加鎖) #4.關閉文件
咱們寫任何程序都須要有這段代碼,因而咱們提取這段代碼,寫成一個專門的處理軟件,這就是mysql等數據庫管理軟件的由來,但mysql解決的不只僅是數據共享的問題,還有查詢效率,安全性等一系列問題,總之,把程序員從數據管理中解脫出來,專一於本身的程序邏輯的編寫。數據庫
2.數據庫概述
♥什麼是數據?(Data)vim
數據:描述事務的符號記錄,描述事物的符號既能夠是數字,也能夠是文字、圖片,圖像、聲音、語言等,數據由多種表現形式,它們均可以通過數字化後存入計算機windows
在計算機中描述一個事物,就須要抽取這一事物的典型特徵,組成一條記錄,就至關於文件裏的一行內容,如:
1 haiyan female 20 甘肅 計算機系
單純的一條記錄並無任何意義,若是咱們按逗號做爲分隔,依次定義各個字段的意思
id name sex age adderess major #字段 1 haiyan female 20 甘肅 計算機系 #記錄
若是這樣表示的話就瞭解了一我的的信息了,讓人一看就清楚了
♥什麼是數據庫?(DataBase,簡稱DB)
數據庫,顧名思義就是存放數據的倉庫,只不過這個倉庫是在計算機存儲設備上。
數據庫中的數據按必定的數據模型組織、描述和儲存,具備較小的冗餘度、較高的數據獨立性和易擴展性,並可爲各類 用戶共享
♥什麼是數據庫管理系統(DataBase Management System 簡稱DBMS)
在瞭解了Data與DB的概念後,如何科學地組織和存儲數據,如何高效獲取和維護數據成了關鍵
這就用到了一個系統軟件---數據庫管理系統
如MySQL、Oracle、SQLite、Access、MS SQL Server
mysql主要用於大型門戶,例如搜狗、新浪等,它主要的優點就是開放源代碼,由於開放源代碼這個數據庫是免費的,他如今是甲骨文公司的產品。
oracle主要用於銀行、鐵路、飛機場等。該數據庫功能強大,軟件費用高。也是甲骨文公司的產品。
sql server是微軟公司的產品,主要應用於大中型企業,如聯想、方正等。
數據庫說白了就是文件夾
數據庫管理系統就是一個軟件
數據庫服務器:就是對外專門提供數據的一個機器
♥數據庫服務器,數據庫管理系統,表與記錄的關係(重點理解)
表:student,scholl,class_list(即文件)
數據庫:lzsh_info(即文件夾)
數據庫管理系統:如mysql(是一個軟件)
數據庫服務器:一臺計算機(對內存要求比較高)
總結:
數據庫服務器---運行--->數據庫管理軟件
數據庫管理軟件--->管理--->數據庫
數據庫---組織--->表,即文件夾---組織--->文件
表---存放--->多條記錄,即文件---存放--->多行內容
♥數據庫管理技術的發展歷程(瞭解)
1.人工管理階段
2.文件系統階段
3.數據系統階段
3.mysql介紹
MySQL是一個關係型數據庫管理系統,MySQL 最流行的關係型數據庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件之一。
mysql是什麼?
mysql就是一個socekt服務端
客戶端軟件
mysql自帶
python模塊
其餘類型的數據庫?
sqllite,db2,oracle,access,sql server,MySQL
分兩大類:
關係型:上面這一坨,注意:sql語句通用
非關係型:mongodb,redis,memcache
4.下載安裝
Linux版本
#二進制rpm包安裝
yum -y install mysql-server mysql

1 1.解壓tar包 2 cd /software 3 tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz 4 mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21
5
6 2.添加用戶與組 7 groupadd mysql 8 useradd -r -g mysql mysql 9 chown -R mysql:mysql mysql-5.6.21
10
11 3.安裝數據庫 12 su mysql 13 cd mysql-5.6.21/scripts 14 ./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data 15
16 4.配置文件 17 cd /software/mysql-5.6.21/support-files 18 cp my-default.cnf /etc/my.cnf 19 cp mysql.server /etc/init.d/mysql 20 vim /etc/init.d/mysql #若mysql的安裝目錄是/usr/local/mysql,則可省略此步
21 修改文件中的兩個變動值 22 basedir=/software/mysql-5.6.21
23 datadir=/software/mysql-5.6.21/data 24
25 5.配置環境變量 26 vim /etc/profile 27 export MYSQL_HOME="/software/mysql-5.6.21"
28 export PATH="$PATH:$MYSQL_HOME/bin"
29 source /etc/profile 30
31 6.添加自啓動服務 32 chkconfig --add mysql 33 chkconfig mysql on 34
35 7.啓動mysql 36 service mysql start 37
38 8.登陸mysql及改密碼與配置遠程訪問 39 mysqladmin -u root password 'your_password' #修改root用戶密碼
40 mysql -u root -p #登陸mysql,須要輸入密碼
41 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; #容許root用戶遠程訪問
42 mysql>FLUSH PRIVILEGES; #刷新權限

1 1. 解壓 2 tar zxvf mariadb-5.5.31-linux-x86_64.tar.gz 3 mv mariadb-5.5.31-linux-x86_64 /usr/local/mysql //必需這樣,不少腳本或可執行程序都會直接訪問這個目錄 4
5 2. 權限 6 groupadd mysql //增長 mysql 屬組 7 useradd -g mysql mysql //增長 mysql 用戶 並歸於mysql 屬組 8 chown mysql:mysql -Rf /usr/local/mysql // 設置 mysql 目錄的用戶及用戶組歸屬。 9 chmod +x -Rf /usr/local/mysql //賜予可執行權限 10
11 3. 拷貝配置文件 12 cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf //複製默認mysql配置 文件到/etc目錄 13
14 4. 初始化 15 /usr/local/mysql/scripts/mysql_install_db --user=mysql //初始化數據庫 16 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql //複製mysql服務程序 到系統目錄 17 chkconfig mysql on //添加mysql 至系統服務並設置爲開機啓動 18 service mysql start //啓動mysql 19
20 5. 環境變量配置 21 vim /etc/profile //編輯profile,將mysql的可執行路徑加入系統PATH 22 export PATH=/usr/local/mysql/bin:$PATH 23 source /etc/profile //使PATH生效。 24
25 6. 帳號密碼 26 mysqladmin -u root password 'yourpassword' //設定root帳號及密碼 27 mysql -u root -p //使用root用戶登陸mysql 28 use mysql //切換至mysql數據庫。 29 select user,host,password from user; //查看系統權限 30 drop user ''@'localhost'; //刪除不安全的帳戶 31 drop user root@'::1'; 32 drop user root@127.0.0.1; 33 select user,host,password from user; //再次查看系統權限,確保不安全的帳戶均被刪除。 34 flush privileges; //刷新權限 35
36 7. 一些必要的初始配置 37 1)修改字符集爲UTF8 38 vi /etc/my.cnf 39 在[client]下面添加 default-character-set = utf8 40 在[mysqld]下面添加 character_set_server = utf8 41 2)增長錯誤日誌 42 vi /etc/my.cnf 43 在[mysqld]下面添加: 44 log-error = /usr/local/mysql/log/error.log 45 general-log-file = /usr/local/mysql/log/mysql.log 46 3) 設置爲不區分大小寫,linux下默認會區分大小寫。 47 vi /etc/my.cnf 48 在[mysqld]下面添加: 49 lower_case_table_name=1
50
51 修改完重啓:#service mysql restart
Window版本
1.下載路徑:http:
/
/
dev.mysql.com
/
downloads
/
mysql
/
1.首先下載下來安裝包,而後把下載下來的壓縮包解壓到你要存放的路徑
2.而後設置環境變量。例如個人存放在E盤了
設置環境變量:path--E:\mysql-5.7.19-winx64\bin;
3.mysqld --initialize-insecure 初始化 (一初始化就產生了一個data的包)
4.mysqld 啓動mysql
5.tasklist | findstr mysql #查看mysql是否啓動
6.mysql -uroot -p 無密碼登陸
7.mysqladmin -uroot password 123 設置密碼登陸
8.quit 退出
9.windows 系統下幹掉任務 tskill mysqld
到此爲止,MySQL服務端已經安裝成功而且客戶端已經能夠鏈接上,之後再操做MySQL時
注意:.當咱們每次用mysql啓動的時候,閒的麻煩,那麼咱們把它作成一個系統服務
就用mysqld --install
當在搜索裏面輸入services.msc就能夠看到一個MYSQL了
註冊成服務以後,之後再啓動和關閉MySQL服務時,僅需執行以下命令:
# 啓動MySQL服務
net start mysql # 關閉MySQL服務
net stop mysql
忘記密碼了怎麼辦?
破解密碼的兩種方式
破解密碼一
1.乾死mysql(注意:以什麼方式啓動的就要以什麼方式吧它幹掉)
2.在cmd中啓動:mysqld --skip-grant-tables (跳過全部的受權表)
3.在cmd中登陸:mysql
4.輸入兩條命令:
update mysql.user set authentication_string = password('123') where user = 'root' and host = 'localhost'
flush privileges 從新刷新權限
5.tskill mysqld 幹掉任務
6.正常啓動mysql
7.mysql -uroot -p123
破解密碼二
(僅限於剛剛安裝在數據庫的時候,若是對你有用的一堆數據已經存在了,
就不要用這種方法,就得用第一種)
1.在mysql的解壓目錄下新建一個my.ini配置文件
那麼在my.ini配置文件裏寫上
在ini配置文件中註釋有兩種#或者;
[mysql]
skip-grant-tables (開頭的--就不用要了)若是啓動了就先關了,而後從新啓動一下,登陸後,my.ini就生效了
basedir = E:\mysql-5.7.19-winx64
datadir = D:\6_data #若是data指定要保存數據的目錄,必定要記得初始化 mysqld --initialize-insecure
#完了吧原先的那個數據data幹掉。
4. 在windows下,爲mysql服務指定配置文件
#在mysql的解壓目錄下,新建my.ini,而後配置 #1. 在執行mysqld命令時,下列配置會生效,即mysql服務啓動時生效
[mysqld] ;skip-grant-tables port=3306 character_set_server=utf8 #解壓的目錄
basedir=E:\mysql-5.7.19-winx64 #data目錄
datadir=E:\my_data #在mysqld --initialize時,就會將初始數據存入此處指定的目錄,在初始化以後,啓動mysql時,就會去這個目錄裏找數據
#2. 針對客戶端命令的全局配置,當mysql客戶端命令執行時,下列配置生效
[client] port=3306 default-character-set=utf8 user=root password=123456
#3. 只針對mysql這個客戶端的配置,2中的是全局配置,而此處的則是隻針對mysql這個命令的局部配置
[mysql] ;port=3306 ;default-character-set=utf8 user=hiayan password=123456