CentOS系統環境搭建(七)——Centos7安裝MySQL

centos系統環境搭建專欄🔗點擊跳轉

坦誠地說,本文中百分之九十的內容都來自于該文章🔗Linux:CentOS7安裝MySQL8(詳),十分佩服大佬文章結構合理,文筆清晰,我曾經在這篇文章指導下成功安裝mysql。今天,想把內容搬運寫到此博客,方便查看。

Centos7安裝MySQL

文章目錄

  • Centos7安裝MySQL
    • 1、安裝工作
      • 1.1、卸載 MariaDB
        • 1.1.1、MariaDB
        • 1.1.2、卸載
      • 1.2、下載資源包
        • 1.2.1、官網下載
        • 1.2.2、wget 下載
      • 1.3、檢查舊版本 MySQL
      • 1.4、解壓安裝
    • 2、配置工作
      • 2.1、基本設置
        • 2.1.1、文件夾重命名
        • 2.1.2、PATH 變量
        • 2.1.3、確認安裝
      • 2.2、創建用戶組、用戶
      • 2.3、數據目錄
    • 3、初始化 & 啟動
      • 3.1、配置文件
      • 3.2、初始化
      • 3.3、啟動 MySQL
        • 3.3.1、啟動服務
        • 3.3.2、登錄
      • 3.4、修改密碼
    • 4、遠程連接 MySQL
      • 4.1、創建遠程連接用戶
      • 4.2、遠程連接 MySQL

1、安裝工作

1.1、卸載 MariaDB

1.1.1、MariaDB

MySQL 的一個分支,主要由開源社區維護。

  1. CentOS 7+ 不再默認使用 MySQL 數據庫,而是 MariaDB 數據庫。
  2. 直接安裝 MySQL 會與 MariaDB 的文件沖突。

安裝 MySQL 之前,先卸載自帶的 MariaDB。

1.1.2、卸載

查看版本:有則需要卸載。

rpm -qa|grep mariadb

卸載:復制文件名,執行以下指令。

rpm -e --nodeps 文件名

確認卸載

rpm -qa|grep mariadb

[root@VM-4-17-centos myredis]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@VM-4-17-centos myredis]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
[root@VM-4-17-centos myredis]# rpm -qa|grep mariadb

1.2、下載資源包

將 MySQL 資源包放在 /usr/local/

1.2.1、官網下載

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

image-20230602152114671

1.2.2、wget 下載

/usr/local/ 下執行,下載資源包

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz

1.3、檢查舊版本 MySQL

rpm -qa|grep mysql
  • 沒有輸出:說明當前系統沒有安裝 MySQL,開始安裝。

  • 有輸出:顯示的 MySQL 不是想要的版本,則卸載。

停止服務

systemctl stop mysqld

卸載

rpm -e --nodeps mysql文件名

1.4、解壓安裝

解壓:tar 指令。

# .tar.gz 后綴
tar -zxvf 文件名# .tar.xz 后綴
tar -Jxvf 文件名

解壓完成/usr/local/ 下會生成 MySQL 文件夾。

2、配置工作

2.1、基本設置

2.1.1、文件夾重命名

重命名 MySQL 文件夾

mv 原文件夾名 mysql8

2.1.2、PATH 變量

vim /etc/profile

在最下面追加

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

重載環境變量

source /etc/profile

2.1.3、確認安裝

查看版本

mysql --version

確定 MySQL 安裝成功后,可刪除壓縮包。

rm -rf 壓縮包名

2.2、創建用戶組、用戶

注:需要進入 /usr/local

創建用戶組groupadd

groupadd mysql

創建用戶useradd-r 創建系統用戶,-g 指定用戶組)

useradd -r -g mysql mysql

2.3、數據目錄

創建目錄

mkdir -p /data/mysql8_data

賦予權限

# 更改屬主和數組
chown -R mysql:mysql /data/mysql8_data# 更改模式
chmod -R 750 /data/mysql8_data

3、初始化 & 啟動

3.1、配置文件

/usr/local/etc/ 下創建 my.cnf 配置文件用于初始化 MySQL 數據庫

