[MySQL] 使用RPM在Linux中離線安裝MySQL

閱讀時間約 6 分鐘
此文章同步刊登於我的部落格

安裝流程

一、下載安裝包(RPM)

  1. 下載安裝包按照需求到這裡下載相對應版本的RPM包
    raw-image

二、安裝MySQL

  1. 將tar檔上傳到server上
  2. 解壓縮tar檔
    mkdir mysql
    tar xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar -C ./mysql
    cd mysql
    ls -alh
raw-image
  1. 安裝rpm包
    rpm -ivh mysql-community-client* --nodeps --force
    rpm -ivh mysql-community-common* --nodeps --force
    rpm -ivh mysql-community-libs* --nodeps --force
    rpm -ivh mysql-community-server* --nodeps --force
  2. 確認安裝包
    rpm -qa | grep mysql
raw-image


  1. 啟動MySQL,並確認啟動成功
    systemctl start mysqld
    systemctl status mysqld
  2. 查看root密碼

預設的root密碼會在/var/log/mysqld.log裡

grep "A temporary password" /var/log/mysqld.log

raw-image


  1. 初始化資料庫
    # mysql_secure_installation

    New password: NEW_PASSWORD
    Re-enter new password: NEW_PASSWORD
    Change the password for root ? N
    Do you wish to continue with the password provided? Y
    Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
    Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
    Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
    Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
raw-image


  1. 修改root密碼
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEW_PASSWORD';
    FLUSH PRIVILEGES;

三、設定防火牆

參考資料

  1. 查看防火牆狀態
    systemctl status firewalld
  2. 查詢是否有mysql服務名稱
    firewall-cmd --get-services | grep mysql
  3. 將mysql服務永久設定到public中
  • 有服務名稱:
    firewall-cmd --zone=public --permanent --add-service=mysql
  • 沒有服務名稱:
    firewall-cmd --zone=public --permanent --add-port=3306/tcp
  1. 查看public的永久設定值
    firewall-cmd --zone=public --permanent --list-services
    raw-image

資料庫操作

一、建立使用者

  1. 從外部sql檔執行語法
    mysql -uroot -p --default-character-set=utf8 <SQL_FILE
  2. 建立使用者
    CREATE USER 'user'@'CLIENT_IP' IDENTIFIED BY 'NEW_PASSWORD';
    FLUSH PRIVILEGES;
  3. 設定密碼不過期
    ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
    FLUSH PRIVILEGES;
  4. 給予全部權限
    GRANT ALL PRIVILEGES ON `DB_NAME`.* TO 'user'@'CLIENT_IP' IDENTIFIED BY 'NEW_PASSWORD';
    FLUSH PRIVILEGES;
  5. 查看使用者清單
    SELECT user, host FROM mysql.user;
  6. 查看授權
    SHOW GRANTS FOR 'user'@'CLIENT_IP';
  7. 限縮權限先移除所有權限,再重新賦予
    revoke all privileges on *.* from 'user'@'CLIENT_IP';
    GRANT SELECT,UPDATE,INSERT,DELETE ON `DB_NAME`.* TO 'usernamep'@'localhost' IDENTIFIED BY PASSWORD 'password';
    FLUSH PRIVILEGES;
  8. 刪除使用者
    DELETE FROM mysql.user WHERE user='USERNAME' AND host='HOST';
    FLUSH PRIVILEGES;

環境

  • Red Hat Enterprise Linux 7
  • MySQL 5.7.35


參考資料

  • https://blog.gtwang.org/linux/centos-7-firewalld-command-setup-tutorial/2/


