Linux安裝Mysql8.0及SQL分類的補充
阿新 • • 發佈:2021-11-08
Linux安裝Mysql8.0
參考文章:https://blog.csdn.net/qq_38570633/article/details/109257430
參考文獻:https://blog.csdn.net/mmake1994/article/details/85944438
1、檢視環境
1.1 檢視是否有安裝過mysql
rpm -qa | grep -i mysql
1.2 刪除Mysql
yum -y remove MySQL-*
一般用rpm -e 的命令刪除mysql,這樣表面上刪除了mysql,可是mysql的一些殘餘程式仍然存在,並且通過第一步的方式也查詢不到殘餘,而yum命令比較強大,可以完全刪除mysql.(ps:用rpm刪除後再次安裝的時候會提示已經安裝了,這就是rpm沒刪除乾淨的原因)
1.3 把所有出現的目錄統統刪除
find / -name mysql
- 查詢mysql的一些目錄,把所有出現的目錄刪除,可以使用rm -rf 路徑,刪除時請注意,一旦刪除無法恢復。
1.4 刪除配置檔案
rm -rf /etc/my.cnf
1.5 刪除mysql的預設密碼
rm -rf /root/.mysql_sercret
刪除mysql的預設密碼,如果不刪除,以後安裝mysql這個sercret中的預設密碼不會變,使用其中的預設密碼就可能會報類似Access denied for user ‘root@localhost’ (using password:yes)的錯誤.
五步完成之後,這樣mysql就全部刪除乾淨了,若沒安裝過mysql可忽略以上步驟
2、安裝
2.1配置Mysql 8.0安裝源
-
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
2.2 安裝
sudo yum --enablerepo=mysql80-community install mysql-community-server
提示安裝外掛時選擇:Y
2.3 啟動Mysql8.0
sudo service mysqld start
- 啟動完成
2.4 檢視mysql服務執行狀態
service mysqld status
2.5 檢視root臨時密碼
-
安裝完mysql之後,會生成一個臨時的密碼讓root使用者登入
grep "A temporary password" /var/log/mysqld.log
2.6 更改臨時密碼
輸入:mysql -uroot -p
在Enter password:後面輸入臨時密碼
登入成功
輸入:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘new password’;
會提示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements(密碼不符合當前策略)
方案1: 設定符合策略的密碼(大小寫字母+資料+符號)
方案2:密碼策略改簡單一點
-
報錯
-
密碼錯誤,注意提示的是雙冒號
-
由於錯誤執行過其他語句,因此我在此處先修改一次密碼;
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
注:以後安裝請注意輸出的Mysql是密碼;
-
修改密碼策略,在修改密碼
-
策略說明 validate_password.length 是密碼的最小長度,預設是8,我們把它改成6 輸入:set global validate_password.length=6; set global validate_password_length=6 validate_password.policy 驗證密碼的複雜程度,我們把它改成0 輸入:set global validate_password.policy=0; validate_password.check_user_name 使用者名稱檢查,使用者名稱和密碼不能相同,我們也把它關掉 輸入:set global validate_password.check_user_name=off;
-
再執行修改密碼的命令 輸入:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘12345’; 密碼設成功
2.7 配置遠端訪問
-
檢視使用者配置
select host, user, authentication_string, plugin from user;
-
將root使用者的host修改為%
-
重新整理許可權
FLUSH PRIVILEGES;
-
開啟埠,在網頁上設定
-
修改加密規則
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密規則 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下使用者的密碼 FLUSH PRIVILEGES; #重新整理許可權
-
執行出錯在修改一次密碼策略
-
連線測試;使用navicat測試
-
踩坑不易,轉載請指明出處;
3、補充SQL分類
參考文獻:https://blog.csdn.net/mmake1994/article/details/85944438
3.1 SQL(結構化查詢語言)
- 結構化查詢語言(Structured Query Language)簡稱SQL,結構化查詢語言是一種資料庫查詢和程式設計語言,用於存放資料以及查詢、更新和管理關係資料庫系統;同時也是資料庫指令碼檔案的副檔名。結構化查詢語言是高階的非過程化程式語言,允許使用者在高層資料結構上工作。它不要求使用者指定對資料的存放方法,也不需要使用者瞭解具體的資料存放方式,所以具有完全不同底層結構的不同資料庫系統,可以使用相同的結構化查詢語言作為資料輸入與管理的介面。結構化查詢語言語句可以巢狀,這使它具有極大的靈活性和強大的功能。
3.2 資料查詢語言(DQL)
- 資料查詢語言(Data Query Language, DQL)是SQL語言中,負責進行資料查詢而不會對資料本身進行修改的語句,這是最基本的SQL語句。保留字SELECT是DQL(也是所有SQL)用得最多的動詞,其他DQL常用的保留字有
FROM,WHERE,GROUP BY,HAVING和ORDER BY
。這些DQL保留字常與其他型別的SQL語句一起使用。
3.3 資料定義語言(DDL)
- 資料定義語言 (Data Definition Language, DDL) 是SQL語言集中,負責資料結構定義與資料庫物件定義的語言,由CREATE、ALTER與DROP三個語法所組成,最早是由 Codasyl (Conference on Data Systems Languages) 資料模型開始,現在被納入 SQL 指令中作為其中一個子集。
3.4 資料操縱語言(DML)
- 資料操縱語言(Data Manipulation Language, DML)是SQL語言中,負責對資料庫物件執行資料訪問工作的指令集,以INSERT、UPDATE、DELETE三種指令為核心,分別代表插入、更新與刪除。
3.5 指標控制語言(CCL)
- 它的語句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用於對一個或多個表單獨行的操作。
3.6 事務處理語言(TPL)
- 它的語句能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括BEGINTRANSACTION,COMMIT和ROLLBACK。