Ubuntu安裝MySQL步驟及注意事項

一、安裝前準備

? ? ? ? 1. 系統更新:在安裝 MySQL 之前,確保你的 Ubuntu 系統軟件包是最新的,這能避免因軟件包版本問題導致的安裝錯誤,并獲取最新的安全補丁。打開終端,執行以下兩條命令:

sudo apt update
sudo apt upgrade -y

????????sudo apt update命令用于更新軟件包索引,讓系統知曉可用軟件包的最新版本信息。sudo apt upgrade -y則會自動安裝系統中已安裝軟件包的可用更新,-y參數表示自動回答 “是”,避免逐個確認的麻煩。

? ? ? ? 2. 檢查是否已安裝 MySQL:有些情況下,系統可能已經預裝了 MySQL 或者之前安裝過殘留文件。通過以下命令檢查:

dpkg -l | grep mysql

????????如果有相關軟件包列出,可能需要先卸載。例如,若要卸載mysql-server,可執行:

sudo apt - get remove mysql - server

????????若要徹底清除包括配置文件在內的所有內容,使用:

sudo apt - get purge mysql - server

????????卸載后,還需手動刪除可能殘留的相關目錄,如/etc/mysql和/var/lib/mysql等(操作時需謹慎,確認無重要數據留存)。

二、安裝 MySQL

????????1.使用 Ubuntu 官方倉庫安裝

sudo apt install -y mysql - server

????????該命令會從 Ubuntu 官方軟件源下載并安裝 MySQL 服務器及其依賴項。安裝過程中,系統會提示設置root用戶的密碼。請設置一個強密碼,包含字母(大小寫)、數字和特殊字符,以增強安全性。例如:MyS3cur3P@ssw0rd!

sudo apt install -y libmysqlclient - dev
  • 安裝 MySQL 服務器軟件包:在終端執行以下命令:
  • 安裝 MySQL 開發包(可選):若你計劃進行 MySQL 相關開發工作,還需安裝開發包,它包含用于開發的頭文件和動態庫文件。執行:

????????2.使用 MySQL 官方倉庫安裝(獲取最新版本)

sudo apt update

然后安裝 MySQL 服務器:

sudo apt install -y mysql - server
  • 下載并添加 MySQL APT 倉庫
wget https://dev.mysql.com/get/mysql - apt - config_0.8.26 - 1_all.deb
sudo dpkg -i mysql - apt - config_0.8.26 - 1_all.deb

安裝過程中,會彈出一個配置界面,可根據需求選擇要安裝的 MySQL 版本系列(如 MySQL 8.0、MySQL 5.7 等)以及其他相關選項,一般保持默認即可。

  • 首先,訪問MySQL APT?Repository 頁面,找到最新版本的mysql - apt - config包下載鏈接。例如,當前最新版本為mysql - apt - config_0.8.26 - 1_all.deb,使用wget命令下載:
  • 下載完成后,安裝該配置包:
  • 更新 APT 倉庫并安裝 MySQL 服務器:添加完 MySQL 官方倉庫后,更新系統軟件包索引:

三、啟動與配置 MySQL 服務

????????1.啟動 MySQL 服務:安裝完成后,MySQL 服務默認自動啟動。但如果安裝后未自動啟動,或者你手動停止了服務,可通過以下命令啟動:

sudo systemctl start mysql

????????2.設置開機自啟:為確保系統每次啟動時 MySQL 服務都能自動運行,執行:

sudo systemctl enable mysql

????????3.檢查服務狀態:使用以下命令查看 MySQL 服務是否正常運行:

sudo systemctl status mysql

????????若服務正常運行,輸出中會顯示Active: active (running)等字樣。例如:

● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2025 - 04 - 18 10:30:00 UTC; 1min ago
Main PID: 1234 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 4687)
Memory: 200.0M
CGroup: /system.slice/mysql.service
└─1234 /usr/sbin/mysqld

四、MySQL 初始設置與安全加固

  1. 處理初始自動生成的用戶名和密碼(部分版本適用):在某些最新版本的 MySQL 安裝過程中,系統會自動為root用戶生成一個臨時密碼。需找到該臨時密碼并進行更改。
sudo grep 'temporary password' /var/log/mysql/error.log

輸出類似如下:

(2025 - 04 - 18T10:30:00.123456Z) (Note) A temporary password is generated for root@localhost: xXxXxXxXxXx

記下該臨時密碼(例如xXxXxXxXxXx)。

sudo mysql_secure_installation

