最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ubuntu?22.04安裝mysql?8.0步驟與避坑指南

 更新時(shí)間:2023年12月06日 11:15:27   作者:BigDataToAI  
MySQL最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在WEB應(yīng)用方面MySQL是最好的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)用軟件之一,這篇文章主要給大家介紹了關(guān)于ubuntu?22.04安裝mysql?8.0步驟與避坑指南的相關(guān)資料,需要的朋友可以參考下

前言

MySQL 是一個(gè)開源數(shù)據(jù)庫(kù)管理系統(tǒng),可作為流行的 LAMP(Linux、Apache、MySQL、PHP/Python/Perl)堆棧的一部分安裝。 它實(shí)現(xiàn)了關(guān)系模型并使用結(jié)構(gòu)化查詢語(yǔ)言( SQL)來(lái)管理其數(shù)據(jù)。

本教程將介紹如何在 Ubuntu 22.04 服務(wù)器上安裝 MySQL 8.0 版。 通過完成它,你將擁有一個(gè)可用的關(guān)系數(shù)據(jù)庫(kù),并且可以使用它來(lái)構(gòu)建您的下一個(gè)網(wǎng)站或應(yīng)用程序。

安裝MySQL

在 Ubuntu 22.04 上,您可以使用 APT 包存儲(chǔ)庫(kù)安裝 MySQL。 在撰寫本文時(shí),默認(rèn) Ubuntu 存儲(chǔ)庫(kù)中可用的 MySQL 版本為 8.0.33 版。

sudo apt update
sudo apt install mysql-server
sudo systemctl start mysql.service

這些命令將安裝并啟動(dòng) MySQL,但不會(huì)提示設(shè)置密碼或進(jìn)行任何其他配置更改。

配置MySQL

對(duì)于 MySQL 的全新安裝,您需要運(yùn)行數(shù)據(jù)庫(kù)管理系統(tǒng)包含的安全腳本。 該腳本更改了一些不太安全的默認(rèn)選項(xiàng),例如不允許遠(yuǎn)程 root 登錄和刪除示例用戶。

警告:自 2022 年 7 月起,如果您在沒有進(jìn)一步配置的情況下運(yùn)行 mysql_secure_installation 腳本,將會(huì)發(fā)生錯(cuò)誤。 原因是此腳本將嘗試為安裝的根 MySQL 帳戶設(shè)置密碼,但默認(rèn)情況下在 Ubuntu 安裝上,此帳戶未配置為使用密碼進(jìn)行連接。

在 2022 年 7 月之前,此腳本會(huì)在嘗試設(shè)置根帳戶密碼并繼續(xù)執(zhí)行其余提示后靜默失敗。 然而,在撰寫本文時(shí),腳本將在您輸入并確認(rèn)密碼后返回以下錯(cuò)誤:

Output
 ... Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.

New password:

這將導(dǎo)致腳本進(jìn)入遞歸循環(huán),您只能通過關(guān)閉終端窗口才能退出。

由于 mysql_secure_installation 腳本執(zhí)行許多其他操作,這些操作對(duì)確保 MySQL 安裝安全很有用,因此仍然建議您在開始使用 MySQL 管理數(shù)據(jù)之前運(yùn)行它。 但是,為避免進(jìn)入此遞歸循環(huán),您需要首先調(diào)整 root MySQL 用戶的身份驗(yàn)證方式。

首先進(jìn)入MySQL終端

sudo mysql

然后運(yùn)行以下 ALTER USER 命令將 root 用戶的身份驗(yàn)證方法更改為使用密碼的方法。 以下示例將身份驗(yàn)證方法更改為 mysql_native_password:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

然后退出MySQL

exit

之后,您可以毫無(wú)問題地運(yùn)行 mysql_secure_installation 腳本。

以sudo權(quán)限運(yùn)行mysql_secure_installation

sudo mysql_secure_installation

這將引導(dǎo)您完成一系列提示,您可以在其中對(duì) MySQL 安裝的安全選項(xiàng)進(jìn)行一些更改。 第一個(gè)提示將詢問您是否要設(shè)置驗(yàn)證密碼插件,該插件可用于在將新 MySQL 用戶視為有效之前測(cè)試其密碼強(qiáng)度。

如果您選擇設(shè)置驗(yàn)證密碼插件,則您創(chuàng)建的任何使用密碼進(jìn)行身份驗(yàn)證的 MySQL 用戶都需要具有滿足您選擇的策略的密碼:

Output
Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
 2

無(wú)論您是否選擇設(shè)置驗(yàn)證密碼插件,下一個(gè)提示將是為 MySQL root 用戶設(shè)置密碼。 輸入并確認(rèn)您選擇的安全密碼:

