【mysql】centOS7安裝mysql詳細操作步驟!—通過tar包方式

【mysql】centOS7安裝mysql詳細操作步驟!

linux系統安裝mysql版本

需要 root 權限,使用 root 用戶進行命令操作。使用tar文件包,安裝,gz包也可以但是還需要配置用戶,tar包雖然大,但是全啊!

1. 檢查并卸載舊版本 MySQL(如果有)刪除配置文件

查詢是否存在 MariaDB 相關安裝包,MariaDB 是MySQL的一個分支,主要由開源社區在維護,采用GPL授權許可 MariaDB 的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。

rpm -qa | grep mariadb
# 刪除已經安裝的mariadb,通過上面查詢得到的文件名為:mariadb-libs-5.5.60-1.el7_5.x86_64
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
# 再查詢是否存在 MariaDB 相關安裝包
rpm -qa | grep mariadb
# 查看正在運行的 MySQL 服務

在安裝新版本之前,需要確認系統中是否存在舊版本的 MySQL 并將其卸載。

# 查看是否安裝了舊版本 MySQL
rpm -qa | grep mysql
# 如果有相關包,使用以下命令卸載,例如
sudo yum remove mysql*
# 查看系統版本
cat /etc/os-release
# 查看是x86_64,還是arm
uname -m

查看正在運行的 MySQL 服務

ps axj | grep mysql

存在正在運行的 MySQL 服務,停止 MySQL 服務

systemctl stop mysqld

查看 MySQL 服務狀態

systemctl status mysqld

查詢是否存在 MySQL 相關安裝文件

find / -name mysql

存在 MySQL 相關安裝文件,全部刪除

rm -rf /etc/selinux/targeted/active/modules/100/mysql /usr/lib64/mysql /export/server/mysql
# 再次,查詢是否存在 MySQL 相關安裝文件
find / -name mysql

刪除 MySQL 相關配置文件

rm -rf /etc/my.cnf /etc/init.d/mysql /etc/init.d/mysqld

刪除 mysql 用戶和用戶組

userdel mysql
groupdel mysql

2. 下載MySQL +上傳centOS7

