linux centos7安裝mysql8

来源:https://www.cnblogs.com/gudanaimei/archive/2020/01/25/12206596.html
-Advertisement-
Play Games

一、RPM版安裝 查看是否有其他版本的資料庫,若有,刪除乾凈 非root用戶必須要有sudo許可權 1.下載mysql相關安裝包 https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el7/mysql-community-s ...


一、RPM版安裝

查看是否有其他版本的資料庫,若有,刪除乾凈

非root用戶必須要有sudo許可權

1.下載mysql相關安裝包

https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el7/mysql-community-server-8.0.18-1.el7.x86_64.rpm

https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el7/mysql-community-libs-8.0.18-1.el7.x86_64.rpm

https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el7/mysql-community-common-8.0.18-1.el7.x86_64.rpm

https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el7/mysql-community-client-8.0.18-1.el7.x86_64.rpm

2.其他依賴(可以先跳過該步,看後面安裝mysql時缺少什麼依賴就安裝什麼依賴)

到該網址下去尋找gcc、gcc-c++、openssl、perl及其依賴包
https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/

 

3.安裝mysql(未報錯則表示安裝成功)

4.自定義配置mysql(如果不想改變mysql的預設相關目錄,跳至第6步)

修改Mysql預設的配置文件內容

sudo vi /etc/my.cnf
刪除所有內容,加入以下內容:
[mysqld] user
=mysql port=3306 datadir=/app/mysql/data socket=/app/mysql/mysql.sock log-error=/app/mysql/log/mysqld.log pid-file=/app/mysql/mysqld.pid [client] socket=/app/mysql/mysql.sock

5.創建配置文件中的相關目錄並修改許可權

sudo mkdir /app/mysql/data /app/mysql/log -p

sudo chown mysql:mysql /app/mysql -R

6.初始化mysql

7.啟動mysql

若啟動出錯:

a.請查看mysql相關目錄的所屬用戶和所屬組是否是mysql

b.請查看selinux是否關閉:執行sudo getenforce得到的結果若不是Permissive,執行命令:sudo setenforce 0

c.查看埠是否被占用

d.若還是無法啟動:請查看mysql錯誤日誌以及sudo systemctl status mysqld或者journalctl -xe

8.登錄mysql

查看Mysql的初始密碼(root@localhost:後面的就是初始密碼)
sudo cat /app/mysql/log |grep root@localhost (做過第4步使用該命令)
sudo cat /var/log/mysqld.log|grep root@localhost (未做過第4步使用該命令)

登錄mysql,複製上面的密碼
mysql -p

9.修改mysql密碼(初次登錄必須修改密碼,否則無法使用mysql命令)

 

alter user 'root'@'localhost' identified by '你的密碼';

 

 

二、源碼版安裝

非root用戶必須要有sudo許可權

1.下載相關源碼包

https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.gz
https://mirrors.tuna.tsinghua.edu.cn/gnu/gmp/gmp-6.2.0.tar.xz
https://mirrors.tuna.tsinghua.edu.cn/gnu/m4/m4-latest.tar.gz
https://mirrors.tuna.tsinghua.edu.cn/gnu/mpfr/mpfr-4.0.2.tar.gz
https://mirrors.tuna.tsinghua.edu.cn/gnu/mpc/mpc-1.1.0.tar.gz
https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql-8.0.19.tar.gz
http://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz

https://down.24kplus.com/linux/cmake/cmake-3.16.2.tar.gz

2.安裝低版本的gcc、gcc-c++(必須要做,否則升級gcc安裝m4/gmp/mpfr/mpc時configure會報錯:configure: error: no acceptable C compiler found in $PATH)

到該網址下尋找gcc、gcc-c++及其依賴包(能連外網的可以直接使用命令:sudo yum -y install gcc gcc-c++)
https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/

3.安裝源碼版cmake


必須安裝openssl和openssl-devel依賴,下載網址同上,否則bootstrap會報錯:找不到openssl(能連外網的可以直接使用命令:sudo yum -y install openssl openssl-devel)

tar cmake-3.16.1.tgz cd cmake-3.16.1
sudo ./bootstrap
sudo make
sudo make check
sudo make install

4.升級gcc、gcc-c++

a.安裝m4

tar -xzvf m4-latest.tar.gz
cd m4-1.4.17/
sudo ./configure --prefix=/usr/local(--prefix指定安裝路徑)
sudo make (編譯)
sudo make check (檢查編譯是否有錯,註意是否有Error,可以不做)
sudo make install (安裝)

m4 --version (查看m4版本)

正確安裝後可以看到如下結果

b.安裝gmp