Output
Please set the password for root here.


New password:

Re-enter new password:

請(qǐng)注意,即使您已經(jīng)為 root MySQL 用戶設(shè)置了密碼,該用戶當(dāng)前未配置為在連接到 MySQL shell 時(shí)使用密碼進(jìn)行身份驗(yàn)證。

如果您使用了驗(yàn)證密碼插件,您將收到有關(guān)新密碼強(qiáng)度的反饋。 然后腳本將詢問您是否要繼續(xù)使用剛剛輸入的密碼,或者是否要輸入一個(gè)新密碼。 假設(shè)您對(duì)剛剛輸入的密碼的強(qiáng)度感到滿意,請(qǐng)輸入 Y 以繼續(xù)腳本:

Output
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

從那里,您可以按 Y,然后按 ENTER 接受所有后續(xù)問題的默認(rèn)值。 這將刪除一些匿名用戶和測(cè)試數(shù)據(jù)庫(kù),禁用遠(yuǎn)程 root 登錄,并加載這些新規(guī)則,以便 MySQL 立即執(zhí)行您所做的更改。

注意:安全腳本完成后,您可以重新打開 MySQL 并將 root 用戶的身份驗(yàn)證方法改回默認(rèn)值 auth_socket。 要使用密碼以 root MySQL 用戶身份進(jìn)行身份驗(yàn)證,請(qǐng)運(yùn)行以下命令:

mysql -u root -p

然后使用此命令返回使用默認(rèn)身份驗(yàn)證方法:

這意味著您可以使用 sudo mysql 命令再次以 root 用戶身份連接到 MySQL。

腳本完成后,您的 MySQL 安裝將得到保護(hù)。 您現(xiàn)在可以繼續(xù)使用 MySQL 客戶端創(chuàng)建專用數(shù)據(jù)庫(kù)用戶。

創(chuàng)建專用 MySQL 用戶并授予權(quán)限

安裝后,MySQL 會(huì)創(chuàng)建一個(gè) root 用戶帳戶,您可以使用它來(lái)管理數(shù)據(jù)庫(kù)。 該用戶對(duì) MySQL 服務(wù)器具有完全權(quán)限,這意味著它對(duì)每個(gè)數(shù)據(jù)庫(kù)、表、用戶等具有完全控制權(quán)。 因此,最好避免在管理功能之外使用此帳戶。 此步驟概述了如何使用 root MySQL 用戶創(chuàng)建新用戶帳戶并授予其權(quán)限。

一旦您有權(quán)訪問 MySQL 終端,您就可以使用 CREATE USER 語(yǔ)句創(chuàng)建一個(gè)新用戶。 這些遵循以下一般語(yǔ)法:

CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';

在 CREATE USER 之后,您指定一個(gè)用戶名。 緊接著是一個(gè) @ 符號(hào),然后是該用戶將從中連接的主機(jī)名。 如果您只打算從您的 Ubuntu 服務(wù)器本地訪問此用戶,您可以指定 localhost。 將用戶名和主機(jī)用單引號(hào)括起來(lái)并不總是必要的,但這樣做有助于防止錯(cuò)誤。

CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';

某些版本的 PHP 存在一個(gè)已知問題,會(huì)導(dǎo)致 caching_sha2_password 出現(xiàn)問題。 如果您計(jì)劃將此數(shù)據(jù)庫(kù)與 PHP 應(yīng)用程序(例如 phpMyAdmin)一起使用,您可能希望創(chuàng)建一個(gè)用戶,該用戶將使用較舊但仍然安全的 mysql_native_password 插件進(jìn)行身份驗(yàn)證:

CREATE USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

如果您不確定,您始終可以創(chuàng)建一個(gè)使用 caching_sha2_plugin 進(jìn)行身份驗(yàn)證的用戶,然后稍后使用此命令對(duì)其進(jìn)行更改:

ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

創(chuàng)建新用戶后,您可以授予他們適當(dāng)?shù)臋?quán)限。 授予用戶權(quán)限的一般語(yǔ)法如下(需要替換PRIVILEGE為CREATE等):

GRANT PRIVILEGE ON database.table TO 'username'@'host'  WITH GRANT OPTION;

此示例語(yǔ)法中的 PRIVILEGE 值定義允許用戶對(duì)指定數(shù)據(jù)庫(kù)和表執(zhí)行的操作。 您可以在一個(gè)命令中向同一用戶授予多個(gè)權(quán)限,方法是用逗號(hào)分隔每個(gè)權(quán)限。 您還可以通過輸入星號(hào) (*) 代替數(shù)據(jù)庫(kù)和表名稱來(lái)全局授予用戶權(quán)限。 在 SQL 中,星號(hào)是用于表示“所有”數(shù)據(jù)庫(kù)或表的特殊字符。