[mysql]
# 默認字符集
default-character-set=utf8mb4
[client]
# 客戶端使用的端口號
port=3306
# 客戶端連接的 socket 路徑
socket=/tmp/mysql.sock
[mysqld]
# 服務端使用的端口號
port=3306
# 服務器 ID
server-id=3306
# MySQL 運行用戶
user=mysql
# 日志時間系統時間
log_timestamps=SYSTEM
# 默認時區東八區
default-time_zone='+8:00'
# 服務器連接的 socket 路徑
socket=/tmp/mysql.sock
# MySQL 安裝目錄
basedir=/usr/local/mysql8
# 數據存放目錄
datadir=/data/mysql8_data/mysql
# 開啟二進制日志功能
log-bin=/data/mysql8_data/mysql/mysql-bin
# InnoDB 數據文件存放目錄
innodb_data_home_dir=/data/mysql8_data/mysql
# InnoDB 日志文件存放目錄
innodb_log_group_home_dir=/data/mysql8_data/mysql
# MySQL 錯誤日志文件路徑
log-error=/data/mysql8_data/mysql/mysql.log
# 存放 MySQL 進程 ID 的文件路徑
pid-file=/data/mysql8_data/mysql/mysql.pid
# 表名大小寫不敏感
lower_case_table_names=1
# 服務端字符集
character-set-server=utf8mb4
# 自動提交所有事務
autocommit=1
# 跳過排它鎖定
skip-external-locking
# 鍵緩存大小
key_buffer_size=256M
# 允許的最大數據包大小
max_allowed_packet=1M
# 表緩存
table_open_cache=1024
# 排序緩存大小
sort_buffer_size=4M
# 網絡緩沖區長度
net_buffer_length=8K
# 讀取緩沖區大小
read_buffer_size=4M
# 隨機讀取緩沖區大小
read_rnd_buffer_size=512K
# MyISAM 排序緩沖區大小
myisam_sort_buffer_size=64M
# 線程緩存大小
thread_cache_size=128
# 臨時表大小
tmp_table_size=128M
# 啟用顯式默認時間戳
explicit_defaults_for_timestamp=true
# 最大連接數
max_connections=500
# 連接錯誤最大數量
max_connect_errors=100
# 打開文件限制
open_files_limit=65535
# 二進制日志格式
binlog_format=mixed
# 二進制日志過期時間(秒)
binlog_expire_logs_seconds=864000
# 創建表時使用的默認存儲引擎
default_storage_engine=InnoDB
# InnoDB 數據文件路徑設置
innodb_data_file_path=ibdata1:10M:autoextend
# InnoDB 緩沖池大小
innodb_buffer_pool_size=1024M
# InnoDB 日志文件大小
innodb_log_file_size=256M
# InnoDB 日志緩沖區大小
innodb_log_buffer_size=8M
# InnoDB 每次提交時刷新日志
innodb_flush_log_at_trx_commit=1
# InnoDB 加鎖等待超時時間(秒)
innodb_lock_wait_timeout=50
# 事務隔離級別為讀已提交
transaction-isolation=READ-COMMITTED
[mysqldump]
# 快速導出數據
quick
# 允許的最大數據包大小
max_allowed_packet=16M
[myisamchk]
# 鍵緩存大小
key_buffer_size=256M
# 排序緩沖區大小
sort_buffer_size=4M
# 讀取緩沖區大小
read_buffer=2M
# 寫入緩沖區大小
write_buffer=2M
[mysqlhotcopy]
# 交互式超時時間
interactive-timeout

3.2、初始化

需要進入 /usr/local/mysql8/bin,若添加了 PATH 變量可忽略。

初始化命令:注意文件夾名稱。

  • --defaults-file:指定配置文件(要放在–initialize 前面)
  • --user: 指定用戶
  • --basedir:指定安裝目錄
  • --datadir:指定初始化數據目錄
  • --intialize-insecure:初始化無密碼(否則生成隨機密碼)
mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure

3.3、啟動 MySQL

查看 MySQL 的 /bin 下是否包含 mysqld_safe用于后臺安全啟動 MySQL

3.3.1、啟動服務

安全后臺啟動 MySQL

