1 linux的常用軟件安裝
創(chuàng)新互聯(lián)是一家專業(yè)提供廣南企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、成都做網(wǎng)站、HTML5建站、小程序制作等業(yè)務(wù)。10年已為廣南眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。
配置阿里云的yum源
1) 安裝wget
2)下載yum源的配置文件
3) 替換原有的yum源
4) 更新現(xiàn)有yum
5) 安裝常用軟件
2 linux的JDK安裝
此處我們選用 jdk1.8_144這個版本作為我們的基礎(chǔ)JDK,此處要切記一點的是1.8的不同版本JDK在配置上會有很大的出入,所以請不要隨便更換基礎(chǔ)的JDK版本,否則你會很尷尬!
使用 rz 上傳jdk到root的家目錄
使用rpm命令安裝jdk
配置jdk的環(huán)境變量
刷新環(huán)境變量
到此 JDK安裝完成
3 安裝MySQL前說明
本例安裝MySQL版本是 5.7
4 linux 在線安裝MySQL
用root用戶安裝
1)獲取mysql 源安裝包
wget
2)安裝mysql 源
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
3)檢查mysql源是否安裝成功
yum repolist enabled | grep "mysql. -community. "
3)用 yum 命令安裝mysql
yum install mysql-community-server
4)修改mysql的配置文件
查看MYSQL配置文件加載順序:
修改/etc/my點吸煙 f 配置文件內(nèi)的文件目錄
datadir=/data/mysql/data
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
log-error=/data/mysql/log/mysqld.log
其中:
SQL_MODE:通過對其正確的設(shè)置可以完成一些約束檢查的工作,設(shè)置時,在配置文件my點吸煙 f 中配置進行全局的設(shè)置。
STRICT_TRANS_TALES(嚴格模式):
只對支持事務(wù)的表啟用嚴格模式。
NO_AUTO_CREATE_USER:
禁止GRANT創(chuàng)建密碼為空的用戶。
NO_ENGINE_SUBSTITUTION:
啟用后,若需要的存儲引擎被禁用或未編譯,則拋出錯誤;未啟用時將用默認的存儲引擎代替,并拋出一個異常。
5)創(chuàng)建mysql 文件目錄
6)生成首次登錄隨機密碼
通過上面命令會在 /data/mysql/log/mysqld.log 中生成隨機碼,隨機碼用來首次登錄mysql。
7)修改mysql 文件目錄所有者為 mysql 用戶
8)啟動mysql
9) 關(guān)閉并重啟mysql(可選)
如果再次啟動報錯,就重啟Linux 系統(tǒng)。
10)用生成的隨機密碼登錄mysql
登錄后進入mysql 命令行
11)修改ROOT用戶密碼
設(shè)置完密碼后,需要用新密碼重新登錄
12)卸載mysql(不是必須的)
如果啟動報錯,根據(jù)錯誤查看原因,如果實在解決不了,卸載mysql 重新裝。
查看已經(jīng)安裝過的組件
rpm -qa | grep -i mysql
用yum -y remove 卸載所有mysqlyum -y remove mysql57-community-release-el7-11.noarch yum -y remove mysql-community-common-5.7.19-1.el7.x86_64
卸載后再用 rpm -qa | grep -i mysql 查看,直至全部卸載
刪除/data/mysql 目錄
5 linux 離線安裝MySQL
1) 卸載CentOS7系統(tǒng)自帶mariadb
2) 檢查mysql是否存在
3) 檢查mysql的用戶和組是否存在如果不存在就創(chuàng)建
4) 下載MySQL的離線安裝包
官網(wǎng)下載地址:
版本選擇,可以選擇一下兩種方式:
1)使用Red Hat Enterprise Linux
Select Version: 5.7.* (因為更新的緣故具體細節(jié)版本可自行查看)
Select Operating System: Red Hat Enterprise Linux / Oracle Linux
Select OS Version: Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)
列表中下載:
Compressed TAR Archive:(mysql-5.7.25-el7-x86_64.tar.gz) 【本文中使用的是這個版本】
2)使用Linux - Generic
Select Version: 5.7.* (因為更新的緣故具體細節(jié)版本可自行查看)
Select Operating System: Linux - Generic
Select OS Version: Linux - Generic (glibc 2.12) (x86, 64-bit)
列表中下載:
Compressed TAR Archive:(mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz)
注意:上邊兩種方式找mysql離線安裝包的方式都可以。
選完跳到以下這個頁面點擊 下面的連接就可以開始下載了
5) 上傳MySQL的離線安裝包并解壓進行傳統(tǒng)配置
6) 創(chuàng)建配置文件
7) 開始安裝MySQL
設(shè)置權(quán)限
8) 啟動MySQL
9) 設(shè)置開機啟動
10) 修改配置文件
11) 獲取初始密碼
獲取初始密碼
創(chuàng)建軟連接
登錄mysql
修改密碼
檢驗密碼是否成功
設(shè)置遠程訪問
海汼部落原創(chuàng)文章,原文鏈接:()
MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),屬于Oracle旗下產(chǎn)品,是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一。
端口是3306。
表很多時,使用linux腳本,需要根據(jù)需要修改一下:
和創(chuàng)建一樣,可以加上 if exists
可兩篇文章:
如:
用于在已有的表中添加、刪除或修改列。
添加 ADD
或
默認是添加到最后,但可以指定位置。 FIRST :添加最前
AFTER 字段名 :添加指定字段之后
例子:
刪除 DROP
修改 MODIFY 主要修改原列的類型或約束條件 同樣可以用 FIRST 和 AFTER 字段名 ,代表的是修改到哪里。
修改字段名 CHANGE
可以把表2的數(shù)據(jù)復(fù)制到表1中,但 不能復(fù)制約束性條件 。
單行
多行,注意 只有一個VALUES :
不寫 (行1, 行2...) 這一部分的話,默認一一對應(yīng)
除了以上方法外,還可以用SET為每一行附上相應(yīng)的值。
假如沒有篩選的話,就給全部都修改了??梢杂? WHERE 篩選。
假如 沒有篩選的話,就給全部刪除了 。相當(dāng)于清空。
清空
先把表刪除,然后再建一個。與 DELETE FROM 相比, TRUNCATE 的效率更快,因為 DELETE FROM 是把記錄逐條刪除的。
查詢執(zhí)行的順序
FROM -- WHERE -- SELECT -- GROUP BY -- HAVING -- ORDER BY -- LIMIT
注意
當(dāng)數(shù)據(jù)很大,上百萬的時候,使用LIMIT ... OFFSET ..的方式進行分頁十分浪費資源且耗時長。最好是結(jié)合WHERE使用,如:
REGEXP 使用正則表達進行匹配。 查詢時,需要搭配WHERE或HAVING使用 。
兩個表之間有交集且要用到兩個表的數(shù)據(jù)時,可以使用內(nèi)連接查詢。
LEFT JOIN 關(guān)鍵字從左表(table1)返回所有的行,即使右表(table2)中沒有匹配。如果右表中沒有匹配,則結(jié)果為 NULL。
用法:
RIGHT JOIN 關(guān)鍵字從右表(table2)返回所有的行,即使左表(table1)中沒有匹配。如果左表中沒有匹配,則結(jié)果為 NULL。 把LEFT JOIN的表1、表2調(diào)換順序,就是REGHT JOIN 。
FULL OUTER JOIN 關(guān)鍵字只要左表(table1)和右表(table2)其中一個表中存在匹配,則返回行. 相當(dāng)于結(jié)合了 LEFT JOIN 和 RIGHT JOIN 的結(jié)果。
但 MySQL中不支持 FULL OUTER JOIN 。
即SELECT嵌套。
IN 一個查詢結(jié)果作為另一個查詢的條件。 如:
EXISTS 用于判斷查詢子句是否有記錄,如果有一條或多條記錄存在返回 True,否則返回 False。True時執(zhí)行。 如:
索引的本質(zhì)是一種排好序的數(shù)據(jù)結(jié)構(gòu)。利用索引可以提高查詢速度。
常見的索引有:
MySQL通過外鍵約束來保證表與表之間的數(shù)據(jù)的完整性和準確性。 外鍵的使用條件:
外鍵的好處:可以使得兩張表關(guān)聯(lián),保證數(shù)據(jù)的一致性和實現(xiàn)一些級聯(lián)操作。
對已有的兩個表增加外鍵 比如:主表為A,子表為B,外鍵為aid,外鍵約束名字為a_fk_b
為子表添加一個字段,當(dāng)做外鍵
為子表添加外鍵約束條件
假如刪除記錄報錯: [Err] 1451 -Cannot deleteorupdatea parent row: aforeignkeyconstraintfails (...)
這是因為MySQL中設(shè)置了foreign key關(guān)聯(lián),造成無法更新或刪除數(shù)據(jù)。可以通過設(shè)置 FOREIGN_KEY_CHECKS 變量來避免這種情況。 第一步:禁用外鍵約束,我們可以使用: SETFOREIGN_KEY_CHECKS=0; 第二步:刪除數(shù)據(jù) 第三步:啟動外鍵約束,我們可以使用: SETFOREIGN_KEY_CHECKS=1; 查看當(dāng)前FOREIGN_KEY_CHECKS的值,可用如下命令: SELECT @@FOREIGN_KEY_CHECKS;
使用 UNION 來組合兩個查詢,如果第一個查詢返回 M 行,第二個查詢返回 N 行,那么組合查詢的結(jié)果一般為 M+N 行。
每個查詢必須包含相同的列、表達式和聚集函數(shù)。
默認會去除相同行,如果需要 保留 相同行,使用 UNION ALL 。
只能包含一個 ORDER BY 子句,并且必須位于語句的最后 。
內(nèi)置函數(shù)很多, 見: MySQL 函數(shù)
我們一般使用 START TRANSACTION 或 BEGIN 開啟事務(wù), COMMIT 提交事務(wù)中的命令, SAVEPOINT : 相當(dāng)于設(shè)置一個還原點, ROLLBACK TO : 回滾到某個還原點下
一般的使用格式如下:
開啟事務(wù)時, 默認加鎖
根據(jù)類型可分為共享鎖(SHARED LOCK)和排他鎖(EXCLUSIVE LOCK)或者叫讀鎖(READ LOCK)和寫鎖(WRITE LOCK)。
根據(jù)粒度劃分又分表鎖和行鎖。表鎖由數(shù)據(jù)庫服務(wù)器實現(xiàn),行鎖由存儲引擎實現(xiàn)。
除此之外,我們可以顯示加鎖
加鎖時, 如果沒有索引,會鎖表,如果加了索引,就會鎖行
InnoDB默認支持行鎖,獲取鎖是分步的,并不是一次性獲取所有的鎖,因此在鎖競爭的時候就會出現(xiàn)死鎖的情況
解決方法:
即ACID特性:
由于并發(fā)事務(wù)會引發(fā)上面這些問題, 我們可以設(shè)置事務(wù)的隔離級別解決上面的問題.
MySQL的默認隔離級別(可重復(fù)讀)
查看當(dāng)前會話隔離級別
方式1
方式2
設(shè)置隔離級別
主從集群的示意圖如下:
主要涉及三個線程: binlog 線程、 I/O 線程和 SQL 線程。
同步流程:
由于MySQL主從集群只會從主節(jié)點同步到從節(jié)點, 不會反過來同步, 所以需要讀寫分離
讀寫分離需要在業(yè)務(wù)層面實現(xiàn) , 寫數(shù)據(jù)只能在主節(jié)點上完成, 而讀數(shù)據(jù)可以在主節(jié)點或從節(jié)點上完成
索引是幫助MySQL高效獲取數(shù)據(jù)的排好序的數(shù)據(jù)結(jié)構(gòu)
MySQL的索引有
推薦兩個在線工具:
簡單來說, B樹是在紅黑樹(一個平衡二叉樹)的基礎(chǔ)上將一個節(jié)點存放多個值, 實現(xiàn)的, 降低了樹的高度, 每個節(jié)點都存放索引及對應(yīng)數(shù)據(jù)指針, 同一層的節(jié)點是遞增的
而B+樹在B樹的基礎(chǔ)上進行優(yōu)化, 非葉子節(jié)點存放 子節(jié)點的開始的索引, 葉子節(jié)點存放索引和數(shù)據(jù)的指針, 且葉子節(jié)點之間有雙向的指針
如下示意圖:
不同的引擎, 主鍵索引存放的數(shù)據(jù)也不一樣, 比如常見的 MyISAM 和 InnoDB
MyISAM 的B+樹葉子節(jié)點存放表數(shù)據(jù)的指針, InnoDB 的B+樹葉子節(jié)點存放處主鍵外的數(shù)據(jù)
其他的:
即多個列組成一個索引, 語法:
由于聯(lián)合索引的B+樹的結(jié)構(gòu), 根據(jù)列建立, 所以我們的查找條件也要根據(jù)索引列的順序( where column1=x, column2=y,columnN... ), 否則會全表掃描
如果你對列進行了 (+,-,*,/,!) , 那么都將不會走索引。
OR 引起的索引失效
OR 導(dǎo)致索引是在特定情況下的,并不是所有的 OR 都是使索引失效,如果OR連接的是 同 一個字段,那么索引 不會失效 , 反之索引失效 。
這個我相信大家都明白,模糊搜索如果你前綴也進行模糊搜索,那么不會走索引。
這兩種用法,也將使索引失效。另 IN 會走索引,但是當(dāng)IN的取值范圍較大時會導(dǎo)致索引失效,走全表掃描, 見: MySQL中使用IN會不會走索引
不走索引。
走索引。
所以設(shè)計表的時候, 建議不可為空, 而是將默認值設(shè)置為 "" ( NOT NULL DEFAULT "" )
下載好軟件之后,進行安裝navicat for mysql(安裝過程之間注意一下插件的自定義選擇)
Navicat for mysql 怎么用?
連接數(shù)據(jù)庫
打開navicat for mysql之后找到,文件----新建連接--
連接參數(shù)填寫
在出現(xiàn)的連接設(shè)置里面,有很多選項都是針對需要連接的數(shù)據(jù)庫的賬號信息
連接名:可以任意填寫,方便以后識別區(qū)分即可
主機名或IP: 填寫服務(wù)器的主機名(必須要能解析的)或者服務(wù)器IP地址,如果是本機可 以填寫localhost 或 127.0.0.1
端口:默認是3306 如果修改了其他端口,需要對應(yīng)
密碼:就是用戶名root密碼或者其他mysql用戶的密碼
設(shè)置好連接數(shù)據(jù)庫的參數(shù)之后,點擊下方的“連接”如圖出現(xiàn)“連接成功”即設(shè)置成功
數(shù)據(jù)庫管理
連接上數(shù)據(jù)庫之后,在左側(cè)會顯示當(dāng)前mysql所有的數(shù)據(jù)庫。點擊對應(yīng)的數(shù)據(jù)庫,能查看當(dāng)前數(shù)據(jù)庫下面的表
添加刪除數(shù)據(jù)庫
如果需要添加刪除數(shù)據(jù)庫的話,很簡單選擇需要操作的數(shù)據(jù)庫,鼠標(biāo)右鍵選擇操作即可
添加刪除表
同樣對于數(shù)據(jù)庫下方的表,如果要新建的話點擊選擇 表---新建
對于新建的表,名和類型都可以手動輸入指定選擇。設(shè)置好之后,點擊保存輸入表名即可完成操作
點擊添加好的表,或數(shù)據(jù)庫的表。雙擊之后右側(cè)會列出當(dāng)前表的詳細列項目和屬性
如何使用命令行
雖然是圖形化管理工具,但是對于很多操作其實還是需要SQL命令會更加方便。進入sql命令行界面,點擊“工具”--“命令列界面”箭頭位置
隨后在右下方空白區(qū)域進入了SQL命令行界面,操作方法和普通進入mysql命令行界面一樣使用命令。如果需要清除當(dāng)前屏幕內(nèi)容,可以點擊“清除”即可
其他功能
對于之前數(shù)據(jù)庫已經(jīng)導(dǎo)出的sql文件,或者寫好的sql命令語句??梢酝ㄟ^選擇需要導(dǎo)入的數(shù)據(jù)庫,或表 右鍵選項“運行sql文件”
首先,在進入到linux系統(tǒng)下之后,進入到控制臺頁面(ctrl+alt+T)。
進入到控制臺頁面之后,通過sudo -i提升用戶權(quán)限,進入到root權(quán)限下。
然后,在控制臺上輸入sudo apt-get install mysql-server mysql-client(注意空格,可以直接復(fù)制,會側(cè)鍵即可)
之后,進入到在線安裝流程,(Y/N選擇上選擇Y,繼續(xù)安裝)
之后,開始進行下載安裝,進入到下圖所示的頁面。
在安裝的過程中會出現(xiàn)設(shè)置新密碼的頁面,如下圖,默認無密碼的情況下直接會側(cè)確認即可(這樣在安裝成功的sql,是無需要密碼的)
之后,在安裝完成之后(如下圖),輸入“sudo netstat -tap | grep mysql”,出現(xiàn)如下圖剪頭所指的情況,則標(biāo)明安裝成功,否則則表示未安裝。
最后,在輸入“mysql -u root -p”,會側(cè)鍵,即可進入到sql頁面,然后輸入use mysql;(之后即可通過數(shù)據(jù)sql語句即可進行查詢等操作)。