CentOS 7 上安裝 MySQL 8.0.40 (二進制安裝)

要在 CentOS 7 上安裝 MySQL 8.0.40,按照以下步驟操作:

下載安裝包。

https://dev.mysql.com/downloads/mysql/
在這里插入圖片描述

下載之前查看系統c++版本
在這里插入圖片描述

解壓安裝包

首先,解壓下載的 .tar.xz 安裝包。

cd /path/to/your/downloads
tar -xvf mysql-8.0.40-linux-glibc2.28-x86_64.tar.xz

解壓后,會得到一個 mysql-8.0.40-linux-glibc2.28-x86_64 目錄。

移動到合適的位置

接下來,你可以將解壓后的目錄移動到你希望安裝 MySQL 的位置,通常是 /usr/local

sudo mv mysql-8.0.40-linux-glibc2.28-x86_64 /usr/local/mysql

創建 MySQL 用戶和組

為了安全性,MySQL 應該運行在專用的用戶和組下。

sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

創建 MySQL 數據目錄

接下來,創建數據存儲目錄,并給 MySQL 用戶設置適當的權限。

sudo mkdir /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql

配置環境變量

為了方便使用 MySQL 命令,你需要將 MySQL 的 bin 目錄添加到 PATH 環境變量中。編輯 /etc/profile 文件。

sudo vi /etc/profile

在文件末尾添加以下內容:

export PATH=$PATH:/usr/local/mysql/bin

保存并退出編輯器。然后執行以下命令使改動生效:

source /etc/profile

創建配置文件

touch /etc/my.cnf
[mysqld]                              
port=3306               
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock                   
max_connect_errors=10                         
character-set-server=utf8mb4                          
default-storage-engine=INNODB                               
user=root
#skip-grant-tables  [client]                                                     
port=3306                              
socket=/usr/local/mysql/data/mysql.sock                                                                
default-character-set=utf8mb4

備注:不要有空格,否則會找不到socket連接

初始化 MySQL 數據目錄

使用 MySQL 自帶的 mysqld 工具初始化數據目錄:

sudo /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --console --user=root

初始化成功后,會有一個臨時密碼

[root@localhost mysql]# ./bin/mysqld --defaults-file=/etc/my.cnf --initialize --console --user=root
2024-12-03T10:56:54.844764Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.40) initializing of server in progress as process 11446
2024-12-03T10:56:54.852440Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-12-03T10:56:55.144832Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-12-03T10:56:56.594319Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: FhN9Yk=/Cdus

刪除 mysql/data目錄即可重新初始化

創建 mysql.sock文件(重要,非常重要的一步)

cd  data/
touch mysql.sock

啟動mysql 服務

sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

查看mysql是否啟動

執行命令  ps -ef | grep mysql

在這里插入圖片描述

登錄 mysql 數據庫

sudo /usr/local/mysql/bin/mysql --socket=/usr/local/mysql/data/mysql.sock -u root -p

完成!

到此為止,你已經成功安裝 MySQL 8.0.40。

常用命令(擴展)

# 初始化
sudo /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --console --user=root#啟動服務
sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &#停止服務
sudo /usr/local/mysql/bin/mysqladmin -u root -p shutdown
#停止服務(二)
ps aux|grep mysql
kill <mysql有關的pid># 登錄mysql
sudo /usr/local/mysql/bin/mysql --socket=/usr/local/mysql/data/mysql.sock -u root -p

創建賬號并授權

# 進入mysql
use mysql# 用如下語句查看MySQL當前加密方式
select host,user,plugin from user;# 創建賬號test01、密碼test01, 設置密碼插件模式mysql_native_password,并允許該用戶從任何主機(即 %)進行連接
CREATE USER 'test01'@'%' IDENTIFIED WITH mysql_native_password BY 'test01';
# 如果你只希望該用戶能從本地(localhost)連接,可以將 '%' 改為 'localhost':
CREATE USER 'test01'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test01';# 授予權限。為  用戶授予合適的權限。如果你希望該用戶具有所有權限,可以使用以下命令:
GRANT ALL PRIVILEGES ON *.* TO 'test01'@'%' WITH GRANT OPTION;

忘記密碼,找回

  1. kill mysql服務
  2. 進入/etc/my.cnf
  3. 添加 在 [mysqld] 下面,添加一行 skip-grant-tables
  4. 重啟mysql:sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
  5. 無密碼,進入mysql。將登陸密碼設置為空。將密碼設置為空(此時還不能直接修改密碼,必須先設置為空,否則會報錯。 skip-grant-tables 模式下無法修改其他密碼,只能修改為空 )
