mysql的安裝步驟

安裝步驟

1.下載軟件包,安裝依賴環境

2.安裝mysql服務器

3.基礎安裝路徑,創用戶,與權限

4.初始化

5.添加環境變量,把服務放到開機自啟里面

6.啟動mysql服務器

7.獲取初始密碼并且修改

一,下載軟件(yum,源碼,二進制安裝,shell腳本安裝,容器化安裝(docker一鍵安裝))

1.下載mysql

https://downloads.mysql.com/archives/community/

2.二進制安裝

2.1指定安裝

將mysql安裝到/usr/local/mysql目錄中:

做# Centos7安裝依賴
yum install -y libaio libaio-devel ncurses ncurses-devel openssl openssl-devel# Ubuntu22.04 安裝依賴
sudo apt update
sudo apt install -y libaio1 libaio-dev libtinfo5 libncurses-dev libncurses5 libncurses5-dev libncursesw5 libncursesw5-dev libssl-dev
或者
apt install mysql-server 
mysqladmin -u root password
后直接用# 下載MySQL二進制安裝包
# 官網下載
# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz#自己拖包進去
# 局域網內下載
wget http://192.168.56.200/Software/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz做# 解壓
tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz #校驗是否正確 與官方的對比
md5sum 安裝包做#將mysql文件剪切并改名,建議的安裝路徑/usr/local下
mv mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql做# 不建議用root用戶弄數據庫所以我們這里,創建mysql用戶
useradd mysql -M -s /sbin/nologin做# 創建數據庫文件夾
# data文件夾是用于存儲數據庫文件,他的位置是在mysql目錄下
mkdir /usr/local/mysql/data做# 更改mysql目錄權限
chown mysql:mysql -R /usr/local/mysql

校驗對比,這里安裝的是通用版本,適配所有

2.2編譯安裝

yum -y install ncurses-devel #安裝依賴環境
yum -y install perl perl-devel perl-DBD* #看情況安裝(安了開發環境就不用了)
拖包
解壓縮cmake,并使用cmake工具進行編譯安裝(其實yum裝的cmake也能用)
tar -zxvf ... -C /usr/src
cd ...
./configure
gmake && gmake install
安裝完成

3.1初始化數據庫:
做#修改MySQL配置文件?
vim /etc/my.cnf原有的配置文件不用管全刪[mysqld]
port = 3306
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
socket = /tmp/mysql.sock
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
default-storage-engine=InnoDB
default-authentication-plugin=mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

sql_mode=NO_ENGINE_SUBSTITUTION:這個設置要求 MySQL 在遇到存儲引擎不可用時,直接報錯而不是替換成其他可用的存儲引擎。

STRICT_TRANS_TABLES:這個設置要求 MySQL 嚴格遵循事務安全的規則,對于事務中出現警告或錯誤的操作會導致整個事務回滾。

通過設置這些 SQL 模式,可以幫助確保數據庫的數據完整性和一致性,提高數據庫操作的準確性和安全性。

做#執行初始化,生成系統自帶的初始化數據。

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

做執行完后查看初始密碼:

cat /usr/local/mysql/data/error.log
最后一行會顯示密碼
2025-08-01T01:56:40.744889Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 2VCPj4h!qer(
例如這個,里面的初始密碼就是2VCPj4h!qer(
做4.1第一次啟動mysql服務(使用官方自帶的啟動腳本)
/usr/local/mysql/support-files/mysql.server start
執行完上面命令后會有提示
Starting MySQL... SUCCESS!

之后可以將啟動腳本復制到/etc/init.d/目錄,這是啟動腳本的默認目錄。

啟動MySQl本質執行的是mysqld命令

ps -aux|grep mysqld
查看是否啟動

關閉mysql本質是kill mysqld的pid

做 啟動(為方便以后命令啟用)

另一種把啟動命令放到環境變量里面

修改系統環境變量

想要在任意目錄執行mysql的命令需要修改/etc/profile(這個文件里寫的是重要的環境變量,用于設置全局的環境變量和啟動腳本:補充

環境變量設置

  • PATH 變量:用于指定命令的搜索路徑。系統會在這些路徑中查找用戶輸入的命令,例如在?/etc/profile?中可能會看到類似?PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin?的設置,將常用的命令目錄添加到搜索路徑中。)

vim /etc/profile

在最后一行添加指定PATH關聯MySQL的bin目錄

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

配置完成后讓系統重新加載/etc/profie文件

source /etc/profile

如何驗證上面內容做成功了呢?

他沒有顯示沒有這個命令就是已經將命令加入環境變量中了。這里報錯原因是沒有輸root的密碼

我們可以通過 ,登錄成功

 mysql -u root -p'2VCPj4h!qer('   #把剛剛的密碼粘貼上去 加單引號'

四、獲取初始密碼

5.2修改root密碼

5.2.2.使用隨機密碼登錄到MySQL中修改
mysql -uroot -p
Enter password:初始密碼 自己在cat /usr/local/mysql/data/error.log這里找

做# 修改密碼

mysql> alter user 'root'@'localhost' identified by '123.com';
Query OK, 0 rows affected (0.05 sec)
可以通過自己改的密碼登錄,就是成功了
不做5.2.1使用mysqladmin命令修改密碼

Mysql安裝成功后,默認的密碼為隨機密碼,你可以使用以下命令來創建新的root用戶的密碼:

mysqladmin -u root -p  password "root123"
Enter password:初始密碼
現在你可以通過以下命令來連接到Mysql服務器:mysql -u root -p
Enter password:*******
注意:在輸入密碼時,密碼是不會顯示了,你正確輸入即可。
不做 如果密碼錯了或者修改失敗后可以進行5.2.3.MySQL重新初始化

安裝時初始化失敗或初始密碼遺失時可以重新初始化

# 刪除 /usr/local/mysql/data目錄中數據
rm -rf /usr/local/mysql/data/
mkdir /usr/local/mysql/data
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
cd /usr/local/mysql
cat data/error.log# 方法一:
mysqladmin -uroot -p password "root123"
初始密碼# 方法二:
mysql -uroot -p
初始密碼
mysql> alter user 'root'@'localhost' identified by 'root123';
Query OK, 0 rows affected (0.05 sec)
不做? 5.2.4.跳過MySQL的root密碼直接登錄

忘記root密碼時,可以使用該方法

vim /etc/my.cnf[mysqld]
# 配置的最后添加,跳過密碼登錄的功能
skip-grant-tables# 重啟服務
systemctl restart mysqld
mysql -urootmysql>flush privileges;
Query OK, 0 rows affected (0.05 sec)
mysql>alter user 'root'@'localhost' identified by 'root123';
Query OK, 0 rows affected (0.05 sec)
mysql>\q
# 密碼修改成功后,必須在配置文件中刪除或注釋掉skip-grant-tables# 然后重啟服務
systemctl restart mysqld

?做? 開機自啟用systemcl來控制mysql

開機啟動、啟動、停止、重啟、

# 1.方法使用默認啟動腳本的路徑支持 start 啟動 |stop 停止 |restart 重啟
/usr/local/mysql/support-files/mysql.server restart# 2./etc/ini.d/mysqld
# 將啟動腳本復制到/etc/init.d/目錄,這是啟動腳本的默認目錄。
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld# -a 參數保留原有權限
# 測試重啟
/etc/init.d/mysqld restart# 3.service
# 配置好/etc/ini.d/mysqld后可以使用service命令管理服務
service mysqld restart# 4.systemctl
# 配置mysqld開機啟動后,可以使用systemctl管理mysqld
systemctl enable  mysqld
systemctl restart mysqld
systemctl status  mysqld

不做6.1設置遠程連接

查看數據庫的用戶權限配置基礎信息。

生產環境不推薦開放root用戶的遠程登錄權限;

# 登錄MySQL
mysql -uroot -proot123# 創建遠程登錄賬號
mysql> create user 'root'@'%' identified with mysql_native_password by 'root123';
Query OK, 0 rows affected (0.01 sec)# 設置開放權限
mysql> grant all on *.* to 'root'@'%';
Query OK, 0 rows affected (0.00 sec)# 刷新使權限生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

%:代表所有主機,允許root登錄所有主機

identified:認證授權

mysql_native_password:密碼的一種認證方式,用于兼容低版本的mysql

grant:授權

遇到問題:

?Can’t connect to MySQL server on ‘192.168.8.20’ (61)?

解決方法:

# 關閉防火墻
systemctl stop firewalld.service
firewall-cmd --state

驗證:

在linux客戶端安裝mariadb

yum -y install? mariadb

mysql -u root -p 123.com -h 192.168.1.10(MySQL服務器的ip)

在ubuntu客戶端

apt install mysql-client

mysql -u root -p 123.com -h 192.168.1.10(MySQL服務器的ip)

apt install? mycli? ? ? ? ? ? ? ?#更強大的一種客戶端 有提示

mycli?-u root -p 123.com -h ”192.168.1.10“(MySQL服務器的ip)

圖形化:

phpmyadmin

如果你是使用apt直接安裝的mysql那么還需要在配置文件中允許遠程訪問

# 打開mysql配置文件。
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# [mysqld] 表示服務端設置
[mysqld]
# 注釋下列內容(31行)
# bind-address          = 127.0.0.1
# mysqlx-bind-address   = 127.0.0.1# 重新設置bind-address
bind-address = 0.0.0.0# 重啟MySQL
sudo systemctl restart mysql# 檢查3306端口是否為 0.0.0.0:3306
ss -lnutp|grep 3306

navicat?

這里的用戶名和密碼,就是

create user 'root'@'%' identified with mysql_native_password by 'root123';

和這里的一樣。

連接成功后就是這個樣子的。

不做? 7.1mysql卸載步驟(了解)

# 停止mysql服務
/etc/init.d/mysqld stop
Shutting down MySQL.... SUCCESS!# 或者使用systemctl停止
systemctl stop mysqld# 查找所有mysql相關文件夾
find / -name mysql

不做

# 刪除所有查出來的文件夾
rm -rf /var/lib/selinux/targeted/active/modules/100/mysql
......# 刪除配置文件
# 配置文件一般有/etc/my.cnf 或/etc/init.d/mysql.server,rm -f /etc/my.cnf
rm -rf /etc/init.d/mysqld# 刪除用戶組userdel mysql
id mysqlid: “mysql”:無此用戶

編譯安裝步驟

編譯安裝mysql
yum -y install ncurses-devel #安裝依賴環境
yum -y install perl perl-devel perl-DBD* #看情況安裝(安了開發環境就不用了)
拖包

安裝完成
創建用戶和組
groupadd mysql
useradd -M -s /sbin/nologin mysql -g mysql
tar -zxvf mysql-5.6.36.tar.gz -C /usr/src/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #指定安裝目錄
-DSYSCONFDIR=/etc #指定初始化參數文件目錄 #/etc/my.cnf
-DDEFAULT_CHARSET=utf8 #指定默認使用的字符集編碼
-DDEFAULT_COLLATION=utf8_general_ci #指定默認使用的字符集校對規則,utf8_general_ci是適用于utf-8字符集的通用規則
-DWITH_EXTRA_CHARSETS=all #指定額外支持的其他字符集
make && make install
安裝完成
更改目錄的屬主屬組
chown -R mysql:mysql /usr/local/mysql
建立配置文件
rm -rf /etc/my.cnf #Centos7默認支持Mariadb,系統默認的my.cnf會和mysql沖突,
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf #再將mysql安裝包里的默認配置替換過去
初始化
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ #初始化數據庫,用mysql的身份執行初始化腳本install_db,指定各種目錄
初始化成功
設置變量環境,讓我們mysql的命令可以在任何目錄下使用
方法一:
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
查看一下
/etc/profile文件為系統的每個用戶設置環境變量信息,此文件的修改會影響到所有用戶。
我們會發現最后一行多出了以上內容,$PATH變量定義了運行命令的查找路徑
給予運行權限,并執行,我們就可以在任何地方使用mysql的命令了。
source /etc/profile #作用:在當前bash環境下讀取并執行文件中的命令。
方法二:
ln -s /usr/local/mysql/bin/* /usr/local/bin/
兩種方法均可達成結果
使用systemctl控制mysql
cp /usr/src/mysql-5.6.36/support-files/mysql.server /etc/rc.d/init.d/mysqld #復制源文件中的服務文件到rc.d/init.d/下
chmod a+x /etc/rc.d/init.d/mysqld #給予權限
chkconfig --add mysqld #加入服務
chkconfig mysqld on #啟動服務
為什么和apache的鏈接位置不同呢?其實init.d是rc.d/init.d/的一個軟鏈接目錄,倆目錄一樣
添加完成后就可以通過systemctl來控制開關了
添加到系統服務
vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=Mysql server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
[Install]
WantedBy=multi-user.target
復制粘貼即可
就可以將mysqld設置為開機自啟了
查看服務端口
netstat -anput | grep mysql
設置密碼(第一次)
mysqladmin -u root password
修改密碼
mysqladmin -u root -p password
明文修改密碼,其中的警告指的是密碼明文有危險
正常登錄
mysql -u root -p

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

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

相關文章

Ant Design Vue notification自定義

<script setup> import { onMounted, h, ref, watch, getCurrentInstance } from vue; import { notification, Button } from ant-design-vue; onMounted(() > { const list [{id: 11,warnLevel: 嚴重,...},...]showMessage(list); }); function showMessage(){ for…

藍橋杯算法之搜索章 - 2

大家好&#xff0c;接下來&#xff0c;我將帶來對于搜索篇的新內容&#xff0c;這部分我將打算圍繞DFS深度優先搜索去講解。 溫馨提示&#xff1a;由于這篇文章是接著上一篇文章的&#xff0c;如果新讀者沒有看過前一篇的話&#xff0c;推薦去看一下&#xff0c;不然有些地方可…

藍橋杯----AT24C02

&#xff08;5-1&#xff09;、AT24C02掉電不丟失寫入與讀取AT24C02就是將數據寫入E2PROM&#xff0c;保證寫入數據掉電不丟失。考頻低&#xff0c;一般不考&#xff0c;頂天考幾個數據E2PROM&#xff0c;上電立馬讀取。AT24C02數據讀取一定放在主程序最前面&#xff0c;否則會…

【物聯網】基于樹莓派的物聯網開發【19】——樹莓派搭建MQTT客戶端及MQTTX使用

場景介紹 實現測試客戶端與 MQTT 服務器的連接、訂閱、取消訂閱、收發消息等功能。 MQTT發布消息到代理服務器 安裝paho-mqtt 使用pip工具安裝paho-mqtt&#xff0c;輸入以下指令即可&#xff1a; sudo pip install paho-mqtt安裝 MQTT 客戶端庫 為了方便連接到 MQTT 服務器&am…

5G-A技術浪潮勾勒通信產業新局,微美全息加快以“5.5G+ AI”新勢能深化場景應用

7月31日&#xff0c;國家互聯網信息辦公室發布《國家信息化發展報告》。《報告》中提出&#xff0c;新一代通信技術研發取得新成果&#xff0c;5G-A地空通信&#xff08;5G-ATG&#xff09;技術研發成功并完成測試驗證。5G-A技術研發測試驗證移動通信技術一般代際生命周期為10年…

SQLite Where 子句詳解

SQLite Where 子句詳解 SQLite 是一款輕量級的數據庫管理系統,廣泛應用于移動設備、嵌入式系統以及個人電腦。在 SQLite 中,WHERE 子句是 SQL 查詢語句中不可或缺的一部分,它用于指定查詢條件,從而篩選出滿足特定條件的記錄。本文將詳細介紹 SQLite 中的 WHERE 子句,包括…

AI IDE+AI 輔助編程-生成的大綱-一般般

引言概述 AI IDE 和 AI 輔助編程的興起及其對開發效率的影響提出核心問題&#xff1a;AI 工具能否真正幫助程序員減少加班&#xff08;告別 996&#xff09;&#xff1f;AI IDE 與 AI 輔助編程的定義與現狀解釋 AI IDE&#xff08;集成 AI 的開發環境&#xff09;和 AI 輔助編程…

ABP VNext + Dapr Workflows:輕量級分布式工作流

&#x1f680; ABP VNext Dapr Workflows&#xff1a;輕量級分布式工作流 &#x1f4da; 目錄&#x1f680; ABP VNext Dapr Workflows&#xff1a;輕量級分布式工作流一、引言 ?TL;DR &#x1f525;二、環境與依賴 &#x1f6e0;?三、系統架構與流程圖 &#x1f3d7;?四、…

? Unity 實現UI視差滾動效果(Parallax)鼠標控制、可拓展陀螺儀與腳本控制

? 效果如下在許多游戲、APP 或動效頁面中&#xff0c;我們常見的一種視覺效果是 視差滾動&#xff08;Parallax Scrolling&#xff09;&#xff1a;前景、中景、背景在鼠標或設備移動時以不同速率輕微移動&#xff0c;從而營造出一種空間感和深度感。目前遇到這樣一個需求 所以…

【05】VM二次開發——模塊參數配置--帶渲染/不帶渲染(WinForm界面調用 模塊參數配置)

文章目錄1 Winform 窗口界面 &#xff08;帶渲染的參數配置控件&#xff09;2 配置代碼3 運行測試4 不帶渲染的參數配置控件 對比4.1 添加控件4.2 代碼及演示效果模塊參數配置本教程介紹如何在VM二次開發中對模塊參數進行配置 1 Winform 窗口界面 &#xff08;帶渲染的參數配置…

Android 之 藍牙通信(2.0 經典)

??一、環境配置??1. ??添加依賴??在 build.gradle 中添加庫依賴&#xff1a;dependencies {implementation com.github.akexorcist:bluetoothspp:1.0.0 }2. ??權限聲明&#xff08;AndroidManifest.xml&#xff09;?<uses-permission android:name"androi…

使用 Scikit-LLM 進行零樣本和少樣本分類

使用 Scikit-LLM 進行零樣本和少樣本分類 使用 Scikit-LLM 進行零樣本和少樣本分類 在本文中&#xff0c;您將學習&#xff1a; Scikit-LLM如何將OpenAI的GPT等大型語言模型與Scikit-learn框架集成以進行文本分析。零樣本和少樣本分類之間的區別以及如何使用Scikit-LLM實現它…

android內存作假通殺補丁(4GB作假8GB)

可過如下app檢測&#xff1a; 安兔兔、魯大師、白眼、AIDA64、CPU X、CPU-Z、DevCheck、DeviceInfoHW lyw235yk235:~/Extend/lyw235/V/sprdroid1_v_4/sprdroid1_v$ git diff vnd/bsp/kernel5.15/kernel5.15/mm/page_alloc.c diff --git a/vnd/bsp/kernel5.15/kernel5.15/mm/pag…

Android 之 MVC架構

介紹1. MVC架構分工????Model層??&#xff1a;處理數據驗證、網絡請求等業務邏輯。??View層??&#xff1a;XML布局定義界面&#xff0c;Activity處理用戶輸入和顯示結果。??Controller層??&#xff1a;Activity作為控制器&#xff0c;協調Model和View的交互對于登…

Centos Docker 安裝手冊(可用)

Centos 安裝 Docker # 卸載舊版 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine \docker-selinux # 安裝依賴工具 yum install -y yum-utils device-mapper-persistent-d…

烽火HG680-KX-海思MV320芯片-2+8G-安卓9.0-強刷卡刷固件包

烽火HG680-KX-海思MV320芯片-28G-安卓9.0-強刷卡刷固件包U盤強刷刷機步驟&#xff1a;1、強刷刷機&#xff0c;用一個usb2.0的8G以下U盤&#xff0c;fat32&#xff0c;2048塊單分區格式化&#xff08;強刷對&#xff35;盤非常非常挑剔&#xff0c;usb2.0的4G U盤兼容的多&…

Python爬蟲實戰:研究pycares技術構建DNS解析系統

1. 引言 1.1 研究背景 隨著互聯網的飛速發展,網絡上的數據量呈現爆炸式增長。網絡爬蟲作為一種高效的數據采集工具,被廣泛應用于數據分析、市場調研、學術研究等領域。傳統的爬蟲在進行大規模數據采集時,往往會受到 DNS 解析效率的制約,成為影響爬取性能的瓶頸之一。 DNS…

從 0 到 1 認識 Spring MVC:核心思想與基本用法(下)

文章目錄&#x1f4d5;4. 響應??4.1 返回靜態頁面??4.2 返回數據ResponseBody???4.3 返回HTML代碼片段???4.4 返回JSON??4.5 設置狀態碼??4.6 設置Header&#xff08;了解&#xff09;&#x1f4d5;5. 案例練習??5.1 加法計算器??5.2 用戶登錄??5.3 留言板…

Python-初學openCV——圖像預處理(五)——梯度處理、邊緣檢測、圖像輪廓

目錄 一、圖像梯度處理 1、垂直邊緣提取 2、Sobel算子 3、Laplacian算子 二、圖像邊緣檢測 1、高斯濾波 2、計算圖像的梯度、方向 3、非極大值抑制 4、雙閾值篩選 三、繪制圖像輪廓 1、概念 2、尋找輪廓 3、繪制輪廓 一、圖像梯度處理 還記得高數中的一階導數求極值…

【Redis】安裝Redis,通用命令,常用數據結構,單線程模型

目錄 一.在Ubuntu系統安裝Redis 二. redis客戶端介紹 三. 全局命令 3.1.GET和SET命令 3.2.KEYS&#xff08;生產環境禁止使用&#xff09; 3.3.EXISTS 3.4.DEL 3.5.EXPIRE 3.6.TTL 3.6.1.Redis的過期策略 3.6.2.基于優先級隊列/堆的實現去實現定時器 3.6.3.定時器&a…