# 完整命令
/usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
# 若添加了PATH變量,可省略如下
mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

確認啟動:第二條即 MySQL 服務。

ps -ef|grep mysql

3.3.2、登錄

mysql -u root --skip-password

3.4、修改密碼

修改密碼

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';

設置密碼永不過期(本地)

alter user 'root'@'localhost' password expire never;

刷新權限

FLUSH PRIVILEGES;

4、遠程連接 MySQL

4.1、創建遠程連接用戶

選擇 mysql 數據庫,查看當前用戶

USE mysql;

host 字段表示可訪問當前數據庫的主機,目前僅本地可訪問。

SELECT user,host,plugin,authentication_string FROM user;

創建用戶

CREATE user 'root'@'%';

設置首次密碼

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密碼';

授權用戶所有權限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

設置密碼永不過期(遠程)

alter user 'root'@'%' password expire never;

刷新權限

FLUSH PRIVILEGES;

4.2、遠程連接 MySQL

開放端口

  • 查看端口狀態:no 表示未開啟
firewall-cmd --query-port=3306/tcp
  • 永久開放端口
firewall-cmd --add-port=3306/tcp --permanent
  • 重啟防火墻
systemctl restart firewalld

至于如何設置mysql開機自啟動。請看專欄的下一篇文章。

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

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

相關文章

Kotlin 使用 View Binding

解決的問題: 《第一行代碼——Android》第三版 郭霖 P277 視圖綁定的問題 描述: kotlin-android-extensions 插件已經棄用 butter knife 已經棄用 解決辦法 推薦使用 View Binding 來代替 findViewById 使用方法 1、配置 build.gradle 2、在act…

踩坑---uni-app中@input 事件不生效

在開發的時候遇到這么一種情況,我們希望input輸入框的值是范圍是0-100或者保留兩位小數之類的,當你輸入時處理后的結果卻不生效,但是試過很多辦法發現都實現不了,最后是按照以下方法解決的,問題原因是uni-app會延時,導致輸入的結果…

Go語言的主要優勢

Go語言的主要優勢包括: 1. 簡潔和易學 Go語法簡單明了,沒有太多晦澀難懂的概念,上手容易,適合快速開發。 2. 強大的并發支持 利用goroutine和channel,可以非常方便地編寫高效的并發程序。 3. 執行性能好 Go編譯成機器碼,執行性能接近C/C,比解釋型語言更高效。 4. 內存管…

絕對值函數的可導性

絕對值函數的可導性 聲明:下面截圖來自《考研數學常考題型解題方法技巧歸納》

利用Figlet工具創建酷炫Linux Centos8服務器-登錄歡迎界面-SHELL自動化編譯安裝代碼

因為我們需要生成需要的特定字符,所以需要在當前服務器中安裝Figlet,默認沒有安裝包的,其實如果我們也只要在一臺環境中安裝,然后需要什么字符只要復制到需要的服務器中,并不需要所有都安裝。同樣的,我們也可以利用此生成的字符用到腳本運行的開始起頭部分,用ECHO分行標…

學習筆記十八:污點、容忍度

污點、容忍度 污點、容忍度管理節點污點把k8snode2當成是生產環境專用的,其他node是測試的給k8snode1也打上污點 污點、容忍度 給了節點選則的主動權,我們給節點打一個污點,不容忍的pod就運行不上來,污點就是定義在節點上的鍵值屬…

使用python讀Excel文件并寫入另一個xls模版

效果如下: 原文件內容 轉化后的內容 大致代碼如下: 1. load_it.py #!/usr/bin/env python import re from datetime import datetime from io import BytesIO from pathlib import Path from typing import List, Unionfrom fastapi import HTTPExcep…

睿趣科技:抖音開網店現在做還來得及嗎

隨著社交媒體的迅速發展,抖音作為一款短視頻平臺,已經在年輕人中間取得了巨大的成功。而近年來,越來越多的人開始考慮在抖音上開設網店,以迎合這一潮流。那么,抖音開網店現在還來得及嗎? 首先,要明確的是&…

一篇文章教會你搭建私人kindle圖書館,并內網穿透實現公網訪問