執行該腳本后,會被提示執行以下操作:

  • 查找臨時密碼:安裝完成后,MySQL 會將臨時密碼記錄在日志文件中。使用以下命令查看日志并獲取臨時密碼:
  • 運行安全性腳本:為提高 MySQL 的安全性,并修改初始密碼,建議運行官方提供的安全性腳本:
  • 輸入當前root密碼:使用上一步驟中獲取的臨時密碼。
  • 設置新root密碼:根據提示設置一個強密碼,例如包含大寫字母、小寫字母、數字和特殊字符的組合,如MyNewP@ss123!。
  • 移除匿名用戶:建議選擇移除,以提高安全性。
  • 禁止遠程root登錄:建議禁止,減少安全風險。
  • 移除測試數據庫:建議移除,避免不必要的安全隱患。
  • 重新加載權限表:選擇 “是” 以應用更改。

????????2. 手動修改root初始密碼:如果不想使用mysql_secure_installation腳本,也可手動修改root密碼。

sudo mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!';
FLUSH PRIVILEGES;

將YourNewStrongPassword!替換為你希望設置的新密碼。

sudo mysql -u root -p

輸入新密碼后,應能成功登錄。

  • 登錄 MySQL:使用當前root密碼(如果是新安裝且未設置過密碼,可能為空或使用臨時密碼)登錄 MySQL:
  • 修改root密碼:在 MySQL 命令行中執行以下命令以修改root用戶的密碼:
  • 驗證密碼修改:退出 MySQL 并重新登錄以驗證新密碼是否生效:

五、驗證安裝

  1. 登錄 MySQL:使用設置好的root密碼登錄 MySQL:
mysql -u root -p

輸入密碼后,若成功登錄,會進入 MySQL 命令行界面,顯示類似如下提示符:

mysql>

????????2.檢查 MySQL 版本:在 MySQL 命令行中運行以下命令查看版本信息:

SELECT VERSION();

輸出結果類似:

+-----------+
| VERSION() |
+-----------+
| 8.0.33 |
+-----------+

這表明 MySQL 已成功安裝并運行。

六、配置防火墻(可選)

如果你的 Ubuntu 系統啟用了防火墻,且需要通過網絡訪問 MySQL,確保防火墻允許 MySQL 服務的端口(默認為 3306)的流量。

  1. 使用 UFW 防火墻
sudo ufw allow 'MySQL'

或者更具體地允許 3306 端口的 TCP 流量:

sudo ufw allow 3306/tcp
sudo ufw reload
  • 允許 MySQL 服務通過防火墻:執行以下命令:
  • 重新加載防火墻規則:使設置生效:

????????2.使用其他防火墻(如 iptables):具體配置命令因防火墻規則管理方式而異。例如,使用iptables允許 3306 端口的 TCP 流量:

sudo iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

????????同時,可能需要保存iptables規則,以便系統重啟后仍然生效。不同系統保存iptables規則的方式略有不同,例如在某些系統中可使用iptables - save > /etc/iptables/rules.v4命令保存規則。

七、注意事項

  1. 字符集設置:MySQL 默認字符集可能不符合需求,尤其是在處理包含非 ASCII 字符(如中文、日文等)的數據時。建議在安裝完成后,修改 MySQL 配置文件(通常位于/etc/mysql/mysql.conf.d/mysqld.cnf)來設置合適的字符集。例如,在文件中添加或修改以下內容:

[mysqld]

character - set - server = utf8mb4

collation - server = utf8mb4_unicode_ci

然后重啟 MySQL 服務使設置生效:

sudo systemctl restart mysql

????????注意,要先設置字符集再創建數據庫和導入數據,否則數據庫的字符集不會根據默認字符集改變而改變。

????????2.遠程訪問設置:默認情況下,MySQL 只允許本地訪問。如果需要從遠程主機訪問 MySQL,除了配置防火墻允許 3306 端口流量外,還需修改 MySQL 的配置文件。在/etc/mysql/mysql.conf.d/mysqld.cnf文件中,找到并注釋掉或修改bind - address這一行,將其值改為0.0.0.0,表示允許來自任何 IP 地址的連接(生產環境中應謹慎設置,建議只允許受信任的 IP 地址連接):

#bind - address = 127.0.0.1
bind - address = 0.0.0.0

????????然后重啟 MySQL 服務。此外,還需在 MySQL 中為遠程訪問用戶授權,例如創建一個新用戶并授予其遠程訪問權限:

CREATE USER 'new_user'@'%' IDENTIFIED BY 'new_password';
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'%';
FLUSH PRIVILEGES;

這里new_user為新用戶名,new_password為密碼,%表示允許從任何主機連接。

????????3.備份與恢復:定期備份 MySQL 數據庫至關重要,以防止數據丟失。可使用mysqldump命令進行數據庫備份。例如,備份整個數據庫:

mysqldump -u root -p your_database > backup.sql

其中your_database為要備份的數據庫名稱,backup.sql為備份文件名稱。恢復備份時,可使用以下命令:

mysql -u root -p your_database < backup.sql

