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

CentOS?7/8/9上安裝?MySQL?8.0+的方法完整指南

 更新時(shí)間:2025年11月19日 09:48:07   作者:LumenL1u  
本文提供兩種在?CentOS?7/8/9?系統(tǒng)上安裝?MySQL?8.0?或更高版本的官方推薦方法,即使用?Yum?包管理器(適合新手)?和?手動(dòng)部署通用二進(jìn)制包(適合高級(jí)用戶(hù)),大家可以根據(jù)需要進(jìn)行選擇

一、流程圖

二、安裝前的準(zhǔn)備工作

在開(kāi)始安裝之前,建議你先完成以下步驟:

更新系統(tǒng)軟件包: 更新系統(tǒng),確保所有軟件包都是最新?tīng)顟B(tài)。(對(duì)于啟用 dnf 的系統(tǒng),請(qǐng)?jiān)诿钪袑?yum 替換為 dnf

yum update

檢查是否已安裝 MySQL:執(zhí)行以下命令檢查

yum list installed | grep mysql
yum list installed | grep mariadb

卸載:如果存在舊版本,建議卸載以避免沖突。

yum remove 包名

清理殘留文件:卸載后建議刪除相關(guān)配置文件和數(shù)據(jù)目錄。

# 刪除配置文件
rm -rf /etc/my.cnf

# 刪除數(shù)據(jù)目錄(注意:會(huì)刪除所有數(shù)據(jù))
rm -rf /var/lib/mysql

# 刪除日志文件
rm -rf /var/log/localhost.log

三、使用包管理器安裝(簡(jiǎn)單,易管理)

1.添加 MySQL Yum 存儲(chǔ)庫(kù)

從 MySQL Yum 存儲(chǔ)庫(kù)頁(yè)面 下載它。上傳到服務(wù)器后執(zhí)行(對(duì)于啟用 dnf 的系統(tǒng),請(qǐng)?jiān)诿钪袑?yum 替換為 dnf

yum localinstall mysql84-community-release-el9-1.noarch.rpm

您可以通過(guò)以下命令檢查 MySQL Yum 存儲(chǔ)庫(kù)是否已成功添加并啟用

yum repolist enabled | grep mysql.*-community

2. 禁用默認(rèn)的 MySQL 模塊

(僅限 EL8 系統(tǒng)) 基于 EL8 的系統(tǒng)(例如 RHEL8 和 Oracle Linux 8)包含一個(gè)默認(rèn)情況下啟用的 MySQL 模塊。

yum module disable mysql

3. 安裝 MySQL

通過(guò)以下命令安裝 MySQL

yum install mysql-community-server

這將安裝 MySQL 服務(wù)器軟件包 (mysql-community-server),以及運(yùn)行服務(wù)器所需組件的軟件包,包括客戶(hù)端軟件包 (mysql-community-client)、客戶(hù)端和服務(wù)器的通用錯(cuò)誤消息和字符集 (mysql-community-common) 以及共享客戶(hù)端庫(kù) (mysql-community-libs)。

4. 啟動(dòng) MySQL 服務(wù)器

使用以下命令啟動(dòng) MySQL 服務(wù)器。

systemctl start mysqld

您可以使用以下命令檢查 MySQL 服務(wù)器的狀態(tài)。

systemctl status mysqld

如果操作系統(tǒng)啟用了 systemd,則應(yīng)使用標(biāo)準(zhǔn)的 systemctl(或者,使用參數(shù)反轉(zhuǎn)的 service)命令,例如 stop、startstatus 和 restart 來(lái)管理 MySQL 服務(wù)器服務(wù)。 mysqld 服務(wù)默認(rèn)情況下處于啟用狀態(tài),并且在系統(tǒng)重啟時(shí)啟動(dòng)。

四、手動(dòng)安裝二進(jìn)制包(難,但更靈活)

1. MySQL Linux 通用二進(jìn)制分發(fā)目錄

目錄目錄內(nèi)容
binmysqld 服務(wù)器、客戶(hù)端和實(shí)用程序
docsInfo 格式的 MySQL 手冊(cè)
manUnix 手冊(cè)頁(yè)
include包含(頭)文件
lib庫(kù)
share錯(cuò)誤消息、字典和用于數(shù)據(jù)庫(kù)安裝的 SQL
support-files各種支持文件

2. 命令序列如下所示

yum install libaio
tar -xvf /path/to/mysql-VERSION-OS.tar.xz
ln -s full-path-to-mysql-VERSION-OS mysql
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
cd /etc
touch my.cnf
chown root:root my.cnf
cd /usr/local/mysql
mkdir data
chmod 750 data
chown mysql:mysql data
bin/mysqld --defaults-file=/etc/my.cnf --initialize
cat data/localhost.localdomain.err
cd /usr/lib/systemd/system
touch mysqld.service
systemctl enable mysqld.service
systemctl start mysqld

