Centos7.6 安裝mysql過程全記錄

在centos 7.6上 離線安裝mysql 的步驟,可參考下文:

一、查看當前MySQL的安裝情況并卸載

1. 查看當前MySQL的安裝情況

查找之前是否安裝了MySQL

rpm -qa|grep -i mysql

2.卸載mysql

如果已經安裝mysql,則需要先停止MySQL,再刪除之前安裝的MySQL ,把rpm -qa | grep mysql 得到的安裝包名XXX 寫上即 rpm -ev xxx?

rpm -ev bt-mysql56-5.6.47-1.el7.x86_64

3.刪除老版本的目錄

查找之前MySQL的目錄,刪除老版本的目錄

find / -name mysql

刪除MySQL對應的目錄:

rm -rf xxxx/mysql

注意:卸載后配置文件 /etc/my.cnf 不會刪除,需要手動刪除

?rm -f /etc/my.cnf

4. 再次查看是否安裝MySQL,確保MySQL完全卸載

rpm -qa|grep -i mysql

沒有結果顯示,說明MySQL已經被完全卸載干凈,接下來就可以重新安裝自己想要的MySQL版本了。

二、安裝Mysql

1.創建mysql用戶組和用戶

檢查mysql用戶組和用戶是否存在,如果沒有,則創建

cat /etc/group | grep mysql

cat /etc/passwd |grep mysql

groupadd mysql

useradd -r -g mysql mysql

2.下載Mysql包

若服務器并不連接外網,需要將預先下載到的mysql安裝包,通過內網導文件方式?導入服務器,之后再操作。

若服務器可聯網,則可以通過命令:

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

下載mysql安裝包。

3. 解壓

tar -zvxf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

解壓完成后,可以看到當前目錄下多了一個解壓文件,移動該文件到/usr/local/下,并將文件夾名稱修改為mysql。

如果/usr/local/下已經存在mysql,請將已存在mysql文件修改為其他名稱,否則后續步驟可能無法正確進行。

4.創建data目錄

在/usr/local/mysql目錄下創建data目錄

[root@localhost /]# mkdir /usr/local/mysql/data

5.修改目錄屬組

更改mysql目錄下所有的目錄及文件夾所屬的用戶組和用戶,以及權限

chown -R mysql:mysql /usr/local/mysql

chmod -R 755 /usr/local/mysql

如果報以上錯誤,說明mysql用戶不存在,執行以下命令,操作完再執行更改權限命令

groupadd mysql

useradd -r -g mysql mysql

6.編譯安裝并初始化mysql

編譯安裝并初始化mysql

cd /usr/local/l\mysql/bin

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

務必記住初始化輸出日志末尾的密碼(數據庫管理員臨時密碼):A temporary password is generated for root@localhost:XXXXXXX

注意:

此處若報如下錯誤信息,表示該鏈接庫文件有沒有安裝使用:

