1. 程式人生 > >Cent OS 7 安裝mysql

Cent OS 7 安裝mysql

文章目錄

前言

每次在虛擬機器上用 Cent OS,總是要不厭其煩地裝 mysql,這篇文章就記錄一下,在 Cent OS 7 下裝 mysql 並使用的全過程。
當然安裝過程中也參考了諸多網友們寫下的安裝經驗,我這裡很難一一列出,但是在此一併表示感謝了。
正是因為眾多網友無私的分享,孜孜不倦的記錄,才能讓後人踩在前人的肩膀上,不斷進步,也讓網際網路行業欣欣向榮的發展。

刪除 MariaDB

Cent OS 7 的 yum 源中已經不再包含在 MySQL,而改用了 MariaDB。
關於 mariaDB 的介紹,大家可以參考 wikipedia
簡單點來說,MariaDB 就是 mysql 被 Oracle 收購以後,新開的一個 mysql 的分支,完全相容 mysql。
但是問題又來了,既然兩者沒什麼差別,為什麼要大費周章的把 MariaDB 換成mysql 呢?
這個問題,我想不同的人能給出不同的答案。
而對於我來說,主要是出於習慣,用起來順手而已。
閒話不多說,開始吧!

  1. 查詢 MariaDB 是否已經安裝了
rpm -qa |
grep maria*
  1. 刪除 MariaDB
yum -y remove maria*

【注意】 如果第一步命令執行以後,什麼都沒有,那麼第二就直接跳過吧,因為你的系統中並沒有裝 MariaDB 。

下載 mysql yum 包

進入 mysql 官方提供的 yum 包下載頁面,地址為:https://dev.mysql.com/downloads/repo/yum/ ,頁面如下,選擇適合你係統的 yum 包
在這裡插入圖片描述

可以用 weget 等下載方式,請自行選擇。

安裝 mysql yum 包

進入防止下載好的 yum 包的目錄中,執行以下命令:

rpm -ivh mysql80-community-release-el7-1.noarch.rpm

後面的檔名是我下載的 mysql yum 包,你需要填上對應的你下載的 yum 包。

安裝 mysql

yum install  -y  mysql-community-server

這個過程一般挺漫長的,視你的網速和極其配置而定。

啟動 mysql

# 啟動mysql 
systemctl start mysqld.service

# 查詢mysql狀態
systemctl status mysqld.service

更改預設密碼

  1. 找到預設的密碼
cat /var/log/mysqld.log 

預設會生成一個很複雜的密碼,而這個密碼會儲存在mysqld.log 裡面,因此通過檢視這個檔案,就能找到自動生成的密碼。

  1. 通過這個密碼登入 mysql
mysql -uroot -p your_password
  1. 修改預設密碼
    預設情況下,你不更改密碼,查詢命令無法執行。
mysql> select @@log_error;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

但是如果你把密碼設定的很簡單,又通過不了密碼強度驗證。

mysql> alter user 'root'@'localhost' identified by 'root';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

mysql> alter user 'root'@'localhost' identified by 'root_123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

這個時候,你需要做的是,先設定一個暫時的比較複雜的密碼,這個密碼要包含大小寫、數字以及字元才能通過安全驗證。

mysql> alter user 'root'@'localhost' identified by 'Root_123';
Query OK, 0 rows affected (0.23 sec)
  1. 檢視密碼相關安全設定
mysql> show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.43 sec)
  1. 修改密碼強度限制
mysql> set global validate_password.length = 1;
Query OK, 0 rows affected (0.01 sec)

mysql> set global validate_password.policy = 0;
Query OK, 0 rows affected (0.00 sec)

當然,這個修改只建議在測試環境下使用,如果在生產環境使用簡單密碼,會導致資料庫密碼極易被破解,使得資料庫中的資料有洩露的風險。

  1. 設定簡單密碼
mysql> alter user 'root'@'localhost' identified by 'root123';
Query OK, 0 rows affected (0.23 sec)

允許遠端連線

mysql> alter user 'root'@'%' identified with mysql_native_password by 'root123';
Query OK, 0 rows affected (0.07 sec)

# 屬性許可權
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

做了以上的修改以後,才能遠端連線資料庫。