Linux基礎之部署mysql數據庫

文章目錄

  • 一、環境準備
  • 二、源碼解壓與依賴
  • 三、CMake 編譯配置
  • 四、配置 MySQL
    • 權限管理
    • 修改配置文件 `/etc/my.cnf`
  • 五、環境變量設置
  • 六、數據庫初始化
  • 七、服務管理
  • 八、賬號密碼管理


一、環境準備

yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
  • gcc / gcc-c++:編譯工具
  • ncurses / ncurses-devel:字符終端交互庫
  • bison:語法分析器
  • cmake:MySQL 編譯工具

創建 MySQL 專用用戶:

useradd -s /sbin/nologin mysql

二、源碼解壓與依賴

將mysql-5.7.17.tar.gz解壓

tar zxvf mysql-5.7.17.tar.gz -C /opt
tar zxvf boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost

三、CMake 編譯配置

進入源碼目錄:

cd /opt/mysql-5.7.17/

執行 cmake(關鍵參數):

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1

編譯安裝:

make -j 4 && make install

?? 注意:如果 CMake 出錯,解決后需刪除 CMakeCache.txt 再重新執行。

上面每個說明

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定mysql的安裝路徑
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql進程監聽套接字文件(數據庫連接文件)的存儲路徑
-DSYSCONFDIR=/etc \                             #指定配置文件的存儲路徑
-DSYSTEMD_PID_DIR=/usr/local/mysql \            #指定進程文件的存儲路徑
-DDEFAULT_CHARSET=utf8  \                       #指定默認使用的字符集編碼,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \			#指定默認使用的字符集校對規則
-DWITH_EXTRA_CHARSETS=all \						#指定支持其他字符集編碼
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              #安裝INNOBASE存儲引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               #安裝ARCHIVE存儲引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             #安裝BLACKHOLE存儲引擎 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            #安裝FEDERATED存儲引擎 
-DMYSQL_DATADIR=/usr/local/mysql/data \         #指定數據庫文件的存儲路徑
-DWITH_BOOST=/usr/local/boost \     #指定boost的路徑,若使用mysql-boost集成包安裝則-DWITH_BOOST=boost
-DWITH_SYSTEMD=1								#生成便于systemctl管理的文件存儲引擎選項:
MYISAM,MERGE,MEMORY和cSv引擎是默認編譯到服務器中,并不需要明確地安裝。靜態編譯一個存儲引擎到服務器,使用-DWITH engine STORAGE ENGINE= 1
可用的存儲引擎值有:ARCHIVE,BLACKHOLE,EXAMPLE,FBDERATBD,IMNOBASB(InnoDB),PARTTTON(partitioning support),和PERFSCHEMA(Performance schema)

四、配置 MySQL

權限管理

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

修改配置文件 /etc/my.cnf

把里面的全刪掉改成下面的