為了說明這一點(diǎn),以下命令授予用戶創(chuàng)建、更改和刪除數(shù)據(jù)庫(kù)、表和用戶的全局權(quán)限,以及從服務(wù)器上的任何表插入、更新和刪除數(shù)據(jù)的權(quán)力。 它還授予用戶使用 SELECT 查詢數(shù)據(jù)、使用 REFERENCES 關(guān)鍵字創(chuàng)建外鍵以及使用 RELOAD 權(quán)限執(zhí)行 FLUSH 操作的能力。 但是,您應(yīng)該只授予用戶他們需要的權(quán)限,因此請(qǐng)根據(jù)需要隨意調(diào)整您自己用戶的權(quán)限。

運(yùn)行此 GRANT 語(yǔ)句,將 sammy 替換為您自己的 MySQL 用戶名,以將這些權(quán)限授予您的用戶:

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, INDEX, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

請(qǐng)注意,此語(yǔ)句還包括 WITH GRANT OPTION。 這將允許您的 MySQL 用戶將其擁有的任何權(quán)限授予系統(tǒng)上的其他用戶。

警告:一些用戶可能想授予他們的 MySQL 用戶 ALL PRIVILEGES 權(quán)限,這將為他們提供類似于 root 用戶權(quán)限的廣泛超級(jí)用戶權(quán)限,如下所示:

GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

不應(yīng)輕易授予如此廣泛的權(quán)限,因?yàn)槿魏斡袡?quán)訪問此 MySQL 用戶的人都將完全控制服務(wù)器上的每個(gè)數(shù)據(jù)庫(kù)。

在此之后,最好運(yùn)行 FLUSH PRIVILEGES 命令。 這將釋放服務(wù)器由于前面的 CREATE USER 和 GRANT 語(yǔ)句而緩存的所有內(nèi)存:

FLUSH PRIVILEGES;

然后你就可以推出mysql終端

exit

將來(lái),要以新的 MySQL 用戶身份登錄,您將使用如下命令:

mysql -u sammy -p

-p 標(biāo)志將導(dǎo)致 MySQL 客戶端提示您輸入 MySQL 用戶的密碼以進(jìn)行身份驗(yàn)證。

最后,讓我們測(cè)試一下MySQL的安裝。

測(cè)試MySQL

不管你如何安裝它,MySQL 應(yīng)該已經(jīng)自動(dòng)開始運(yùn)行了。 要對(duì)此進(jìn)行測(cè)試,請(qǐng)檢查其狀態(tài)。

systemctl status mysql.service

輸出內(nèi)容如下所示:

● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-06-13 15:43:21 CST; 35min ago
    Process: 248356 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
   Main PID: 248364 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 18804)
     Memory: 371.1M
        CPU: 10.291s
     CGroup: /system.slice/mysql.service
             └─248364 /usr/sbin/mysqld

如果 MySQL 沒有運(yùn)行,您可以使用 sudo systemctl start mysql 啟動(dòng)它。

對(duì)于額外的檢查,您可以嘗試使用 mysqladmin 工具連接到數(shù)據(jù)庫(kù),這是一個(gè)允許您運(yùn)行管理命令的客戶端。 例如,此命令表示以名為 sammy (-u sammy) 的 MySQL 用戶身份連接,提示輸入密碼 (-p),并返回版本。 請(qǐng)務(wù)必將 sammy 更改為您的專用 MySQL 用戶的名稱,并在出現(xiàn)提示時(shí)輸入該用戶的密碼:

sudo mysqladmin -p -u sammy version

以下是輸出示例:

mysqladmin  Ver 8.0.33-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))
Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version    8.0.33-0ubuntu0.22.04.2
Protocol version  10
Connection    Localhost via UNIX socket
UNIX socket    /var/run/mysqld/mysqld.sock
Uptime:      37 min 20 sec

Threads: 2  Questions: 41  Slow queries: 0  Opens: 199  Flush tables: 3  Open tables: 118  Queries per second avg: 0.018

這意味著 MySQL 已啟動(dòng)并正在運(yùn)行。

結(jié)論

至此,您現(xiàn)在已經(jīng)在服務(wù)器上安裝了基本的 MySQL 設(shè)置。