[root@ecs-xiaochengxu bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

./mysqld: error while loading shared libraries: libaio.so.1的處理辦法

執行如下命令安裝:

?1.首先檢查該鏈接庫文件有沒有安裝使用,運行該命令后發現系統中無該鏈接庫文件

rpm -qa|grep libaio

# 2. 安裝

yum install? libaio-devel.x86_64??

如果不能聯網,則不能通過yum install 方式獲取安裝libaio-devel ; 需要單獨下載到rpm 安裝包,然后通過rpm -ivh xxx.rpm方式 進行安裝

成功后如下:

7. 編輯配置文件my.cnf?

編輯配置文件my.cnf

vim /etc/my.cnf? //或者vi /etc/my.cnf

添加配置如下:在[mysqld]下添加?

[mysqld]

datadir=/usr/local/mysql/data #數據庫data目錄

port = 3306? #端口

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #sql模式

symbolic-links=0

max_connections=400? #最大連接數

innodb_file_per_table=1?

lower_case_table_names=1 #表名大小寫不敏感

character_set_server=utf8? #服務器端編碼為utf8

參數注釋:

lower_case_table_names:

?????? 是否區分大小寫,1表示存儲時表名為小寫,操作時不區分大小寫;0表示區分大小寫;不能動態設置,修改后,必須重啟才能生效:

character_set_server:

?????? 設置數據庫默認字符集,如果不設置默認為latin1

innodb_file_per_table:

?????? 是否將每個表的數據單獨存儲,1表示單獨存儲;0表示關閉獨立表空間,可以通過查看數據目錄,查看文件結構的區別;

解決中文亂碼問題

show variables like '%character%'; 查詢編碼

show variables like '%character%';

?修改my.cnf文件??

#sudo vi /etc/my.cnf?

[mysqld]下加入代碼:

????? character_set_server=utf8

在[ mysql ]下加入代碼:

????? default-character-set=utf8

編輯/etc/my.cnf.d/client.cnf?

vi /etc/my.cnf.d/client.cnf

設置:

[client]

default-character-set=utf8

編輯vi /etc/my.cnf.d/mysql-clients.cnf

vi /etc/my.cnf.d/mysql-clients.cnf

在mysql下添加

default-character-set=utf8

8. 啟動mysql服務器

/usr/local/mysql/support-files/mysql.server start

如果有報錯信息:error: log-error set to '/var/log/mariadb/mariadb.log'

error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.

?ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

error: log-error set to '/var/log/mariadb/mariadb.log' 錯誤處理辦法

首先需要理解報錯信息:log-error 設置了日志為xxxx.log 然而文件不存在,建立一下對于mysql用戶可寫的xxx.log. 報錯以及提示都非常明確。而這個日志路徑則是配置在/etc/my.cnf 的【mysqld_safe】下的,指定了log-error 以及pid-file的路徑:

于是針對錯誤很容易就能找到處理辦法:新建/etc/my.cnf里指定路徑的這個log以及pid文件(自己注意自己的路徑,別瞎ctrl+c、v ,以下這個路徑我的my.cnf是修改過的,但是本文里并沒有截圖,設置的路徑與文件的文件不匹配還是會繼續報錯的) :

touch /usr/local/mysql/logs/mysql.log

touch /usr/local/mysql/logs/mysql.pid

創建了文件之后,還需要賦予權限,將文件所有者設置成 mysql用戶:

chown -R mysql:mysql /usr/local/mysql/

開始處理這個問題的時候,沒有理解到錯誤意思,所以我還修改了selinux的設置:

但是還是要報錯:

然后就發現 my.cnf里配置 mysqld_safe配置的?/var/lib/mysql 文件夾不存在 所以報錯:

mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.

于是:mkdir -p?var/lib/mysql? 創建目錄, 并設置目錄權限,如下圖所示:

重新執行:

/usr/local/mysql/support-files/mysql.server start

顯示如下結果,說明數據庫安裝成功

9. 添加軟鏈接,并重啟mysql服務

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

這里需要注意的是:如果是通過上述命令添加軟鏈接,則mysql數據的服務名應該是mysql, 而不是常規的mysqld。

通過配置好的服務啟動mysql數據庫服務 :service mysql restart,注意此時不能用systemctl start mysql,不然會報錯:

service mysql restart

Can't connect to local MySQL server through socket '/tmp/mysql.sock' 的解決方案

Enter password:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

通過如下方式:

mysql -uroot -h 127.0.0.1 -p

10. 登錄mysql,修改密碼(密碼為步驟6生成的臨時密碼)

mysql -u root -p

# 使用以下命令修改密碼

set password for root@localhost = password('123456');

# 報錯使用下面命令修改

從8.0開始修改密碼有了變化,在user表加了字段authentication_string,修改密碼前先檢查authentication_string是否為空,如果不為空

use mysql;

update user set authentication_string='' where user='root';--將字段置為空

ALTER user 'root'@'localhost' IDENTIFIED BY 'root';--修改密碼為root

2.如果為空,直接修改

ALTER user 'root'@'localhost' IDENTIFIED BY 'root';--修改密碼為root

11. 開放遠程連接

mysql>use mysql;

msyql>update user set user.Host='%' where user.User='root';

mysql>flush privileges;

執行完上邊命令后,通過數據庫客戶端就可以連上數據庫

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

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

相關文章

YOLOv5、YOLOv8改進:MobileViT:輕量通用且適合移動端的視覺Transformer

MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer 論文:https://arxiv.org/abs/2110.02178 1簡介 MobileviT是一個用于移動設備的輕量級通用可視化Transformer,據作者介紹,這是第一次基于輕量級CNN網絡性…

LeetCode150道面試經典題--單詞規律(簡單)

1.題目 給定一種規律 pattern 和一個字符串 s ,判斷 s 是否遵循相同的規律。 這里的 遵循 指完全匹配,例如, pattern 里的每個字母和字符串 s 中的每個非空單詞之間存在著雙向連接的對應規律。 2.示例 pattern"abba" s "c…

SpingBoot-Vue前后端——實現CRUD

目錄??????? 一、實例需求 ? 二、代碼實現 🏌 數據庫 👀 后端實現 📫 前端實現 🌱 三、源碼下載 👋 一、實例需求 ? 實現一個簡單的CRUD,包含前后端交互。 二、代碼實現 🏌 數…

[樹莓派]ImportError: libcblas.so.3: cannot open shared object file

嘗試在樹莓派4b安裝opencv-python,出現以下錯誤,ImportError: libcblas.so.3: cannot open shared object file: No such file or directory 解決方法,安裝依賴 sudo apt install libatlas-base-dev 再次import cv2就不會報這個錯誤。

約束綜合中的邏輯互斥時鐘(Logically Exclusive Clocks)

注:本文翻譯自Constraining Logically Exclusive Clocks in Synthesis 邏輯互斥時鐘的定義 邏輯互斥時鐘是指設計中活躍(activate)但不彼此影響的時鐘。常見的情況是,兩個時鐘作為一個多路選擇器的輸入,并根據sel信號…

八、解析應用程序——分析應用程序(1)

文章目錄 一、確定用戶輸入入口點1.1 URL文件路徑1.2 請求參數1.3 HTTP消息頭1.4 帶外通道 二、確定服務端技術2.1 提取版本信息2.2 HTTP指紋識別2.3 文件拓展名2.4 目錄名稱2.5 會話令牌2.6 第三方代碼組件 小結 枚舉盡可能多的應用程序內容只是解析過程的一個方面。分析應用程…

小龜帶你敲排序之冒泡排序

冒泡排序 一. 定義二.題目三. 思路分析(圖文結合)四. 代碼演示 一. 定義 冒泡排序(Bubble Sort,臺灣譯為:泡沫排序或氣泡排序)是一種簡單的排序算法。它重復地走訪過要排序的數列,一次比較兩個元…

【深度學習】再談向量化

前言 向量化是一種思想,不僅體現在可以將任意實體用向量來表示,更為突出的表現了人工智能的發展脈絡。向量的演進過程其實都是人工智能向前發展的時代縮影。 1.為什么人工智能需要向量化 電腦如何理解一門語言?電腦的底層是二進制也就是0和1&…

Arduino+esp32學習筆記

學習目標: 使用Arduino配置好藍牙或者wifi模塊 學習使用python配置好藍牙或者wifi模塊 學習內容(筆記): 一、 Arduino語法基礎 Arduino語法是基于C的語法,C又是c基礎上增加了面向對象思想等進階語言。那就只記錄沒見過的。 單多…

全國各城市-貨物進出口總額和利用外資-外商直接投資額實際使用額(1999-2020年)

最新數據顯示,全國各城市外商直接投資額實際使用額在過去一年中呈現了穩步增長的趨勢。這一數據為研究者提供了對中國外商投資活動的全面了解,并對未來投資趨勢和政策制定提供了重要參考。 首先,這一數據反映了中國各城市作為外商投資的熱門目…

Effective Java筆記(31)利用有限制通配符來提升 API 的靈活性

參數化類型是不變的&#xff08; invariant &#xff09; 。 換句話說&#xff0c;對于任何兩個截然不同的類型 Typel 和 Type2 而言&#xff0c; List<Type1 &#xff1e;既不是 List<Type 2 &#xff1e; 的子類型&#xff0c;也不是它的超類型 。雖然 L ist<String…

Oracle自定義函數生成MySQL表結構的DDL語句

1. 自定義函數fnc_table_to_mysql create or replace function fnc_table_to_mysql ( i_owner in string, i_table_name in string, i_number_default_type in string : decimal, i_auto_incretment_column_name in stri…

Linux 文件查看命令

一、cat命令 1.cat文件名&#xff0c;查看文件內容&#xff1a; 例如&#xff0c;查看main.c文件的內容&#xff1a; 2.cat < 文件名&#xff0c;往文件中寫入數據&#xff0c; Ctrld是結束輸入 例如&#xff0c;向文件a.txt中寫入數據&#xff1a; 查看剛剛寫入a.txt的…

Yolov5(一)VOC劃分數據集、VOC轉YOLO數據集

代碼使用方法注意修改一下路徑、驗證集比例、類別名稱&#xff0c;其他均不需要改動&#xff0c;自動劃分訓練集、驗證集、建好全部文件夾、一鍵自動生成Yolo格式數據集在當前目錄下&#xff0c;大家可以直接修改相應的配置文件進行訓練。 目錄 使用方法&#xff1a; 全部代碼…

解決監督學習,深度學習報錯:AttributeError: ‘xxx‘ object has no attribute ‘module‘!!!!

哈嘍小伙伴們大家好呀&#xff0c;很長時間沒有更新啦&#xff0c;最近在研究一個問題&#xff0c;就是AttributeError: xxx object has no attribute module 今天終于是解決了&#xff0c;所以來記錄分享一下&#xff1a; 我這里出現的問題是&#xff1a; 因為我的數據比較大…

SQL優化

一、插入數據 優化 1.1 普通插入&#xff08;小數據量&#xff09; 普通插入&#xff08;小數據量&#xff09;&#xff1a; 采用批量插入&#xff08;一次插入的數據不建議超過1000條&#xff09;手動提交事務主鍵順序插入 1.2 大批量數據插入 大批量插入&#xff1a;&…

Android 開發中需要了解的 Gradle 知識

作者&#xff1a;wkxjc Gradle 是一個基于 Groovy 的構建工具&#xff0c;用于構建 Android 應用程序。在 Android 開發中&#xff0c;了解 Gradle 是非常重要的&#xff0c;因為它是 Android Studio 默認的構建工具&#xff0c;可以幫助我們管理依賴項、構建應用程序、運行測試…

macOS 如何安裝git和nvm

首先&#xff1a;先來安裝git 打開macOS終端 將下面的命令復制粘貼進去&#xff1a; curl -O https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.41.0.tar.gz 版本號可以參考一下官網的 我這里安裝的是目前最新的2.41.0 然后在終端輸入下面的代碼或者雙擊git的…

數據結構:力扣OJ題

目錄 ?編輯題一&#xff1a;鏈表分割 思路一&#xff1a; 題二&#xff1a;相交鏈表 思路一&#xff1a; 題三&#xff1a;環形鏈表 思路一&#xff1a; 題四&#xff1a;鏈表的回文結構 思路一&#xff1a; 鏈表反轉&#xff1a; 查找中間節點&#xff1a; 本人實力…

YOLOv8+ByteTrack多目標跟蹤(行人車輛計數與越界識別)

課程鏈接&#xff1a;https://edu.csdn.net/course/detail/38901 ByteTrack是發表于2022年的ECCV國際會議的先進的多目標跟蹤算法。YOLOv8代碼中已集成了ByteTrack。本課程使用YOLOv8和ByteTrack對視頻中的行人、車輛做多目標跟蹤計數與越界識別&#xff0c;開展YOLOv8目標檢測…