use mysql; (使用mysql數據表)
update user set authentication_string='' where user='root';(將密碼置為空)
quit; (然后退出Mysql)
  1. kill mysql服務。 將/etc/my.cnf 添加的一行skip-grant-tables去掉, 再次啟動。
  2. 再次無密碼登錄
  3. 更新密碼,要使用mysql_native_password 插件模式,否則navicat可能鏈接不上
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234';
FLUSH PRIVILEGES;

修改加密模式

update user set plugin='mysql_native_password' where user='root';

進入mysql,use mysql,直接update加密模式,退出來,原密碼就無法登錄了

在Mysql 8版本中,必須分兩步來實現設置用戶權限

在Mysql 8版本中,不能使用

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'WITH GRANT OPTION;

這一行命令來設置用戶權限,必須分兩步來實現設置用戶權限【先創建用戶、在對該用戶分配用戶權限】,最后刷新權限

CREATE USER 'test2'@'%' IDENTIFIED WITH mysql_native_password BY 'test2';
GRANT ALL PRIVILEGES ON *.* TO 'test2'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

或者

CREATE USER 'test3'@'%' IDENTIFIED BY 'test3';
GRANT ALL PRIVILEGES ON *.* TO 'test3'@'%' WITH GRANT OPTION;
update user set plugin='mysql_native_password' where user='test3';
FLUSH PRIVILEGES;

然后外部就可以通過賬戶密碼訪問了。

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

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

相關文章

PHP語法學習(第六天)

&#x1f4a1;依照慣例&#xff0c;回顧一下昨天講的內容 PHP語法學習(第五天)主要講了PHP中的常量和運算符的運用。 &#x1f525; 想要學習更多PHP語法相關內容點擊“PHP專欄” 今天給大家講課的角色是&#x1f34d;菠蘿吹雪&#xff0c;“我菠蘿吹雪吹的不是雪&#xff0c;而…

Python Web 開發:使用 FastAPI 進行依賴注入與異常處理

Python Web 開發&#xff1a;使用 FastAPI 進行依賴注入與異常處理 目錄 &#x1f6e0;? 依賴注入與 FastAPI 高級特性?? 自定義異常類的實現與應用&#x1f6a8; 使用 HTTPException 處理常見錯誤&#x1f30d; 全局異常處理器的設計與實現?? 異常處理與 API 響應的整合…

免押租賃系統助力資源共享新模式開創便捷租賃體驗

內容概要 免押租賃系統&#xff0c;聽起來是不是很酷&#xff1f;這個新模式不僅僅是為了讓你少花點錢&#xff0c;它的到來簡直就是個革命&#xff01;以前&#xff0c;租東西時首先想到的就是那個令人心痛的押金&#xff0c;對吧&#xff1f;但現在&#xff0c;免押租賃系統…

oracle之用戶的相關操作

&#xff08;1&#xff09;創建用戶(sys用戶下操作) 簡單創建用戶如下&#xff1a; CREATE USER username IDENTIFIED BY password; 如果需要自定義更多的信息&#xff0c;如用戶使用的表空間等&#xff0c;可以使用如下&#xff1a; CREATE USER mall IDENTIFIED BY 12345…

第77期 | GPTSecurity周報

GPTSecurity是一個涵蓋了前沿學術研究和實踐經驗分享的社區&#xff0c;集成了生成預訓練Transformer&#xff08;GPT&#xff09;、人工智能生成內容&#xff08;AIGC&#xff09;以及大語言模型&#xff08;LLM&#xff09;等安全領域應用的知識。在這里&#xff0c;您可以找…

如何通過自學成長為一名后端開發工程師?

大家好&#xff0c;我是袁庭新。最近&#xff0c;有星友向我提出了一個很好的問題&#xff1a;如何通過自學成為一名后端開發工程師&#xff1f; 為了解答這個疑問&#xff0c;我特意制作了一個視頻來詳細分享我的看法和建議。 戳鏈接&#xff1a;如何通過自學成長為一名后端開…

Linux---對緩沖區的簡單理解--第一個系統程序

前序&#xff1a; 首先先理解一下什么是回車與換行&#xff1b;回車和換行是兩個概念&#xff0c;它們不是一個東西&#xff1b; 回車:光標回到開始&#xff1b;換行:換到下一行&#xff1b; 如下圖&#xff1a; 行緩沖區 如何理解緩沖區問題&#xff1f; 可以認為&#xff0…

力扣每日一題-999. 可以被一步捕獲的棋子數

題目 給定一個 8 x 8 的棋盤&#xff0c;只有一個 白色的車&#xff0c;用字符 R 表示。棋盤上還可能存在白色的象 B 以及黑色的卒 p。空方塊用字符 . 表示。車可以按水平或豎直方向&#xff08;上&#xff0c;下&#xff0c;左&#xff0c;右&#xff09;移動任意個方格直到它…