到此這篇關(guān)于ubuntu 22.04安裝mysql 8.0步驟與避坑指南的文章就介紹到這了,更多相關(guān)ubuntu22.04安裝mysql8.0內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL?EXPLAIN中的key_len索引使用實(shí)戰(zhàn)解析

    MySQL?EXPLAIN中的key_len索引使用實(shí)戰(zhàn)解析

    在MySQL執(zhí)行計(jì)劃中,key_len表示查詢實(shí)際使用索引的字節(jié)長(zhǎng)度,今天通過本文給大家介紹MySQL?EXPLAIN中的key_len索引使用實(shí)戰(zhàn)解析,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • MySQL基于java實(shí)現(xiàn)備份表操作

    MySQL基于java實(shí)現(xiàn)備份表操作

    這篇文章主要介紹了MySQL基于java實(shí)現(xiàn)備份表操作,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • MySQL?INSERT?導(dǎo)致的死鎖問題分析及解決方案

    MySQL?INSERT?導(dǎo)致的死鎖問題分析及解決方案

    本文分析MySQL8.4.6中并發(fā)INSERT導(dǎo)致的死鎖,指出因間隙鎖(由外鍵約束和主鍵UUID引發(fā))及頁(yè)分裂操作形成循環(huán)等待,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • MySQL Join關(guān)聯(lián)查詢的幾種實(shí)現(xiàn)方式優(yōu)化小結(jié)

    MySQL Join關(guān)聯(lián)查詢的幾種實(shí)現(xiàn)方式優(yōu)化小結(jié)

    在MySQL日常開發(fā)中,JOIN關(guān)聯(lián)查詢是高頻操作,但相同的業(yè)務(wù)需求,不同的關(guān)聯(lián)方式可能導(dǎo)致數(shù)倍的性能差異,下面就來(lái)詳細(xì)的介紹一下MySQL Join關(guān)聯(lián)查詢的幾種實(shí)現(xiàn)方式,感興趣的可以了解一下
    2026-04-04
  • 一文詳解MySQL8.0的索引新特性

    一文詳解MySQL8.0的索引新特性

    MySQL中的索引可以為提高我們的查詢效率,相比較于低版本, MySQL 8.0中針對(duì)索引做了不少的優(yōu)化,本文主要給大家分享一些MySQL8.0索引的新特性,希望大家可以在日常的開發(fā)中根據(jù)實(shí)際場(chǎng)景用起來(lái)
    2023-07-07
  • MYSQL 無(wú)法識(shí)別中文的永久解決方法

    MYSQL 無(wú)法識(shí)別中文的永久解決方法

    多數(shù)情況下,mysql在剛剛安裝時(shí)是不支持中文的,這是由于編碼的問題,那么如何解決這個(gè)方法,本文我們就來(lái)詳細(xì)的了解一下
    2021-06-06
  • MySQL中如何增加字段SQL語(yǔ)句

    MySQL中如何增加字段SQL語(yǔ)句

    這篇文章主要介紹了MySQL中如何增加字段SQL語(yǔ)句問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • MySQL中OR條件查詢引發(fā)索引失效的場(chǎng)景及解決方案

    MySQL中OR條件查詢引發(fā)索引失效的場(chǎng)景及解決方案

    這篇文章主要為大家詳細(xì)介紹了MySQL中OR條件查詢引發(fā)索引失效的場(chǎng)景及解決方案,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-10-10
  • Mysql中的嵌套子查詢問題

    Mysql中的嵌套子查詢問題

    這篇文章主要介紹了Mysql嵌套子查詢,子查詢就是指的在一個(gè)完整的查詢語(yǔ)句之中,嵌套若干個(gè)不同功能的小查詢,從而一起完成復(fù)雜查詢的一種編寫形式,為了讓讀者更加清楚子查詢的概念,感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • mysql分頁(yè)時(shí)offset過大的Sql優(yōu)化經(jīng)驗(yàn)分享

    mysql分頁(yè)時(shí)offset過大的Sql優(yōu)化經(jīng)驗(yàn)分享

    mysql分頁(yè)是我們?cè)陂_發(fā)經(jīng)常遇到的一個(gè)功能,最近在實(shí)現(xiàn)該功能的時(shí)候遇到一個(gè)問題,所以這篇文章主要給大家介紹了關(guān)于mysql分頁(yè)時(shí)offset過大的Sql優(yōu)化經(jīng)驗(yàn),文中介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起看看吧。
    2017-08-08

最新評(píng)論

和田县| 宣城市| 桑植县| 古交市| 贵阳市| 九台市| 连江县| 宜良县| 姚安县| 元江| 无为县| 延川县| 新竹县| 昌平区| 环江| 灵石县| 吕梁市| 贵南县| 甘谷县| 察哈| 丰镇市| 大理市| 峡江县| 闻喜县| 大方县| 神农架林区| 高陵县| 洛川县| 玉山县| 宝山区| 北川| 宜都市| 黑山县| 左贡县| 万安县| 乳源| 弋阳县| 英吉沙县| 广平县| 平昌县| 交城县|