[TOC] #### 前言 --- 本文使用的操作系統(tǒng): | 名稱 | 描述 | 文章 | | ------------ | ------------ | ------------ | | Oracle VM VirtualBox | 虛擬機(jī)軟件 | [VirtualBox 使用介紹](http://waterflosserreview.com/index/627.html) | | CentOS-7-x86_64-Minimal-2009.iso | CentOS 7.9 最小化安裝鏡像文件 | [VirtualBox 安裝 CentOS 7](http://waterflosserreview.com/index/628.html) | 最開(kāi)始學(xué)習(xí) mysql 的時(shí)候,是在 windows 系統(tǒng)中,使用 mysql 壓縮包,將 mysql 安裝為系統(tǒng)服務(wù) 但在 linux 系統(tǒng)中,你可能不是很明確安裝流程,本文記錄其中一種方式,使用 yum 源安裝 mysql,適用于 centos 系統(tǒng) #### 安裝 mysql --- ##### 1. 卸載系統(tǒng)自帶 mariadb 查看并卸載系統(tǒng)自帶的 MariaDB 數(shù)據(jù)庫(kù) ```bash rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 ``` ![](https://img.itqaq.com/art/content/e599ae2db7e8d719e4fb0ca8b712f324.png) ##### 2. 下載 mysql 官網(wǎng) yum 源 --- 由于 centos 的 yum 源中沒(méi)有 mysql,需要到 mysql 官網(wǎng)下載 yum repo 配置文件 ```bash # wget 未安裝時(shí)執(zhí)行,已安裝跳過(guò)即可 yum install wget -y # 下載 mysql 的 yum 源配置 wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm ``` ![](https://img.itqaq.com/art/content/38ee8f43309de94f7baa7bdf42333c25.png) ##### 3. 安裝 mysql 官方的 yum 源 --- 運(yùn)行以下命令 ```bash yum -y install mysql57-community-release-el7-11.noarch.rpm ``` ```bash [root@localhost ~]# yum -y install mysql57-community-release-el7-11.noarch.rpm 已加載插件:fastestmirror 正在檢查 mysql57-community-release-el7-11.noarch.rpm: mysql57-community-release-el7-11.noarch mysql57-community-release-el7-11.noarch.rpm 將被安裝 .... .... 已安裝: mysql57-community-release.noarch 0:el7-11 完畢! ``` 命令執(zhí)行完成后會(huì)在 `/etc/yum.repos.d` 目錄下生成兩個(gè) repo 文件,如下圖所示 ![](https://img.itqaq.com/art/content/f091cfca13abf9f50cf657700e5afe3c.png) ##### 4. 使用 yum 的方式安裝 mysql --- 運(yùn)行以下命令安裝 ```bash yum install mysql-server -y ``` 安裝過(guò)程中如果出現(xiàn)以下錯(cuò)誤,運(yùn)行下面的命令可以解決 ```bash rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 ``` ```bash [root@localhost ~]# yum -y install mysql-server ... ... mysql-community-server-5.7.44-1.el7.x86_64.rpm 的公鑰尚未安裝 失敗的軟件包是:mysql-community-server-5.7.44-1.el7.x86_64 GPG 密鑰配置為:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql ``` #### 使用 mysql --- ##### a. 啟動(dòng) mysql ```bash # 啟動(dòng) mysql 服務(wù) systemctl start mysqld # 查看 mysql 服務(wù)狀態(tài) systemctl status mysqld ``` ##### b. 獲取臨時(shí)密碼 運(yùn)行以下命令可以查看臨時(shí)密碼,如下圖所示,臨時(shí)密碼為:`u)dJt5Wehpmi` ```bash cat /var/log/mysqld.log | grep password ``` ![](https://img.itqaq.com/art/content/43a362d869bb8cf905a274606b6a23ea.png) ##### c. 修改登錄密碼 使用剛才的臨時(shí)密碼登錄 mysql ```bash mysql -uroot -p ``` 使用以下命令修改密碼,`Liang1016@` 是我設(shè)置的密碼 ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'Liang1016@'; ``` 當(dāng)密碼過(guò)于簡(jiǎn)單時(shí),可能會(huì)遇到下面的錯(cuò)誤提示,這是 mysql 的密碼安全策略 ```sql mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Liang1016@'; Query OK, 0 rows affected (0.00 sec) ``` 如果要設(shè)置簡(jiǎn)單的密碼,先運(yùn)行以下命令,就可以使用長(zhǎng)度大于等于6的簡(jiǎn)單密碼了 ```sql set global validate_password_policy = 0; set global validate_password_length = 6; ``` ##### d. 設(shè)置遠(yuǎn)程訪問(wèn) 開(kāi)啟 mysql 的遠(yuǎn)程訪問(wèn)權(quán)限 ```sql -- 賦予 root 用戶外部訪問(wèn)權(quán)限,123456 是 root 用戶的密碼 grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; -- 刷新權(quán)限 flush privileges; ``` 開(kāi)放防火墻端口 3306,此時(shí)同一局域網(wǎng)下的電腦就可以通過(guò)局域網(wǎng) IP 連接我的 mysql 了 ```bash # 查看防火墻狀態(tài) firewall-cmd --state # 開(kāi)放 3306 端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent # 立即生效 firewall-cmd --reload ```