7會員
21內容數
你可以在這裡看到後端工程師的技術文章 也可以看到一些投資相關的心得分享 歡迎交流~
留言0
查看全部
發表第一個留言支持創作者!
Hankz是名工程師 的其他內容
在使用laravel中的Queue job的時候 如果希望job中斷還可以重新啟動這個時候就會需要用到Supervisor了 本篇文章為您帶來如何使用Supervisor執行Laravel的queue:work的教學
在PHP的團隊開發中,PHP CS Fixer可以確保每個開發人員的Coding Style相同,是相當重要的工具。本篇文章將會詳細說明PHP CS Fixer在Linux環境下的安裝方式。
Composer是PHP的軟體套件管理系統,它提供用於管理PHP軟體和依賴庫關係的標準格式。通常以專案為單位進行管理,會在專案根目錄底下(預設是vendor)安裝套件,除此外可以安裝全局套件。
這篇文章將會提供在伺服器上安裝憑證的步驟,包括下載憑證,設定php.ini以及重新啟動Web Server等。
在使用laravel中的Queue job的時候 如果希望job中斷還可以重新啟動這個時候就會需要用到Supervisor了 本篇文章為您帶來如何使用Supervisor執行Laravel的queue:work的教學
在PHP的團隊開發中,PHP CS Fixer可以確保每個開發人員的Coding Style相同,是相當重要的工具。本篇文章將會詳細說明PHP CS Fixer在Linux環境下的安裝方式。
Composer是PHP的軟體套件管理系統,它提供用於管理PHP軟體和依賴庫關係的標準格式。通常以專案為單位進行管理,會在專案根目錄底下(預設是vendor)安裝套件,除此外可以安裝全局套件。
這篇文章將會提供在伺服器上安裝憑證的步驟,包括下載憑證,設定php.ini以及重新啟動Web Server等。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
有了MySQL後,當然就要下指令來玩玩 能玩爆代表你有天賦,每一次爆炸你又能修復就是成長大躍進的時刻 但是看看你的資料庫空空如也,只有系統DB怎麼辦咧 還好網路上有很多善心人士願意分享範例資料庫供人使用 話不多說就來試試看吧  1. 先找到你要的範例資料庫 範例資料庫下載
Thumbnail
網路隨便估狗都有一堆大神教學文,不過還是紀錄一下自己安裝的步驟 (2021.11.7)身為一個linux和資料庫菜雞只能乖乖腳踏實地一步一步來 準備好環境 (廢話) 1. 先準備好環境 (廢話) 我是用virtualbox起一個CentOS7的虛擬機詳細以參考以下網址,有非常詳盡的步驟
Laravel GROUP_CONCAT 出來的json格式錯誤,看起來是字串被截斷了,查了一下發現原來MySQL GROUP_CONCAT select出來的字串會有最大值的限制,預設是1024個字元。 1. 程式端解法:    DB::statement('SET GLOBAL group_c
Thumbnail
MySQL 取得現在日期半年前的日期: DATE_SUB(CURRENT_DATE(), INTERVAL 6 MONTH) 本筆記參考: https://www.w3schools.com/sql/func_mysql_date_sub.asp
以下以Laravel為例,一般group_concat我們可能會這樣寫: E 但其實table_a_id, table_a_name可以merge成一個json,資料整理起來比較好看,可以改成這樣的寫法: E 最後response之前可以用php的json_decode把json string轉為o
有時候我們會需要只group concat某些條件,就可以像這樣寫: group_concat(DISTINCT IF(user.name != 'abc' AND b.b_id != c.c_id, c.name, NULL)) as d 符合這個條件的才給值,否則給null,由於group_co
此案例是在 mac 上運行。 原稿參考 筆者簡化程序,命令如下: //---1.下載 mssql images----(做一次即可) %sudo docker pull mcr.microsoft.com/mssql/server:2017-latest //----2.將image啟動 成
Thumbnail
在Python中使用MySQLdb的起手式大概長這樣。記得execute裡面的SQL語法一定要加上冒號,否則會出錯。我也在這個愚蠢的錯誤上跌倒過。編碼問題是資料庫管理中常見的問題,編碼包含又包含了兩個部份,collation和character set。
Thumbnail
由於使用Python爬政府公開資訊進Mysql後,如果只想選取特定字串出來可以使用 WHERE 搭配 Like;但是當我們要尋找的字串非常多時,我們可以使用 REGEXP 的方式篩選,個人覺得比較有效率及程式不會太過冗長,如果有更好的作法也可以在下方回覆唷
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
有了MySQL後,當然就要下指令來玩玩 能玩爆代表你有天賦,每一次爆炸你又能修復就是成長大躍進的時刻 但是看看你的資料庫空空如也,只有系統DB怎麼辦咧 還好網路上有很多善心人士願意分享範例資料庫供人使用 話不多說就來試試看吧  1. 先找到你要的範例資料庫 範例資料庫下載
Thumbnail
網路隨便估狗都有一堆大神教學文,不過還是紀錄一下自己安裝的步驟 (2021.11.7)身為一個linux和資料庫菜雞只能乖乖腳踏實地一步一步來 準備好環境 (廢話) 1. 先準備好環境 (廢話) 我是用virtualbox起一個CentOS7的虛擬機詳細以參考以下網址,有非常詳盡的步驟
Laravel GROUP_CONCAT 出來的json格式錯誤,看起來是字串被截斷了,查了一下發現原來MySQL GROUP_CONCAT select出來的字串會有最大值的限制,預設是1024個字元。 1. 程式端解法:    DB::statement('SET GLOBAL group_c
Thumbnail
MySQL 取得現在日期半年前的日期: DATE_SUB(CURRENT_DATE(), INTERVAL 6 MONTH) 本筆記參考: https://www.w3schools.com/sql/func_mysql_date_sub.asp
以下以Laravel為例,一般group_concat我們可能會這樣寫: E 但其實table_a_id, table_a_name可以merge成一個json,資料整理起來比較好看,可以改成這樣的寫法: E 最後response之前可以用php的json_decode把json string轉為o
有時候我們會需要只group concat某些條件,就可以像這樣寫: group_concat(DISTINCT IF(user.name != 'abc' AND b.b_id != c.c_id, c.name, NULL)) as d 符合這個條件的才給值,否則給null,由於group_co
此案例是在 mac 上運行。 原稿參考 筆者簡化程序,命令如下: //---1.下載 mssql images----(做一次即可) %sudo docker pull mcr.microsoft.com/mssql/server:2017-latest //----2.將image啟動 成
Thumbnail
在Python中使用MySQLdb的起手式大概長這樣。記得execute裡面的SQL語法一定要加上冒號,否則會出錯。我也在這個愚蠢的錯誤上跌倒過。編碼問題是資料庫管理中常見的問題,編碼包含又包含了兩個部份,collation和character set。
Thumbnail
由於使用Python爬政府公開資訊進Mysql後,如果只想選取特定字串出來可以使用 WHERE 搭配 Like;但是當我們要尋找的字串非常多時,我們可以使用 REGEXP 的方式篩選,個人覺得比較有效率及程式不會太過冗長,如果有更好的作法也可以在下方回覆唷