3. 安裝二進(jìn)制包

安裝 libaio 庫(kù):MySQL 依賴(lài)于該libaio 庫(kù)。如果未在本地安裝此庫(kù),則數(shù)據(jù)目錄初始化和后續(xù)服務(wù)器啟動(dòng)步驟將失敗。如有必要,請(qǐng)使用適當(dāng)?shù)陌芾砥靼惭b它。例如,在基于 Yum 的系統(tǒng)上:

yum search libaio  # search for info
yum install libaio # install library

下載和解壓:從 MySQL 官網(wǎng)下載對(duì)應(yīng)版本的二進(jìn)制壓縮包(如 mysql-9.4.0-linux-glibc2.28-x86_64.tar.xz),使用 tar -xzf 命令解壓。

tar xvf mysql-9.4.0-linux-glibc2.28-x86_64.tar.xz -C /usr/local/
cd /usr/local/

mv mysql-9.4.0-linux-glibc2.28-x86_64 mysql
#或
ln -s mysql-9.4.0-linux-glibc2.28-x86_64 mysql

創(chuàng)建專(zhuān)用用戶(hù)和組:創(chuàng)建一個(gè)不允許登錄系統(tǒng)的 MySQL 專(zhuān)用用戶(hù),提升安全性。

groupadd mysql
useradd -r -g mysql -s /bin/false mysql
#或
useradd -r -g mysql -s /usr/sbin/nologin mysql

-s 設(shè)置用戶(hù)的登錄 shell

/bin/false 一個(gè)總是返回失敗的程序,這樣設(shè)置后,該用戶(hù)無(wú)法通過(guò) shell 登錄系統(tǒng)

/usr/sbin/nologin 達(dá)到類(lèi)似效果,并給出友好提示

4. 安裝后配置

配置環(huán)境變量:將 mysql 加入環(huán)境變量中。

vim /etc/profile.d/mysql.sh
#編輯mysql.sh內(nèi)容
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
source /etc/profile.d/mysql.sh

創(chuàng)建配置文件:通過(guò)將它們放在 MySQL 配置文件中來(lái)指定 MySQL 服務(wù)器在啟動(dòng)時(shí)應(yīng)使用的選項(xiàng)。如果不這樣做,服務(wù)器將以其默認(rèn)設(shè)置啟動(dòng),要?jiǎng)?chuàng)建 MySQL 配置文件,請(qǐng)以 root 身份發(fā)出以下命令:

cd /etc
vim my.cnf

添加以下設(shè)置到配置文件中

[client]
socket=/usr/local/mysql/data/mysql.sock

[mysqld]
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
port=3306
log-error=/usr/local/mysql/data/localhost.log
user=mysql
secure_file_priv=NULL
local_infile=OFF

初始化數(shù)據(jù)目錄:進(jìn)入 MySQL 目錄并初始化數(shù)據(jù)目錄

cd /usr/local/mysql
mkdir data
chmod 750 data
chown mysql:mysql data
bin/mysqld --defaults-file=/etc/my.cnf --initialize

初始化輸出被打印到日志 ( /usr/local/mysql/data/localhost.log) 中。

5. 使用 systemd 啟動(dòng)服務(wù)器

添加一個(gè) systemd 服務(wù)單元配置文件

cd /usr/lib/systemd/system
vim mysqld.service

將此配置信息添加到 mysqld.service 文件中:

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql

# Have mysqld write its state to the systemd notify socket
Type=notify

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 10000

#Restart=on-failure

#RestartPreventExitStatus=1

# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
#Environment=MYSQLD_PARENT_PID=1

#PrivateTmp=false

使用以下命令來(lái)管理 MySQL 服務(wù)。

#使mysqld服務(wù)在重新啟動(dòng)時(shí)自動(dòng)啟動(dòng)。
systemctl enable mysqld.service

#手動(dòng)啟動(dòng)mysqld服務(wù)
systemctl start mysqld

#檢查mysqld服務(wù)的狀態(tài)
systemctl status mysqld

五、重置 MySQL root 賬戶(hù)密碼

使用客戶(hù)端,使用服務(wù)器在初始化序列期間生成的隨機(jī)密碼 mysql連接到服務(wù)器:root@localhost