sudo ln -s /usr/local/bin/m4 /usr/bin (把m4做一個軟連接到此路徑下,否則configure時會報錯:checking for suitable m4... configure: error: No usable m4 in $PATH or /usr/5bin (see config.log for reasons).)
tar -xvf gmp-6.2.0.tar.xz
cd gmp-6.2.0
sudo ./configure --prefix=/usr/local/gmp-6.2 (非管理員必須要sudo,否則會報錯:Permission denied)
sudo make
sudo make check
sudo make install

c.安裝mpfr

tar -xzvf mpfr-4.0.2.tar.gz 
cd mpfr-4.0.2 
sudo ./configure --prefix=/usr/local/mpfr-4.0 --with-gmp=/usr/local/gmp-6.2   (--with-gmp為gmp的安裝目錄)
sudo make
sudo make check
sudo make install

d.安裝mpc

tar -xzvf mpc-1.1.0.tar.gz
cd mpc-1.1
sudo ./configure --prefix=/usr/local/mpc-1.1  --with-gmp=/usr/local/gmp-6.2 --with-mpfr=/usr/local/mpfr-4.0
sudo make
sduo make check
sudo make install

e.加入庫文件(/usr/local/mpfr-4.0/lib/必須加入庫文件,其他兩個可以不做,否則安裝升級gcc編譯時會報錯:error while loading shared libraries: libmpfr.so.6: cannot open shared object file: No such file or directory)

sudo vi /etc/ld.so.conf
   /usr/local/mpfr-4.0/lib/

   /usr/local/gmp-6.2/lib

   /usr/local/mpc-1.1/lib

sudo ldconfig (使上面的操作生效)

或者做軟連接

sudo ln -s /usr/local/mpfr-4.0/lib/libmpfr.so.6 /usr/bin

或者複製

sudo cp /usr/local/mpfr-4.0/lib/libmpfr.so.6 /usr/bin/

f.安裝其他依賴(系統未安裝依賴包時,必須要裝,否則升級gcc編譯時會報錯:mpc.h:沒有那個文件或目錄)

下載gmp-devel和libmpc-devel及其依賴包(能連外網的可以直接使用命令:sudo yum -y install gmp-devel libmpc-devel)
https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/gmp-6.0.0-15.el7.x86_64.rpm https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/gmp-devel-6.0.0-15.el7.x86_64.rpm https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/libmpc-1.0.1-3.el7.x86_64.rpm https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/libmpc-devel-1.0.1-3.el7.x86_64.rpm https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/mpfr-3.1.1-4.el7.x86_64.rpm https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/mpfr-devel-3.1.1-4.el7.x86_64.rpm

若還有依賴包需下載,請到
https://mirrors.tuna.tsinghua.edu.cn自行下載

g.升級gcc


tar -xzvf gcc-9.2.0.tar.gz cd gcc-9.2.0

  sudo ./configure --prefix=/usr/local/gcc-9.2 \
  --enable-bootstrap\
  --enable-checking=release \
  --enable-languages=c,c++ \
  --enable-threads=posix \
  --disable-checking\
  --disable-multilib\
  --enable--long-long\
  --with-gmp=/usr/local/gmp-6.2\
  --with-mpfr=/usr/local/mpfr-4.0\
  --with-mpc=/usr/local/mpc-1.1


sudo make (編譯時間較長,1個小時的樣子)
sudo make check
sudo make install

務必卸載低版本的gcc、gcc-c++
sudo rpm -e gcc-c++
sudo rpm -e gcc

sudo vi /etc/profile export PATH=$PATH:/usr/local/gcc/bin

  source /etc/profile
查看gcc版本號
gcc --version

 

5.安裝源碼版mysql

安裝ncurses-devel依賴,否則cmake報錯:Curses library not found.Please install appropriate package(能連外網的可以直接使用命令:sudo yum -y install ncurses-devel,不能連上外網的下載地址同第2步一樣)
tar -xzvf mysql-8.0.19.tar.gz
cd mysql-8.0.19

cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql\
 -DDEFAULT_CHARSET=utf8\
 -DDEFAULT_COLLATION=utf8_general_ci\
 -DENABLED_LOCAL_INFILE=ON\
 -DWITH_SSL=system\
 -DMYSQL_DATADIR=/app/mysql/data\
 -DSYSCONFDIR=/app/mysql/config\
 -DMYSQL_TCP_PORT=3306\
 -DMYSQL_UNIX_ADDR=/app/mysql/mysql.sock\
 -DWITH_BOOST=/home/mcbadm/mysql8/\
 -DFORCE_INSOURCE_BUILD=1