????????4.軟件包更新與兼容性:定期更新 MySQL 軟件包以獲取最新功能和安全補丁。但在更新前,務必做好數據備份,并在測試環境中先進行更新測試,確保新版本與現有應用程序兼容,避免因軟件包更新導致系統或應用程序出現問題。

????????通過以上步驟和注意事項,你應該能夠順利在 Ubuntu 系統上安裝、配置和使用 MySQL 數據庫,并保障其安全性和穩定性。

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

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

相關文章

【愚公系列】《Python網絡爬蟲從入門到精通》054-Scrapy 文件下載

&#x1f31f;【技術大咖愚公搬代碼&#xff1a;全棧專家的成長之路&#xff0c;你關注的寶藏博主在這里&#xff01;】&#x1f31f; &#x1f4e3;開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主&#xff01; &#x1f…

2025最新︱中國信通院靜態應用程序安全測試(SAST)工具能力評估,懸鏡安全靈脈AI通過評估!

背景 研發運營安全&#xff08;DevSecOps&#xff09;從研發運營&#xff08;DevOps&#xff09;的概念延伸和演變而來&#xff0c;其核心理念是將安全貫穿從開發到運營的軟件開發生命周期的每一個環節&#xff0c;在每個階段自動實施安全措施&#xff0c;從而實現快速開發交付…

辛格迪客戶案例 | 浙江高跖醫藥委托生產質量管理協同(OWL MAH)項目

一、案例概述 浙江高跖醫藥科技股份有限公司是一家集“研、產、銷”為一體的專業化藥品持證企業。高跖醫藥自成立之初就建立并運行著一套相對完善的質量管理體系&#xff0c;涵蓋了藥品的研發、生產監管及銷售。高跖醫藥于2022年選擇實施了辛格迪的“委托生產質量管理協同解決…

【NLP 65、實踐 ? 基于Agent優化文章】

羈絆由我而起&#xff0c;痛苦也由我承擔 —— 25.4.18 一、?【核心函數】定義大模型調用函數 call_large_model prompt&#xff1a;用戶傳入的提示詞&#xff08;如 “請分析這篇作文的主題”&#xff09;&#xff0c;指導模型執行任務 client&#xff1a;Zhipu…

【鋰電池SOH估計】BP神經網絡鋰電池健康狀態估計,鋰電池SOH估計(Matlab完整源碼和數據)

目錄 效果一覽程序獲取程序內容研究內容基于BP神經網絡的鋰電池健康狀態估計研究摘要關鍵詞1. 引言1.1 研究背景1.2 研究意義1.3 研究目標2. 文獻綜述2.1 鋰電池SOH估計理論基礎2.2 傳統SOH估計方法2.3 基于BP神經網絡的SOH估計研究進展2.4 研究空白與創新點3. BP神經網絡原理3…

2025第十六屆藍橋杯python B組滿分題解(詳細)

目錄 前言 A: 攻擊次數 解題思路&#xff1a; 代碼&#xff1a; B: 最長字符串 解題思路&#xff1a; 代碼&#xff1a; C: LQ圖形 解題思路&#xff1a; 代碼&#xff1a; D: 最多次數 解題思路&#xff1a; 代碼&#xff1a; E: A * B Problem 解題思路&…

第十二節:原理深挖-React Fiber架構核心思想

鏈表結構、時間切片&#xff08;Time Slicing&#xff09; 優先級調度實現&#xff08;如用戶輸入>網絡請求&#xff09; React Fiber架構深度解析&#xff1a;從鏈表到優先級調度的革命性升級 一、Fiber架構核心設計思想 React Fiber是React 16的底層協調算法重構&#x…

你學會了些什么211201?--http基礎知識

概念 HTTP–Hyper Text Transfer Protocol&#xff0c;超文本傳輸協議&#xff1b;是一種建立在TCP上的無狀態連接&#xff08;短連接&#xff09;。 整個基本的工作流程是&#xff1a;客戶端發送一個HTTP請求&#xff08;Request &#xff09;&#xff0c;這個請求說明了客戶端…

MCU開發學習記錄8 - 基本定時器學習與實踐(HAL庫) - 定時器DMA循環模式修改ARR值、定時器中斷方式修改ARR值 - STM32CubeMX

名詞解釋&#xff1a; TRGO&#xff1a;Trigger Out General Purpose Output ARR&#xff1a;Auto-reload PSC&#xff1a;Prescaler CNT&#xff1a;Counter EGR&#xff1a;event generation register 本文將介紹基本定時器的概念、相關函數以及STM32CubeMX生成定時器的配置…

考研系列-計算機網絡沖刺考點匯總(上)

寫在前面 本文將總結王道408考研課程的計算機網絡沖刺考點的第一章到第三章內容&#xff08;計算機網絡體系結構、物理層、數據鏈路層&#xff09;。【圖片較多&#xff0c;加載需要時間&#xff0c;可以提前打開加載~~】 第一章、計算機網絡體系結構 注意&#xff1a;PCI(頭部…