# Yum 安裝
grep 'temporary password' /var/log/mysqld.log
# 二進(jìn)制安裝
grep 'temporary password' /usr/local/mysql/data/*.err

mysql -u root -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
mysql> exit

提示:如果啟用了 validate_password 插件(默認(rèn)開(kāi)啟),密碼必須滿(mǎn)足強(qiáng)度策略(大寫(xiě)、小寫(xiě)、數(shù)字、特殊字符、長(zhǎng)度 ≥ 8)。

六、測(cè)試 MySQL 服務(wù)器

使用mysqlshow驗(yàn)證您是否可以從服務(wù)器檢索信息。

mysqlshow -u root -p

使用mysqladmin查看 MySQL 服務(wù)器版本信息。

mysqladmin -u root -p version

七、開(kāi)啟遠(yuǎn)程訪問(wèn)權(quán)限

需要登錄到 MySQL 服務(wù)器,執(zhí)行下面的命令:

-- 1. 創(chuàng)建用戶(hù)
CREATE USER 'username'@'%' IDENTIFIED BY 'password';

-- 2. 授權(quán)
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';

-- 3.刷新權(quán)限
FLUSH PRIVILEGES;

這里的 usernamepassword 分別是遠(yuǎn)程用戶(hù)的用戶(hù)名和密碼,% 表示允許任何 IP 地址的用戶(hù)連接。如果需要限制特定 IP 地址,可以將 % 替換為具體的 IP 地址。

編輯 MySQL 的配置文件 my.cnf , 允許任意 IP 地址訪問(wèn):

[mysqld]
# 注釋掉或刪除這一行(如果存在):
# 如果不想暴露MySQL,可以保留,通過(guò)SSH 隧道(端口轉(zhuǎn)發(fā))安全地連接,具體見(jiàn)常見(jiàn)問(wèn)題
# bind-address = 127.0.0.1

# 或顯式綁定到所有地址:
bind-address = 0.0.0.0

修改后,保存文件并重啟 MySQL 服務(wù)以使更改生效:

systemctl restart mysqld

在客戶(hù)端計(jì)算機(jī)上,使用以下命令嘗試連接到遠(yuǎn)程 MySQL 服務(wù)器:

mysql -h server_ip -P 3306 -u username -p

#例如
mysql -h192.168.100.128 -P3306 -uroot -p123456

八、常見(jiàn)問(wèn)題

1. MySQL 服務(wù)無(wú)法啟動(dòng)

可以運(yùn)行 systemctl status mysql 查看服務(wù)狀態(tài),或者通過(guò) journalctl -xe 查看系統(tǒng)日志來(lái)排查問(wèn)題。

2. SELinux 或 AppArmor 阻止執(zhí)行

臨時(shí)禁用 SELinux 測(cè)試:

setenforce 0
systemctl start mysqld

如果成功,說(shuō)明是 SELinux 策略問(wèn)題??苫謴?fù)后添加策略:

setenforce 1
restorecon -R /usr/local/mysql
# 或使用 audit2allow 生成自定義策略

3. 客戶(hù)端連接失敗

檢查防火墻設(shè)置:確保服務(wù)器的防火墻開(kāi)放了 MySQL 的默認(rèn) 3306 端口??梢允褂靡韵旅睢?/p>

firewall-cmd --list-ports | grep 3306

如果沒(méi)有放行(輸出是空的),執(zhí)行以下命令,重新檢查

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

檢查 MySQL 綁定地址:查看 MySQL 配置文件(如 /etc/mysql/my.cnf)中的 bind-address 選項(xiàng)。如果希望從其他機(jī)器連接,需將其設(shè)置為服務(wù)器的 IP 地址或 0.0.0.0(注意安全風(fēng)險(xiǎn)),或者直接注釋掉該行。

如果服務(wù)端只允許本機(jī)訪問(wèn)(127.0.0.1),則在客戶(hù)端執(zhí)行下面的命令:

ssh -L 3307:127.0.0.1:3306 user@your-server.com
#或
ssh -fNL 3307:127.0.0.1:3306 user@your-server.com

mysql -h 127.0.0.1 -P 3307 -u myuser -p

-L 3307:127.0.0.1:3306:表示將本地機(jī)器的 3307 端口 轉(zhuǎn)發(fā)到遠(yuǎn)程服務(wù)器上的 127.0.0.1:3306

user@your-server.com:是你在遠(yuǎn)程服務(wù)器上的登錄賬戶(hù)和主機(jī)地址。

-fNL :在后臺(tái)運(yùn)行,不執(zhí)行遠(yuǎn)程命令,同時(shí)設(shè)置本地端口轉(zhuǎn)發(fā)。

如果是后臺(tái)運(yùn)行,Linux/MacOS 用 ps aux | grep ssh ,Windows 用 get-process ssh* ,找到進(jìn)程并 kill <PID> 。

4. 忘記 root 密碼

  • 停止 MySQL 服務(wù)。
  • 在配置文件中(如 [mysqld] 段下)添加 skip-grant-tables。
  • 重啟 MySQL 服務(wù),此時(shí)可以不需密碼登錄。
  • 執(zhí)行 FLUSH PRIVILEGES; 后重設(shè) root 密碼。
  • 移除 skip-grant-tables 配置,重啟 MySQL 服務(wù)。

到此這篇關(guān)于CentOS 7/8/9上安裝 MySQL 8.0+的方法完整指南的文章就介紹到這了,更多相關(guān)CentOS安裝 MySQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL中的datediff()方法和timestampdiff()方法的應(yīng)用示例小結(jié)

    MySQL中的datediff()方法和timestampdiff()方法的應(yīng)用示例小結(jié)

    在MySQL中,DATEDIFF()函數(shù)和TIMESTAMPDIFF()函數(shù)用于計(jì)算日期和時(shí)間之間的差異,TIMESTAMPDIFF()函數(shù)返回的結(jié)果是整數(shù),但你可以通過(guò)在計(jì)算過(guò)程中使用適當(dāng)?shù)某▉?lái)獲得所需的小數(shù)部分,本文介紹MySQL中的datediff()方法和timestampdiff()方法的應(yīng)用,感興趣的朋友一起看看吧
    2023-12-12
  • MySQL間隙鎖解決幻讀問(wèn)題

    MySQL間隙鎖解決幻讀問(wèn)題

    本文主要介紹了MySQL間隙鎖解決幻讀問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • MySql索引和索引創(chuàng)建策略

    MySql索引和索引創(chuàng)建策略

    這篇文章主要介紹了MySql索引和索引創(chuàng)建策略,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)又是幫助
    2022-08-08
  • Red?Hat?安裝MySQL?8.0與?Navicat的詳細(xì)過(guò)程

    Red?Hat?安裝MySQL?8.0與?Navicat的詳細(xì)過(guò)程

    這篇文章主要介紹了Red?Hat安裝MySQL8.0與Navicat,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • mysql如何將查詢(xún)結(jié)果插入到另一張表中

    mysql如何將查詢(xún)結(jié)果插入到另一張表中

    這篇文章主要介紹了mysql如何將查詢(xún)結(jié)果插入到另一張表中問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • MySQL asc、desc數(shù)據(jù)排序的實(shí)現(xiàn)

    MySQL asc、desc數(shù)據(jù)排序的實(shí)現(xiàn)

    這篇文章主要介紹了MySQL asc、desc數(shù)據(jù)排序的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • MySQL深分頁(yè)問(wèn)題解決思路

    MySQL深分頁(yè)問(wèn)題解決思路

    這篇文章主要介紹了優(yōu)雅地解決mysql深分頁(yè)問(wèn)題,本文將會(huì)討論當(dāng)mysql表大數(shù)據(jù)量的情況,如何優(yōu)化深分頁(yè)問(wèn)題,并附上最近的優(yōu)化慢sql問(wèn)題的案例偽代碼,需要的朋友可以參考下
    2022-12-12
  • Mysql滿(mǎn)意度調(diào)查分組去除最高最低求平均分的實(shí)現(xiàn)思路

    Mysql滿(mǎn)意度調(diào)查分組去除最高最低求平均分的實(shí)現(xiàn)思路

    該文章介紹了如何使用SQL查詢(xún)實(shí)現(xiàn)按部門(mén)分組,去除每個(gè)部門(mén)的最高分和最低分,并計(jì)算剩余分?jǐn)?shù)的平均分,文章詳細(xì)描述了實(shí)現(xiàn)這一需求的步驟,包括使用窗口函數(shù)、子查詢(xún)和CTE等技術(shù),感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • MySQL的LEFT JOIN表連接的進(jìn)階學(xué)習(xí)教程

    MySQL的LEFT JOIN表連接的進(jìn)階學(xué)習(xí)教程

    這篇文章主要介紹了MySQL的LEFT JOIN表連接的進(jìn)階學(xué)習(xí)教程,包括對(duì)左連接的查詢(xún)效率分析以及相關(guān)建議,需要的朋友可以參考下
    2015-12-12
  • 關(guān)于在sql中使用order by實(shí)現(xiàn)排序出錯(cuò)問(wèn)題

    關(guān)于在sql中使用order by實(shí)現(xiàn)排序出錯(cuò)問(wèn)題

    這篇文章主要介紹了關(guān)于在sql中使用order by實(shí)現(xiàn)排序出錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評(píng)論

互助| 张家港市| 湖北省| 安义县| 黄骅市| 云阳县| 宜城市| 舞钢市| 武功县| 古浪县| 伊宁县| 张家界市| 仙桃市| 上高县| 宝应县| 镶黄旗| 屏边| 晴隆县| 景德镇市| 易门县| 怀集县| 吉木乃县| 大埔县| 中卫市| 利辛县| 白沙| 京山县| 比如县| 招远市| 宾阳县| 康马县| 武清区| 南陵县| 四川省| 荔波县| 库伦旗| 监利县| 噶尔县| 普定县| 隆子县| 清原|