[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES[mysql]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
auto-rehash

詳細說明

[client] 客戶端配置port = 3306:客戶端連接 MySQL 的端口,默認是 3306。
socket=/usr/local/mysql/mysql.sock:客戶端通過 Unix socket 文件連接 MySQL(Linux/Unix 環境)。
default-character-set=utf8:默認字符集為 UTF-8。[mysqld] 服務器端配置user = mysql:MySQL 服務以 `mysql` 用戶身份運行。
basedir=/usr/local/mysql:MySQL 安裝目錄。
datadir=/usr/local/mysql/data:MySQL 數據庫文件存放目錄。
port = 3306:MySQL 服務監聽端口。
character-set-server=utf8:服務器默認字符集 UTF-8。
pid-file = /usr/local/mysql/mysqld.pid:存放 MySQL 進程 ID 的文件路徑。
socket=/usr/local/mysql/mysql.sock:服務器端 socket 文件路徑。
bind-address = 0.0.0.0:允許任意 IP 連接 MySQL(0.0.0.0 表示監聽所有網卡)。
skip-name-resolve:關閉 DNS 解析,使用 IP 地址驗證用戶,提高連接速度。
max\_connections=2048:最大允許同時連接數。
default-storage-engine=INNODB:默認存儲引擎為 InnoDB。
max\_allowed\_packet=16M:最大允許傳輸的數據包大小。
server-id = 1:MySQL 唯一 ID,常用于主從復制。
sql\_mode=...:設置 SQL 模式,控制 SQL 語法和數據校驗規則,如嚴格模式、禁止零日期、ANSI 引號模式等。---### `[mysql]` 客戶端工具配置port = 3306:客戶端連接端口。
default-character-set=utf8:客戶端默認字符集 UTF-8。
socket=/usr/local/mysql/mysql.sock:使用 Unix socket 文件連接。
auto-rehash:開啟自動補全功能(方便在 `mysql` 命令行中自動補全數據庫和表名)。

五、環境變量設置

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

六、數據庫初始化

cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

七、服務管理

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
netstat -anpt | grep 3306

八、賬號密碼管理

設置 root 密碼:

mysqladmin -u root -p password "123456"

登錄:

mysql -u root -p123456

如果navicat連不上就

systemctl stop firewalld.service 
systemctl stop iptables.service
setenforce 0 
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456(密碼)' WITH GRANT OPTION;

然后還要刷新權限

FLUSH PRIVILEGES;

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

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

相關文章

代碼審計-PHP專題原生開發文件上傳刪除包含文件操作監控Zend源碼解密1day分析

快速分析脆弱:1、看文件路徑2、看代碼里面的變量(可控)3、看變量前后的過濾文件安全挖掘點:1、腳本文件名2、應用功能點3、操作關鍵字文件上傳,文件下載(讀取),文件包含,文件刪除等emlog-文件上…

零基礎搭建 Hexo 博客:從本地到 GitHub Pages 全流程指南

零基礎搭建 Hexo 博客:從本地到 GitHub Pages 全流程指南 Hexo 是一個快速、簡潔且高效的博客框架,支持使用 Markdown 來編寫文章,并能快速生成靜態網頁,非常適合想要搭建個人博客的同學。本文將帶你從零開始,本地搭建…

Git 簡介

Git 是目前全球最流行的分布式版本控制系統(Distributed Version Control System, DVCS),核心作用是追蹤文件修改歷史、支持多人協同開發,并能高效管理代碼(或任何文本類文件)的版本迭代。它由 Linux 內核創…

后端Web實戰-Spring原理

目錄 1. 配置優先級 2. Bean管理 2.1 獲取Bean 2.2 Bean作用域 面試題:Lazy是如何解決循環依賴問題的? 2.3 第三方Bean 3. SpringBoot原理 3.1 起步依賴 3.2 自動配置 3.2.1 概述 3.2.2 自動配置的原理及常見方案 3.2.2.1 概述 3.2.2.2 方案…

在 Qoder 等 AI 二創 IDE 里用 VS Code Remote-SSH 的“曲線連接”實戰

目標:讓你在 Qoder 等在線/AI 輔助 IDE 中,也能像本地 VS Code 一樣通過 Remote-SSH 連接到自己的遠程服務器進行開發。 前提:只在你擁有或被授權的服務器上使用,遵守所用平臺的條款與限制。兩句話說清楚 先用本地 VS Code 正常連…

python發送請求SSL驗證設置

這個錯誤通常是由于SSL/TLS握手失敗導致的,可能原因包括證書驗證問題、不兼容的加密協議或網絡連接中斷。以下是幾種解決方案,按推薦順序排列: 方案一:臨時禁用SSL驗證(快速測試) response requests.get(u…

工廠自動化正從 “人工堆疊” 向 “設備替代” 快速轉變

?人工進行零件排列,雖在操作靈活性上有一定表現,但實際應用中存在明顯短板,對工廠自動化轉型形成制約。從成本來看,一名工人日均工資約數百元,若需 5-6 名工人協同作業,月均人力成本易突破萬元&#xff0c…

中標麒麟7.4部署gitlab-runner

1. 部署環境 本次部署環境完全斷網。需要離線下載gitlab-runner及其依賴。 本次部署環境為中標麒麟7.4。目前機器上部署了gitlab,安裝了maven。 2. 部署步驟 2.1 在外部下載好依賴 我首先在騰訊云上布置了一個centos7.9的虛擬機,沒有安裝任何東西。 …

在 IDEA 2024 創建 Vue 項目(保姆級)

目錄 一、 前后端分離 1. 簡介 2. 實現前后端分離的常用前端框架 3. 前后端分離和動靜分離 3.1 前后端分離: 3.2 動靜分離: 二、 Vue.js概述 1. 簡介 2. SPA介紹 2.1 優點 2.2 缺點 3. MVVM介紹 3.1 示例 三、 名詞解釋 1. Node.js 2. npm 3. webpack 4. Vue…

Coze源碼分析-資源庫-創建知識庫-后端源碼-應用/領域/數據訪問

3. 應用服務層 3.1 知識庫應用服務 文件位置: backend/application/knowledge/knowledge.go func (k *KnowledgeApplicationService) CreateKnowledge(ctx context.Context, req *dataset.CreateDatasetRequest) (*dataset.CreateDatasetResponse, error) {// 1. 轉換文檔類型d…

Shopify指紋手機矩陣:無限擴店,橫掃FB/GG廣告封號風險

一、 為什么需要為Shopify使用指紋手機?雖然Shopify不會因為你多開店而封號,但以下場景需要隔離環境:規避廣告平臺關聯:這是最核心的用途。你會用Facebook、Google、TikTok等廣告平臺為你的Shopify店鋪引流。這些廣告平臺嚴格禁止…

【Python】家庭用電數據分析Prophet預測

數據集:Household Electricity Consumption | Kaggle 目錄 數據集簡介 探索性分析 Prophet預測 Prophet模型 Prophet理念 Prophet優點 數據集簡介 240000-household-electricity-consumption-records數據集包含了一個家庭6個月的用電數據,收集于2…

信息系統運維管理

運行維護服務指的是采用信息技術手段及方法,依據客戶提出的服務要求,為其在使用信息系統過程中提出的需求提供的綜合服務是信息技術服務中的一種主要類型。運行維護服務對象是指信息系統工程建設項目交付的內容,包括機房基礎設施,…

系統編程完結整理以及補充

Shell(命令與腳本語法) 系統編程(一)shell的學習-CSDN博客 功能/概念語法/關鍵字參數/用法說明返回值/效果難易點注意事項示例/實驗提示定義函數func_name() { commands; }無參數或通過 $1 $2 ... 傳參函數執行參數傳遞、全局變…

第十四屆藍橋杯青少組C++選拔賽[2022.12.18]第二部分編程題(2、字符翻轉)

參考程序&#xff1a;#include <bits/stdc.h> using namespace std;int main() {string s;cin >> s; // 讀取輸入字符串&#xff0c;若無輸入則結束for (int i 0; i < (int)s.size(); i) {// i 從 0 開始&#xff0c;位置是 i1&#xff1b;如果 i 是奇數&#…

Django基礎環境入門

熟悉過程 搭建環境&#xff0c;運行起來基礎請求到服務接口跟java web對比 說明先不糾結細節先跑起來再說 1. 環境搭建 python已經安裝&#xff0c;使用conda管理 django安裝 django官方文檔 pip install django也可以命令創建 mkdir djangotutorial django-admin startp…

408學習之c語言(結構體)

今天給大家分享C語言中結構體的幾種常見使用方法&#xff0c;包括基礎結構體定義與初始化&#xff0c;結構體指針的兩種訪問方式&#xff0c;結構體數組的遍歷&#xff0c;動態內存分配與結構體使用&#xff0c;typedef簡化結構體類型基礎結構體定義與使用#define _CRT_SECURE_…

Navicat中設計表格默認值時,如何不設置成NULL,而是設置成空文本?

在 Navicat 中設計表時&#xff0c;將字段的默認值設置為空文本而不是 NULL 是一個非常常見的需求。操作很簡單&#xff0c;但有幾個細節需要注意。■ 方法一&#xff1a;通過“設計表”界面設置&#xff08;最常用&#xff09;1. 連接數據庫并找到表&#xff1a;在左側連接導…

深入理解Java虛擬機:JVM高級特性與最佳實踐(第3版)第十三章知識點問答(15題)

預告下一本 可能是mysql8的書籍 或者是AI應用工程的基本崗位所有技能 問題1 什么是 線程安全&#xff1f;在 Java 中如何定義“線程安全”&#xff1f;線程安全&#xff08;Thread Safety&#xff09; 的定義是&#xff1a; 當多個線程同時訪問某個類的對象時&#xff0c;無論運…

【醫療 AI】Baichuan-M2:大語言模型在醫療領域的動態驗證框架

Baichuan-M2 醫療大模型&#xff1a;技術解讀與使用方法 Baichuan-M2&#xff1a;大語言模型在醫療領域的動態驗證框架 【醫療 AI】Baichuan-M2&#xff1a;大語言模型在醫療領域的動態驗證框架0. Baichuan-M2 模型簡介0.1 基本信息0.2 主要貢獻0.3 論文摘要1. 引言2. 驗證系統…