以上參數介紹如下(簡單的參數,更詳細參數請參考https://blog.51cto.com/laowafang/1294964):
-DCMAKE_INSTALL_PREFIX:安裝目錄
-DDEFAULT_CHARSET:設置字元集
-DDEFAULT_COLLATION:設置排序規則
-DENABLED_LOCAL_INFILE=ON:啟用本地數據導入支持
-DWITH_SSL=system:啟用ssl庫支持

-DMYSQL_DATADIR:數據文件目錄,可任意
-DSYSCONFDIR:配置文件目錄,可任意
-DMYSQL_TCP_PORT:mysql監聽的TCP埠
-DMYSQL_UNIX_ADDR:mysql.sock路徑,可任意
-DWITH_BOOST:boost源碼包所在目錄
-DFORCE_INSOURCE_BUILD:強制建立未存在的資源目錄
cmake若報錯,請找到原因解決後刪除CMakeCache.txt再次cmake

sudo rm -rf /usr/lib64/libstdc++.so.6* (刪掉所有低版本c++的庫文件)
sudo ln -s /usr/local/gcc-9.2/lib64 /usr/lib64 (把新安裝的高本版c++庫文件加入到系統庫文件中)
sudo make (需要大概1小時) sudo make install

 

6.編寫配置文件,建立目錄並授權

 

sudo mkdir /app/mysql/config
sudo cd /app/mysql

sudo vi config/my.cnf
加入以下內容:
[mysqld] user
=mysql port=3306 datadir=/app/mysql/data socket=/app/mysql/mysql.sock [mysqld_safe] log-error=/app/mysql/logs/mysql-err.log pid-file=/app/mysql/mysql.pid [client] socket=/app/mysql/mysql.sock

sudo useradd mysql -s /sbin/nologin

sudo mkdir -p  /app/mysql/logs

sudo touch /app/mysql/logs/mysql-err.log

sudo chown -R mysql.mysql /app/mysql

7.初始化並登陸修改密碼

初始化
sudo /app/mysql/bin/mysqld --initialize-insecure  --user=mysql --datadir=/app/mysql/data --basedir=/app/mysql     (無初始密碼的,若想要初始密碼,使用--initialize)

啟動
sudo /app/mysql/support-files/mysql.server start

登陸(若無初始密碼直接回車即可)
sudo /app/mysql/bin/mysql -p

修改密碼
alter user 'root'@'localhost' identified by '密碼';

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 大數據環境需要的安裝包合集,包括: apache flume 1.7.0 bin.tar.gz apache hive 1.2.1 bin.tar.gz hadoop 2.7.2.tar.gz hbase 1.3.1 bin.tar.gz jdk 8u144 linux x64.tar kafka_ ...
  • 前言 Stanley B.Lippman 先生所著的《C++ Primer》是學習C++的一本非常優秀的教科書,但《C++ Primer》作為一本大部頭書,顯然不適合所有的初學者。所以Lippman先生又返璞歸真地寫了這本短小輕薄的《Essentia C++》。這本書以簡短的章節篇幅,幫助初學者快速... ...
  • MyBatis MyBatis是Apache的一個開源項目iBatis, iBatis一詞來源於“internet”和“abatis”的組合,是一個基於Java的持久層框架。 iBatis 提供的持久層框架包括SQL Maps和Data Access Objects(DAO) Mybatis 是一個 ...
  • 內容有點多,請耐心! 最近公司的有這個業務需求,又很湊巧讓我來完成: 首先想要對接,先要一個公眾號,再就是開發文檔了:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html 不過請註意這一點 ok, ...
  • 微信公眾號: "Dotnet9" ,網站: "Dotnet9" ,問題或建議: "請網站留言" , 如果對您有所幫助: "歡迎贊賞" 。 .NET CORE(C ) WPF 方便的實現用戶控制項切換(祝大家新年快樂) 快到2020年了,祝大家新年快樂,今年2019最後一更,謝謝大家支持! 閱讀導航 1 ...
  • .NET基金會是一個獨立的非營利組織,於2014年成立,旨在圍繞 .NET 不斷增長的開源技術集合,促進開放開發和協作。它是商業和社區開發人員的論壇,通過促進開放性,社區參與和快速創新來增強.NET生態系統的未來。要使.NET 基金會真正獨立並由社區運營,則需要獨立資助。過去,.NET 基金會依靠來... ...
  • 【五分鐘的dotnet】是一個利用您的碎片化時間來學習和豐富.net知識的博文系列。如果您現在正在使用.NetCore的話,相信您對await 和 async這兩個關鍵字再熟悉不過了。它們是為非同步編程提供的語法糖,便於我們在代碼中更便捷的進行非同步操作。await 和 async其實是對Task對象都... ...
  • 之前一直知道使用 Ctrl+Z 掛起前臺進程來阻止進程運行,之後可以再通過 shell 的作業控制 (jobs / fg N) 來將後臺進程切換為前臺,從而繼續運行。 最近學到一種新的方法,對於不停有 console 輸出的前臺進程,可以使用 Ctrl+S 來 STOP 一個進程的輸出,從而暫停進程 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...