設計模式每日硬核訓練 Day 14:組合模式(Composite Pattern)完整講解與實戰應用

&#x1f504; 回顧 Day 13&#xff1a;橋接模式小結 在 Day 13 中&#xff0c;我們學習了橋接模式&#xff08;Bridge Pattern&#xff09;&#xff1a; 用于將“抽象”與“實現”分離&#xff0c;適用于雙維度變化場景&#xff08;如圖形類型 渲染方式&#xff09;。它強調…

訊聯桌面TV版apk下載-訊聯桌面安卓電視版免費下載安裝教程

在智能電視的使用過程中&#xff0c;一款好用的桌面應用能極大提升我們的使用體驗。訊聯桌面 TV 版就是這樣一款備受關注的應用&#xff0c;它可以讓安卓電視擁有更個性化、便捷的操作界面。今天&#xff0c;就為大家詳細介紹訊聯桌面 TV 版 apk 的免費下載安裝教程。 一、下載…

Nginx知識點

Nginx發展歷史 Nginx 是由俄羅斯程序員 Igor Sysoev 開發的高性能開源 Web 服務器、反向代理服務器和負載均衡器 &#xff0c;其歷史如下&#xff1a; 起源與早期開發&#xff08;2002 - 2004 年&#xff09; 2002 年&#xff0c;當時 Igor Sysoev 在為俄羅斯門戶網站 Rambl…

uview1.0 tabs組件放到u-popup中在微信小程序中滑塊樣式錯亂

解決思路 重新計算布局信息&#xff1a;在彈窗顯示后重新調用 init 方法來計算組件的布局信息。使用 nextTick&#xff1a;保證在視圖更新之后再進行布局信息的計算。 <u-tabs ref"tabsRef" ></u-tabs> makeClick(){this.makeShowtruethis.$nextTick…

騰訊一面-軟件開發實習-PC客戶端開發方向

1.自我介紹就不多贅述了 2. 請介紹一下你的項目經歷 - 介紹了專輯鑒賞項目&#xff0c;前端使用html語言編寫&#xff0c;后端基于http協議使用C語言進行網頁開發。此外&#xff0c;還提及項目中涉及處理多線程問題以及做過內存池管理項目。 3. 項目中HTTP協議是使用庫實現的…

[數據可視化] Datagear使用心得:從數據整備到可視化聯動實踐

Datagear 是一款功能強大的數據可視化與報表工具&#xff0c;在日常數據分析與展示過程中&#xff0c;能有效幫助用戶構建交互式報表與面板。本文結合實際使用場景&#xff0c;總結了在 Datagear 平臺上關于元數據整備、Board 面板設計、圖表嵌入等方面的使用經驗&#xff0c;供…

【音視頻】MP4解封裝

一、概述 實現了讀取mp4文件&#xff0c;提取出h264和aac文件&#xff0c;可以直接播放 二、實現過程 準備文件 在build路徑下添加mp4文件 同時&#xff0c;添加main函數參數&#xff0c;表示輸入文件和輸出文件 打開文件 打開輸入文件&#xff0c;初始化格式上下文 char…

idea2024.1雙擊快捷方式打不開

idea2024.1突然雙擊快捷方式打不開&#xff0c;使用管理員運行也打不開 在安裝的idea路徑下的bin目錄下雙擊打開idea.bat文件&#xff0c;要是打不開使用txt格式打開&#xff0c;打開后在最后一行加上pause&#xff0c;之后保存。 看看報錯信息是不是有一個initializedExcept…

【錯誤記錄】Windows 命令行程序循環暫停問題分析 ( 設置 “ 命令記錄 “ 選項 | 啟用 “ 丟棄舊的副本 “ 選項 | 將日志重定向到文件 )

文章目錄 一、報錯信息二、問題分析1、Windows 命令行的緩沖區機制2、命令記錄設置 三、解決方案1、設置 " 命令記錄 " 選項2、將日志重定向到文件 一、報錯信息 Java 程序中 , 設置 無限循環 , 每次循環 休眠 10 秒后 , 再執行程序邏輯 , 在命令行中打印日志信息 ; …

STM32H5開發陀螺儀LSM6DSV16X(1)----輪詢獲取陀螺儀數據

STM32H5開發陀螺儀LSM6DSV16X.1--輪詢獲取陀螺儀數據 概述視頻教學樣品申請源碼下載硬件準備參考程序通信模式管腳定義IIC通信模式速率新建工程工程模板保存工程路徑芯片配置工程模板選擇時鐘設置UART配置UART屬性配置設置e2studio堆棧e2studio的重定向printf設置R_SCI_UART_Op…