訪問 MySQL 官方下載頁面(https://downloads.mysql.com/archives/community/),找到適合【選擇系統,選擇版本】

我用的下載鏈接是:https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar,8.036版本

下載完成后,上傳centOS7 ,我通過rz命令上傳的!

# 創建目錄
mkdir -p /export/server/mysql
# 進入目錄
cd /export/server/mysql
# 上傳
rz 選擇文件
# 解壓到這個目錄,.tar 格式的為打包不壓縮,使用 tar -xvf,解壓后是相關的文件,不是目錄。
tar -xvf mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar -C /export/server/mysql
# 查看解壓后的情況
ls -l /export/server/mysql

在這里插入圖片描述

3. 安裝依賴+安裝rpm包

安裝 openssl 和 openssl-devel,OpenSSL庫是用于加密和解密數據的庫,MySQL在安全通信時需要使用OpenSSL庫。

yum -y install openssl openssl-devel

安裝 libaio ,libaio庫是Linux異步I/O操作的庫,MySQL在進行I/O操作時需要使用libaio庫。

yum -y install libaio

安裝ncurses,ncurses庫是用于控制終端輸出的庫,MySQL的終端工具需要使用ncurses庫。

yum -y install libncurses*

在這里插入圖片描述

進入目錄 /export/server/mysql,查看目錄內容

cd /export/server/mysql
ls -l

依次執行以下命令,依次安裝 /export/server/mysql 目錄下的各個.rpm文件,一定要注意安裝順序,要不然安裝不上!

rpm -ivh mysql-community-client-plugins-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.36-1.el7.x86_64.rpm

在這里插入圖片描述

下面這些不用安裝

mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar # 原來的包不用安裝
mysql-community-test-8.0.36-1.el7.x86_64.rpm # 測試包
mysql-community-server-debug-8.0.36-1.el7.x86_64.rpm # debug
mysql-community-debuginfo-8.0.36-1.el7.x86_64.rpm # debuginfo

4. 配置 MySQL

修改配置文件 /etc/my.cnf,在 [mysqld] 中增加配置內容

vim /etc/my.cnf

增加的配置內容以下

# 設置 MySQL 服務運行的端口號
port=3306
# 指定 MySQL 數據庫的默認字符集
character-set-server=utf8mb4
# 允許外部訪問
bind-address=0.0.0.0
# 設置client連接mysql時的字符集,防止亂碼
init_connect='SET NAMES utf8mb4'
# 設置 MySQL 允許訪問的最大連接數
max_connections=1000
# 指定MySQL服務器存儲數據文件的目錄
datadir=/var/lib/mysql
# 是否對sql語句大小寫敏感,1表示不敏感
lower_case_table_names=1
# 事務隔離級別,默認為可重復讀,mysql默認可重復讀級別(此級別下可能參數很多間隙鎖,影響性能)
transaction_isolation=READ-COMMITTED
# TIMESTAMP如果沒有顯示聲明NOT NULL,允許NULL值
explicit_defaults_for_timestamp=true

在這里插入圖片描述

目錄授權,初始化,生成root用戶

# 清空目錄
sudo rm -rf /var/lib/mysql/*
# 授權
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql
# 初始化mysql數據庫
sudo mysqld --initialize --user=mysql

在這里插入圖片描述

[mysqld]
port=3306
character-set-server=utf8mb4
bind-address=0.0.0.0
init_connect='SET NAMES utf8mb4'
max_connections=1000
datadir=/var/lib/mysql
lower_case_table_names=1
transaction_isolation=READ-COMMITTED
explicit_defaults_for_timestamp=true
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

5. 啟動 MySQL

【MySQL 安裝完成后,會自動配置名稱為 mysqld 的服務,可以被 systemctl 管理。】

啟動 MySQL 服務

sudo systemctl start mysqld.service

查看 MySQL 服務

systemctl status mysqld.service

查看 MySQL 服務進程

ps axj | grep mysqld

在這里插入圖片描述

設置 MySQL 服務開機自動啟動

systemctl enable mysqld.service

6. 登錄 MySQL

  • 方式1:

獲取臨時密碼進行登錄

獲取 MySQL 日志文件的路徑,查看配置文件 /etc/my.cnf 中的 log-error 的內容 /var/log/mysqld.log 就是 MySQL 日志文件的路徑

cat /etc/my.cnf

再查看 MySQL 日志文件 /var/log/mysqld.log,使用通道符按關鍵字直接檢索,獲取臨時密碼

grep "temporary password" /var/log/mysqld.log

登錄 MySQL

mysql -u root -p

不修改密碼,不允許執行SQL命令。

修改密碼,MySQL默認的密碼策略是要包含大寫字母、小寫字母、數字、特殊字符,長度大于8位

alter user 'root'@'localhost' identified by '復雜的密碼';

退出 MySQL

exit;

重新登錄 MySQL,使用修改后的密碼

mysql -u root -p
  • 方式2:

跳過密碼驗證進行登錄。不推薦。除非通過方式1獲取不到臨時密碼,或者使用過程中忘記密碼了。

修改 /etc/my.cnf 配置文件,在 [mysqld] 后面任意一行添加 skip-grant-tables

vim /etc/my.cnf

重啟 MySQL

systemctl restart mysqld

登錄 MySQL(無 -p 選項,無需密碼登錄)

mysql -u root

刷新權限 ,需要刷新權限之后才能修改密碼

flush privileges;

修改密碼,MySQL默認的密碼策略是要包含大寫字母、小寫字母、數字、特殊字符,長度大于8位

alter user 'root'@'localhost' identified by '復雜的密碼';

退出 MySQL

exit;

再修改 /etc/my.cnf 配置文件,將 skip-grant-tables 這行注釋或刪除掉

vim /etc/my.cnf

重啟 MySQL

systemctl restart mysqld

7. 開放端口

查看 MySQL 服務監聽哪些端口

netstat -nap | grep mysqld

檢查端口是否開放

firewall-cmd --zone=public --query-port=3306/tcp

開放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

重新加載

firewall-cmd --reload
# 再檢查端口是否開放
firewall-cmd --zone=public --query-port=3306/tcp

8. 設置遠程登錄

MySQL8默認只能本地連接,不允許遠程終端連接

登錄 MySQL,新建 root_rw 用戶,允許在遠程終端(192.168.88.1)上遠程登錄, % 代表所有終端

mysql -u root -p
create user 'rw'@'192.168.88.1' identified by '復雜的密碼';
# create user 'rw'@'%' identified by '復雜的密碼';

授予權限(最大權限)

grant all privileges on *.* to 'rw'@'192.168.88.1';
# grant all privileges on *.* to 'rw'@'%';

刷新權限

flush privileges;

查看用戶情況

 SELECT host, user FROM mysql.user

在這里插入圖片描述

9. 測試遠程登錄

可以使用SQLyog, Navicate, DataGrip 等工具鏈接測試!

10. 刪除安裝文件

刪除安裝包文件

rm -rf /root/mysql-8.4.3-1.el7.x86_64.rpm-bundle.tar

刪除安裝包解壓的安裝目錄

rm -rf /export/server/mysql

如果出現不是東八區時間,可以

select now();
# SET time_zone = '+08:00';
SET GLOBAL time_zone = '+08:00';

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/73509.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73509.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/73509.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[新能源]新能源汽車快充與慢充說明

接口示意圖 慢充接口為交流充電口(七孔),快充接口為直流充電口(九孔)。 引腳說明 上圖給的是充電口的引腳圖,充電槍的為鏡像的。 慢充接口引腳說明 快充接口引腳說明 充電流程 慢充示意圖 慢充&…

Android第二次面試總結(項目拷打理論篇)

(一)理論基礎 LiveData 和 ViewModel 是 Android 架構組件中的重要部分,它們在構建響應式、生命周期感知的 Android 應用程序中發揮著關鍵作用。下面分別介紹它們的原理。 LiveData 原理 1. 概述 LiveData 是一種可觀察的數據持有者類&…

MyBatis SqlSessionFactory 是如何創建的?

SqlSessionFactory 是 MyBatis 的核心接口之一,它是創建 SqlSession 實例的工廠。 SqlSession 實例是 MyBatis 與數據庫交互的主要接口,負責執行 SQL 語句、管理事務等。 SqlSessionFactory 的創建過程主要由 SqlSessionFactoryBuilder 類負責。 SqlSes…

玩轉python:通俗易懂掌握高級數據結構-collections模塊之Counter

引言 Counter是Python中collections模塊提供的一個強大工具,用于統計可哈希對象的出現次數。它非常適合用于頻率統計、詞頻分析、數據聚合等場景。本文將詳細介紹Counter的關鍵用法和特性,并通過8個豐富的案例幫助讀者掌握其應用。 關鍵用法和特性表格 …

DeepSeek面試——分詞算法

DeepSeek-V3 分詞算法 一、核心算法:字節級BPE(Byte-level BPE,BBPE) DeepSeek-V3 采用 字節級BPE(BBPE) 作為核心分詞算法,這是對傳統 BPE(Byte Pair Encoding)算法的…

機器學習——正則化、欠擬合、過擬合、學習曲線

過擬合(overfitting):模型只能擬合訓練數據的狀態。即過度訓練。 避免過擬合的幾種方法: ①增加全部訓練數據的數量(最為有效的方式) ②使用簡單的模型(簡單的模型學不夠,復雜的模型學的太多&am…

Python:函數(一)

python函數相關的知識點 1. 函數定義與調用 定義:使用 def 關鍵字,后接函數名和參數列表。 def greet(name):"""打印問候語(文檔字符串)"""print(f"Hello, {name}!") 調用&#xff1a…

關于Flutter中兩種Widget的生命周期詳解

目錄 一、StatelessWidget 生命周期 二、StatefulWidget 生命周期 1. 創建階段 2. State初始化階段 3. 構建階段 4. 更新階段 5. 銷毀階段 三、核心對比與常見陷阱 四、面試回答技巧 以下是Flutter中兩種核心Widget(StatelessWidget和StatefulWidget)生命周…

Linux 》》Ubuntu 18 LTS 之后的版本 修改IP地址 主機名

進入目錄 /etc/netplan 修改 50-cloud-init.yaml 》保存文件后,執行以下命令應用更改: sudo netplan apply 》》 DHCP模式 修改主機名 hostnamectl set-hostname xxxx 修改cloud.cfg 防止重啟主機名還原 但測試下來 不修改, 重啟 也不會還…

C++基礎 [三] - 面向對象三

初始化列表 首先,初始化列表是我們的祖師爺本賈尼博士為了解決在某些成員變量在定義時必須初始化的情況。這個初始化列表其實發生在構造函數之前,也就是實例化整個對象時先對所有的成員都進行了初始化 初始化的概念區分 在之前的博客學習中&#xff…

55年免費用!RevoUninstaller Pro專業版限時領取

今天,我要給大家介紹一款超給力的卸載工具——RevoUninstaller Pro。這是一款由保加利亞團隊精心打造的專業級卸載軟件,堪稱軟件卸載界的“神器”。 RevoUninstaller分為免費版和專業版。專業版功能更為強大,但通常需要付費才能解鎖全部功能。…

目前人工智能的發展,判斷10年、20年后的人工智能發展的主要方向,或者帶動的主要產業

根據2025年的最新行業研究和技術演進趨勢,結合歷史發展軌跡,未來10-20年人工智能發展的主要方向及帶動的產業將呈現以下六大核心趨勢: 一、算力革命與底層架構優化 核心地位:算力將成為類似“新能源電池”的基礎設施,…

【機器人】復現 ASGrasp 通用透明物體重建、6-DoF抓取預測

在機器人抓取領域,透明和鏡面物體的抓取一直是個難題。 ASGrasp核心是兩層學習型立體網絡,能夠同時恢復透明和鏡面物體的可見部分和不可見部分的深度信息。 然后融合兩層深度信息,進行重建物體,得到點云信息作為GSNet&#xff0…

2. qt寫帶有槽的登錄界面(c++)

我們在1.Qt寫簡單的登錄界面(c)_c qt 設計一個簡單界面-CSDN博客中寫了個簡單的登錄界面&#xff0c;但沒有槽&#xff0c;在這里寫一個帶有槽的界面。 1.代碼 代碼目錄如下&#xff1a; main.cpp的代碼如下&#xff1a; #include "MainWindow.h" #include <Qt…

windows安裝兩個或多個JDK,并實現自由切換

我用兩個JDK來做演示&#xff0c;分別是JDK8和JDK17(本人已安裝JDK8&#xff0c;所以這里只演示JDK17的安裝)。 1、下載JDK17安裝 Java Downloads | Oracle 2、安裝JDK17,這里忽略。直接雙擊軟件&#xff0c;點擊下一步就可以。 3、配置環境變量 在系統變量中新建一個CLASSP…

【2025最新】深度學習框架PyTorch——從入門到精通(1)下載與安裝

又名&#xff1a;蕪湖起飛俠的PyTorch學習記錄——從起飛到墜毀 簡介安裝內容總覽安裝AnacondaAnaconda簡介Anaconda下載配置環境變量驗證其他配置安裝matplotlib 安裝 CUDA安裝之前安裝cuDNN 安裝torchCPU 版本安裝GPU 版本安裝通過pip安裝&#xff08;不推薦&#xff09;通過…

C++數據結構1——棧結構詳解

一、棧的基本概念與特性 1. 棧的定義與特點 棧&#xff08;Stack&#xff09;是一種遵循后進先出&#xff08;LIFO, Last In First Out&#xff09;原則的線性數據結構&#xff0c;其核心特征包括&#xff1a; 單端操作&#xff1a;所有操作僅通過棧頂進行 動態存儲&#xf…

【Python 數據結構 15.哈希表】

目錄 一、哈希表的基本概念 1.哈希表的概念 2.鍵值對的概念 3.哈希函數的概念 4.哈希沖突的概念 5.常用的哈希函數 Ⅰ、直接定址法 Ⅱ、平方取中法 Ⅲ、折疊法 Ⅳ、除留余數法 Ⅴ、位與法 6.哈希沖突的解決方案 Ⅰ、開放定址法 Ⅱ、鏈地址法 7.哈希表的初始化 8.哈希表的元素插…

歷年云南大學計算機復試上機真題

歷年云南大學計算機復試機試真題 在線評測&#xff1a;傳送門&#xff1a;pgcode.cn 喝飲料 題目描述 商店里有 n 中飲料&#xff0c;第 i 種飲料有 mi 毫升&#xff0c;價格為 wi。 小明現在手里有 x 元&#xff0c;他想吃盡量多的飲料&#xff0c;于是向你尋求幫助&#x…

[文獻閱讀] 可變形卷積DCN - Deformable Convolutional Networks

**文獻信息&#xff1a;**Deformable Convolutional Networks arxiv.org/abs/1703.06211 發表于ICCV 2017&#xff0c;提出了可變形卷積DCN&#xff08;Deformable ConvNets&#xff09; 摘要 卷積神經網絡&#xff08;CNN&#xff09;由于其構建模塊固定的幾何結構天然地局限…