1. 程式人生 > 其它 >Linux安裝Mysql8.0及SQL分類的補充

Linux安裝Mysql8.0及SQL分類的補充

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 INTOUPDATE WHERE CURRENT用於對一個或多個表單獨行的操作。

3.6 事務處理語言(TPL)

  • 它的語句能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括BEGINTRANSACTION,COMMITROLLBACK