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 呢?
這個問題,我想不同的人能給出不同的答案。
而對於我來說,主要是出於習慣,用起來順手而已。
閒話不多說,開始吧!
- 查詢 MariaDB 是否已經安裝了
rpm -qa | grep maria*
- 刪除 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
更改預設密碼
- 找到預設的密碼
cat /var/log/mysqld.log
預設會生成一個很複雜的密碼,而這個密碼會儲存在mysqld.log
裡面,因此通過檢視這個檔案,就能找到自動生成的密碼。
- 通過這個密碼登入 mysql
mysql -uroot -p your_password
- 修改預設密碼
預設情況下,你不更改密碼,查詢命令無法執行。
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)
- 檢視密碼相關安全設定
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)
- 修改密碼強度限制
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)
當然,這個修改只建議在測試環境下使用,如果在生產環境使用簡單密碼,會導致資料庫密碼極易被破解,使得資料庫中的資料有洩露的風險。
- 設定簡單密碼
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)
做了以上的修改以後,才能遠端連線資料庫。