linux用rpm包方式安裝MySQL8全過程
一. Linux操作系統(tǒng)MySQL安裝包分類
Linux操作系統(tǒng)MySQL安裝包分為以下3類
- RPM: RPM軟件包是一種在Linux平臺(tái)下的安裝文件,通過安裝命令可以很方便地安裝與卸載。MySQL的RPM安裝文件包分為兩個(gè):服務(wù)器和客戶端,需要分別下載和安裝或者下載整包,分別安裝。
- Generic Binaries: 二進(jìn)制軟件包,經(jīng)過編譯生成的二進(jìn)制文件軟件包。
- 源碼包:MySQL數(shù)據(jù)庫的源代碼,用戶需要自己編譯成二進(jìn)制文件之后才能安裝
二. 系統(tǒng)環(huán)境
virtualBox虛擬軟件安裝: Redhat Enterprise Linux 7.2
三. MySQL官網(wǎng)下載軟件包
可以直接到 mysql官網(wǎng) 選擇對(duì)應(yīng)版本進(jìn)行下載。
或下載頁地址:https://downloads.mysql.com/archives/community/

四. MySQL8的rpm軟包安裝步驟
1. 上傳到tmp目錄
上傳已下載MySQL的RPM軟件包到安裝的linux服務(wù)器上。
我使用的WinSCP軟件工具。

2. 解壓下載的tar包
命令:tar -xvf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar

- mysql-community-client-8.0.20-1.el7.x86_64.rpm 是客戶端的安裝包
- mysql-community-server-8.0.20-1.el7.x86_64.rpm是服務(wù)端的安裝包
- mysql-community-devel-8.0.20-1.el7.x86_64.rpm是包含開發(fā)用的庫頭文件安裝包
- mysql-community-test-8.0.20-1.el7.x86_64.rpm是一些測試的安裝包
- mysql-community-embedded-compat-8.0.20-1.el7.x86_64.rpm是嵌入式MySQL的安裝包
一般情況下,只需要安裝Client和server兩個(gè)包,如果需要c/c++ MySQL相關(guān)開發(fā),請(qǐng)安裝devel。
3. 切換到root
命令:su – root
4. 查檢是否已安裝MySQL
命令:rpm -qa|grep -I mysql
如果存在,確認(rèn)不需要后卸載,
命令:rpm -ev mysql_info(上面查出來的信息)
5. 安裝MySQL 8 服務(wù)端
命令:rpm -ivh /tmp/mysql-community-server-8.0.20-1.el7.x86_64.rpm

彈出警告:
warning: /tmp/mysql-community-server-8.0.20-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

原因:這是由于yum安裝了舊版本的GPG keys造成的
解決辦法:后面加上 --force –nodeps
- –force就是強(qiáng)制安裝
- –nodeps就是安裝時(shí)不檢查依賴關(guān)系
命令:
rpm -ivh /tmp/mysql-community-server-8.0.20-1.el7.x86_64.rpm --force --nodeps

6. 啟動(dòng)服務(wù)
命令:service mysqld start

service 是用來管理Linux服務(wù)的
service start/stop/restart/status 啟動(dòng)服務(wù)/停止服務(wù)/重啟服務(wù)/查看服務(wù)狀態(tài)
7. 安裝MySQL 8 客戶端
命令:rpm -ivh mysql-community-client-8.0.20-1.el7.x86_64.rpm --force --nodeps

8. 安裝完成之后,使用命令行登錄
命令:mysql -u root -p

說明:mysql5.6是密碼為空直接進(jìn)入數(shù)據(jù)庫的,但是mysql5.7之后就需要初始密碼
從安裝日志獲取初始密碼:
命令:cat /var/log/mysqld.log | grep password

再次執(zhí)行命令:mysql -u root -p 回車,輸入查到的初始密碼,登錄成功

9. 必須修改初始密碼
命令:use mysql;

提示必須修改密碼使用alter user語句。
密碼有最基本的規(guī)則校驗(yàn),默認(rèn)如下:
validate_password.policy默認(rèn)是1,即MEDIUM,所以剛開始設(shè)置的密碼必須符合長度,且必須含有數(shù)字,小寫或大寫字母,特殊字符

查看密碼規(guī)范:
SHOW VARIABLES LIKE ‘validate_password%';

validate_password.length(密碼長度)參數(shù)默認(rèn)為8
可以直接按照規(guī)則設(shè)置密碼,如果想設(shè)置簡單密碼,臨時(shí)修改規(guī)則校驗(yàn)
mysql8.0設(shè)置策略和長度設(shè)置:
set global validate_password.policy=0; set global validate_password.length=1;

修改密碼
alter user ‘root'@‘localhost' identified by ‘123456';

查看當(dāng)前root用戶相關(guān)信息,在mysql數(shù)據(jù)庫的user表中
select host, user, authentication_string, plugin from mysql.user;