搭建私人kindle圖書館,并內網穿透實現公網訪問 在電子書風靡的時期,大部分人都購買了一本電子書,雖然這本電子書更多的時候是被擱置在儲物架上吃灰,或者成為蓋泡面的神器,但當亞馬遜發布消息將放棄電子書在中國的服務…

Kubernetes部署Wordpress時碰到的兩個問題解決

文章目錄 小結問題1解決問題2解決參考 小結 在使用Kubernetes部署Wordpress時返回了兩個問題: Function not implemented: AH00141: Could not initialize random number generator chown: changing ownership of .: Operation not permitted 對這個兩個返回錯誤&#xff0…

利用Python隧道爬蟲ip輕松構建全局爬蟲網絡

嘿,爬蟲程序員們!你們有沒有碰到過需要大規模數據爬取的情況?也許你們之前遇到過網站的反爬措施,卡住你們的進度。別擔心,今天我來分享一個利用Python隧道爬蟲ip實現的方法,幫助你們輕松搭建全局爬蟲ip網絡…

jmeter界面設置為中文

jmeter版本:5.6.2 找到jmeter下的bin目錄,打開jmeter.properties 文件 第39行修改為 languagezh_CN去掉前面的#,以后打開就是中文界面了

IC設計仿真云架構

對于IC仿真來說,最重要的是要安全、可維護、高性能的的HPC環境環境。 那么云上如何搭建起一套完整的IC仿真云環境呢? 這種架構應該長什么樣子? 桌面虛擬化基礎架構 將所有桌面虛擬機在數據中心進行托管并統一管理;同時用戶能夠…

RxJava 復刻簡版之三,map 多次中轉數據

案例代碼:https://gitee.com/bobidali/lite-rx-java/commit/292e9227a5491f7ec6a07f395292ef8e6ff69290 RxJava 的調用第一步是封裝了觀察者接受了數據的處理,進一步就是使用 map 將數據操作傳遞給上下游 1、類似Observer.create 創建一個簡單的觀察者…

神經網絡基礎-神經網絡補充概念-05-導數

概念 導數是微積分中的一個概念,用于描述函數在某一點的變化率。在數學中,函數的導數表示函數值隨著自變量的微小變化而產生的變化量,即斜率或變化率。 假設有一個函數 f(x),其中 x 是自變量,y f(x) 是因變量。函數…

如何評價機械革命?

機械革命是在全球頂尖IT廠商藍天、intel、nvidia、Microsoft等聯手的打造下推出的中高端品牌。(零件組裝) 機械革命研發實力雄厚,糟糕的外觀設計和極致的游戲性能一樣出名。圖片皆來自于未來世界。

【0214】postgres后端進程session退出,如何通過日志分析其會話信息

文章目錄 1. postgres進程session退出2. 開啟日志記錄postgres進程會話狀態3. postgres進程會話結束,記錄日志的實現原理1. postgres進程session退出 默認情況下,新建一個postgres后端進程會話(session),或是postgres進程正常/異常退出時,日志中沒有很明顯的記錄用于說明…

嵌入式:ARM Day4

一、自己編寫代碼實現三盞燈點亮 源碼: .text .global _start _start: 進行一次初始化bl RCC_INITbl LED1_INITbl LED2_INITbl LED3_INITb looploop: 循環開關燈bl LED1_ONbl delay_1sbl LED1_OFFbl delay_1sbl LED2_ONbl delay_1sbl LED2_OFFbl delay_1sbl…

如何進行網絡活動監控

組織的 IT 基礎架構中的每個網絡設備上都發生了大量活動,例如數據包傳輸、來自網絡協議的消息、設備狀態事件等。網絡活動成為在檢測到問題時識別網絡瓶頸的面包屑,因此即使是最微小的網絡活動也應受到監控,因為它直接影響整體網絡性能、運行…

UI設計師個人工作總結范文精選

UI設計師個人工作總結范文(一) 在忙忙碌碌中,2019年又將過去了,在這一年當中,設計部無論是在運作模式、設計產值、還是人員結構,各方面的變化都比較大。 設計部的運作模式是從7月底開始進行調整的,以獨立承包制的運營方…