目錄
1.刪除原有mysql
2.添加 MySQL Yum Repository
3.安裝 MySQL
????????3.1.報錯? ? ? ??
4.啟動 MySQL 服務
5.設置mysql
? ? ? ? 5.1.密碼驗證組件
? ? ? ? 5.2.密碼策略
? ? ? ? 5.3.移除匿名用戶
? ? ? ? 5.4.是否禁用root遠程訪問
? ? ? ? 5.5.是否刪除test
? ? ? ? 5.6.是否重新加載權限
? ? ? 5.7.設置遠程權限
? ? ? ? 5.7.1.登錄mysql
5.8.端口更換
? ? ? ? 5.8.1.查找配置文件的位置
? ? ? ? 5.8.2.?修改配置
5.8.3.重啟mysql?
????????該教程是使用的 CentOS 8.2 安裝 mysql。
1.刪除原有mysql
rpm -qa|grep mariadb
????????如果存在在mariadb,卸載命令如下:
#rpm -e --nodeps是強制卸載指令 后面是查出的依賴名稱rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
? ? ? ? 全部卸載完輸入以下指令,輸出無則已卸載干凈
rpm -qa|grep mysql
2.添加 MySQL Yum Repository
????????MySQL 官方提供了 Yum 倉庫,可以通過它來安裝 MySQL。首先,下載 MySQL 的 Yum Repository
wget https://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm
? ? ? ? 響應內容:
?
????????然后,添加下載的 repository 到你的系統中?
sudo rpm -ivh mysql80-community-release-el8-3.noarch.rpm
? ? ? ? 響應內容:
??
3.安裝 MySQL
????????現在你可以通過以下命令安裝 MySQL
sudo dnf install mysql-server
? ? ? ? 響應內容:
? ? ? ? 輸入 y 確認?
????????3.1.報錯? ? ? ??
????????如出現? :更新或下載時報錯:為倉庫 ‘appstream‘ 下載元數據失敗 : Cannot prepare internal mirrorlist?
????????原因是?CentOS?Linux?8已于 2021-12-31日停止更新和維護了,CentOS團隊從官方鏡像中移除CentOS?8的包,所以在使用yum源安裝或更新會報上述失敗錯誤。
? ? ? ??進入倉庫源文件夾下
cd /etc/yum.repos.d/
? ? ? ? 修改鏡像配置
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
????????清空原有緩存,并重新生成?
yum clean all && yum makecache
????????更新軟件包
yum update -y
? ? ? ? 操作完成,可以繼續執行??sudo dnf install mysql-server 指令。
4.啟動 MySQL 服務
????????安裝完成后,啟動 MySQL 服務,并設置為開機自啟
sudo systemctl start mysqld
sudo systemctl enable mysqld
? ? ? ? 查看mysql運行狀態?
systemctl status mysqld.service
? ? ? ? 查看mysql進程
ps -ef|grep mysqld
? ? ? ? 響應如下:?
5.設置mysql
? ? ? ? 輸入指令配置mysql基本的安全設置
mysql_secure_installation
? ? ? ? 5.1.密碼驗證組件
? ? ? ? 輸入 y 確定啟用這個密碼驗證組件。
? ? ? ? 5.2.密碼策略
? ? ? ? 可輸入(0,1,2)?
-
0 = LOW: 密碼長度至少為8個字符。這是最寬松的策略,僅要求密碼達到一定的長度,但對字符類型沒有特殊要求。
-
1 = MEDIUM: 在LOW的基礎上增加了更多要求,密碼長度至少為8個字符,并且必須包含數字、大小寫字母以及特殊字符。這比LOW級別提供了更強的安全性。
-
2 = STRONG: 在MEDIUM的基礎上進一步加強了要求,除了所有MEDIUM的要求外,還需要密碼通過字典文件檢查,這意味著密碼不能是常見的單詞或簡單組合,有助于防止使用容易被猜到的密碼
? ? ? ? 輸入完成后可輸入創建密碼,和再次確認密碼。
? ? ? ? 響應內容:
? ? ? ? 密碼策略成功通過會回顯示密碼強度,上圖顯示的強度是100 ,去人是否使用此密碼
????????輸入 y 確認。?
? ? ? ? 5.3.移除匿名用戶
? ? ? ? 繼續輸入 y 同意移除這些匿名用戶。
? ? ? ? 5.4.是否禁用root遠程訪問
? ? ? ? 詢問您是否要禁止 root 用戶從遠程主機登錄 MySQL 數據庫。如果需禁用遠程訪問root只能本地訪問則輸入y,需要遠程輸入隨意字母。
? ? ? ? 5.5.是否刪除test
????????詢問您是否要刪除 MySQL 默認提供的名為 'test' 的數據庫及其對應的訪問權限,需要刪除輸入y,不需隨意。
? ? ? ? 5.6.是否重新加載權限
? ? ? ? 詢問是否重新加載權限,輸入 y??
????????至此設置完成。
? ? ? 5.7.設置遠程權限
? ? ? ? 如果上面都操作完成后還是無法遠程訪問 mysql 可以按下面步驟操作。
? ? ? ? 5.7.1.登錄mysql
? ? ? ? ? ? ? ? 輸入以下指令后,輸入剛剛設置的密碼即可登錄。
mysql -u root -p
? ? ? ? 響應內容:
? ? ? ? 5.7.2設置
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密碼';
CREATE USER 'root'@'%' IDENTIFIED BY '你的新密碼';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
- ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密碼';? #如果需要更改root密碼的話
- CREATE USER 'root'@'%' IDENTIFIED BY '你的新密碼';? ? ? ? ? #創建一個可以從任何地方登錄的root用戶
- GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;? ? ? #賦予所有權限
- FLUSH PRIVILEGES;? ? ? #刷新權限使其生效
? ? ? ? ?使用 Navicat Premium 可成功遠程訪問mysql。
5.8.端口更換
? ? ? ? 如想更換原始的3306端口的話,根據一下步驟操作。
? ? ? ? 5.8.1.查找配置文件的位置
mysql --help | grep "Default options" -A 1
????????MySQL在啟動時會讀取多個可能的配置文件路徑。常見的默認位置包括/etc/my.cnf、/etc/mysql/my.cnf、$MYSQL_HOME/my.cnf(其中$MYSQL_HOME是一個環境變量,通常指向MySQL的安裝目錄)、~/.my.cnf等。你可以通過以下命令來查看你的MySQL實例實際使用了哪個配置文件。
? ? ? ? 響應如下:
? ? ? ? 5.8.2.?修改配置
? ? ? ??在my.cnf
文件中,查找包含[mysqld]
的部分,在這部分下面添加或修改如下行來指定新的端口號(例如,更改為3111)
5.8.3.重啟mysql?
????????保存對my.cnf
文件的修改后,你需要重啟MySQL服務以使更改生效
sudo systemctl restart mysqld
? ? ? ? 重啟后,你可以通過以下命令檢查MySQL監聽的端口是否已經更改為你設置的新端口
netstat -plnt | grep mysqld
? ? ? ? 響應如下:
?????????如上圖端口3111顯示出來就代表已更改成功。