host:允許用戶登錄的ip‘位置’%表示可以遠(yuǎn)程;user:當(dāng)前數(shù)據(jù)庫的用戶名;authentication_string:用戶密碼;在mysql 5.7.9以后廢棄了password字段和password()函數(shù);plugin: 密碼加密方式
MySQL8另外一種方式登錄系統(tǒng)修改密碼:
- 修改配置文件成登錄跳過密碼校驗(yàn)
- 無密碼登錄后,按上述操作修改密碼
- 還原配置文件,重啟數(shù)據(jù)庫服務(wù)
五. 創(chuàng)建遠(yuǎn)程用戶
說明:root用戶現(xiàn)在是localhost訪問,是最大權(quán)限用戶,所以我們創(chuàng)建普通用戶,賦與相應(yīng)的權(quán)限的遠(yuǎn)程用戶。
1. 創(chuàng)建數(shù)據(jù)庫:test
create database test default character set utf8mb4 collate utf8mb4_bin;

2. 創(chuàng)建任意IP訪問的遠(yuǎn)程用戶:test_admin
create user ‘test_admin'@‘%' identified by ‘123456';

3. 授予權(quán)限
授予test_admin遠(yuǎn)程用戶test數(shù)據(jù)庫的創(chuàng)建、修改、刪除和表的增刪改查的權(quán)限
grant create,alter,drop,select,insert,update,delete on test.* to test_admin@‘%';

查看test_admin權(quán)限:
show grants for test_admin;

刷新服務(wù)使配置生效:
Flush privileges;

4. 客戶端登錄
virtualbox虛擬機(jī)環(huán)境:關(guān)閉防火墻或防火墻開啟mysql默認(rèn)3306端口。
客戶端使用創(chuàng)建的test_admin用戶登錄,只有test數(shù)據(jù)庫權(quán)限。

六. MySQL安裝目錄說明
打開mysql8安裝后默認(rèn)配置文件:
命令:cat /etc/my.cnf

- /var/lib/mysql:日志文件和數(shù)據(jù)庫
- /var/log/:服務(wù)器日志
- /var/run/mysqld/mysqld.pid: mysql服務(wù)進(jìn)程
其他目錄說明:
- /usr/bin/: 客戶端和腳本,如:mysql,mysqladmin等命令
- /usr/sbin/: mysqld服務(wù)器,如:mysqld
七. 配置mysql開機(jī)啟動(dòng)
查看MySQL是不是開機(jī)自啟,可以執(zhí)行命令查看開機(jī)自啟列表
查看mysqld開機(jī)啟動(dòng):systemctl list-unit-files|grep mysqld

如果未開啟:systemctl enable mysqld

再次查看:systemctl list-unit-files|grep mysqld

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux系統(tǒng)重啟后MySQL數(shù)據(jù)丟失問題的解決步驟
今天分享一個(gè)在Linux系統(tǒng)中經(jīng)常遇到的問題:系統(tǒng)重啟后發(fā)現(xiàn)MySQL無法啟動(dòng),而且數(shù)據(jù)似乎丟失了,這個(gè)問題可能會(huì)讓人驚慌失措,但別擔(dān)心,通常情況下這只是因?yàn)閿?shù)據(jù)盤沒有正確掛載導(dǎo)致的,現(xiàn)在我們將深入探討這個(gè)問題的原因、解決方法以及如何預(yù)防它的再次發(fā)生2024-09-09
linux Cron定時(shí)執(zhí)行帶參數(shù)的PHP代碼
前面有篇文章簡單介紹了了cPanel控制面板下如何使用時(shí)鐘守護(hù)作業(yè)的方法,但有時(shí),我們希望執(zhí)行帶參數(shù)的php代碼,即如何傳遞參數(shù)給cron,飄易分享下方法如下2021-07-07
linux(ubuntu)用戶連續(xù)N次輸入錯(cuò)誤密碼進(jìn)行登陸時(shí)自動(dòng)鎖定X分鐘
這篇文章主要介紹了linux(ubuntu)用戶連續(xù)N次輸入錯(cuò)誤密碼進(jìn)行登陸時(shí),自動(dòng)鎖定X分鐘,需要的朋友可以參考下2019-09-09
CentOS7 LNMP+phpmyadmin環(huán)境搭建 第二篇LNMP環(huán)境搭建教程
這篇文章主要為大家詳細(xì)介紹了CentOS7 LNMP+phpmyadmin環(huán)境搭建,第二篇LNMP環(huán)境搭建教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Linux系統(tǒng)中的firewall-offline-cmd詳解(收藏版)
firewall-offline-cmd 是 firewalld 的一個(gè)命令行工具,專門設(shè)計(jì)用于在沒有運(yùn)行 firewalld 服務(wù)的環(huán)境中配置防火墻規(guī)則,這篇文章主要介紹了Linux系統(tǒng)之firewall-offline-cmd詳解,需要的朋友可以參考下2025-06-06
淺談linux kernel對(duì)于浮點(diǎn)運(yùn)算的支持
今天小編就為大家分享一篇淺談linux kernel對(duì)于浮點(diǎn)運(yùn)算的支持,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06