多模態大型語言模型MM-1.5采用數據驅動的方法,通過不斷優化數據組合提高模型性能

多模態大型語言模型MM-1.5采用數據驅動的方法&#xff0c;通過不斷優化數據組合提高模型性能 MM-1.5模型的設計核心在于其數據驅動的方法&#xff0c;這意味著模型的性能在很大程度上取決于所使用的數據類型和組合。這種方法的實施細節可以從以下幾個方面來展開&#xff1a; …

[Python學習日記-70] 元類

[Python學習日記-70] 元類 簡介 什么是元類 關鍵字 class 創建類的流程分析 自定義元類控制類的創建 自定義元類控制類的調用 自定義元類的屬性查找 自定義元類的應用與練習 簡介 在上一篇章當中我們已經了解了面向對象的各種內置函數了&#xff0c;本篇我們將講述“元類…

數據結構題庫11

第五章 樹和二叉樹 一、單項選擇題 1&#xff0e;關于二叉樹的下列說法正確的是 (1)。 (1)&#xff1a;A&#xff0e;二叉樹的度為2 B&#xff0e;二叉樹的度可以小于2 C&#xff0e;每一個結點的度都為2 D&#xff0e;至少有一個結點的度為 2&#xff0e;設深度為h(h>0)的二…

【學習路線】Java

Java基礎 基礎 基礎語法 面向對象 集合框架 JCF 進階 并發編程 JVM 企業級開發 框架 Spring Boot Spring Cloud 分布式 高性能 高可用 安全 基建 Docker 實戰 數據庫 MySQL Redis 計算機基礎 計算機組成原理 操作系統 計算機網絡 數據結構與算法 設計模式 參考&#xff1a;…

學生公寓智能限電系統的功能和作用

學生公寓智能限電系統?是一種用于管理和限制學生公寓用電的設備和技術&#xff0c;旨在確保用電安全、防止火災事故&#xff0c;并促進節能減排。以下是關于學生公寓智能限電系統的詳細介紹&#xff1a; 1、功能和作用 智能限電系統通過以下功能來管理和限制用電&#xff1a…

【開發語言】層次狀態機(HSM)介紹

層次狀態機&#xff08;Hierarchical State Machine, HSM&#xff09;&#xff0c;從基本原理、結構設計、實現方法以及如何結合 Qt 進行具體實現等方面進行分析。 1. 層次狀態機的基本原理 層次狀態機是一種用于管理復雜系統行為的狀態機模型&#xff0c;它通過將狀態組織成…

MYSQL PARTITIONING分區操作和性能測試

PARTITION OR NOT PARTITION IN MYSQl Bill Karwin says “In most circumstances, you’re better off using indexes instead of partitioning as your main method of query optimization.” According to RICK JAMES: “It is so tempting to believe that PARTITIONing wi…

深入解析 Loss 減少方式:mean和sum的區別及其在大語言模型中的應用 (中英雙語)

深入解析 Loss 減少方式&#xff1a;mean 和 sum 的區別及其在大語言模型中的應用 在訓練大語言模型&#xff08;Large Language Models, LLM&#xff09;時&#xff0c;損失函數&#xff08;Loss Function&#xff09;的處理方式對模型的性能和優化過程有顯著影響。本文以 re…

基于 AutoFlow 快速搭建基于 TiDB 向量搜索的本地知識庫問答機器人

導讀 本文將詳細介紹如何通過 PingCAP 開源項目 AutoFlow 實現快速搭建基于 TiDB 的本地知識庫問答機器人。如果提前準備好 Docker、TiDB 環境&#xff0c;整個搭建過程估計在 10 分鐘左右即可完成&#xff0c;無須開發任何代碼。 文中使用一篇 TiDB 文檔作為本地數據源作為示…

生信技能63 - 構建gnomAD變異位點的SQLite查詢數據庫

將數據量巨大的gnomAD數據庫,通過SQLite數據庫尋找gnomAD中存在的各種變異注釋信息(如等位基因計數,深度,次要等位基因頻率等),查詢300.000個變量的查詢需要大約40秒,通過染色體編號+位置+REF+ALT即可進行快速查詢。 1. gnomAD變異注釋VCF文件字段 gnomAD VCF各版本包…

【前端】將vue的方法掛載到window上供全局使用,也方便跟原生js做交互

【前端】將vue的方法掛載到window上供全局使用&#xff0c;也方便跟原生js做交互 <template><div><el-button click"start">調用方法</el-button></div> </template> <script> // import { JScallbackProc } from ./JScal…