rpm -ivh方式安裝mysql并修改數(shù)據(jù)存儲(chǔ)位置的實(shí)現(xiàn)
因?yàn)樨潏D便宜,也因?yàn)殚_(kāi)始選服務(wù)器時(shí)不懂,沒(méi)注意,新買(mǎi)的linux服務(wù)器選了個(gè)arm架構(gòu)的cpu然后系統(tǒng)也自然而然只能選唯一的arm架構(gòu)的centos7.9 。因?yàn)檫@個(gè)失誤,讓我在arm架構(gòu)的linux上安裝mysql嘗盡了苦頭。
先總結(jié)記錄如下:
1、下載mysql tar.gz 安裝包
安裝包下載鏈接:MySQL Community Downloads , centos7的只能選擇redhed系統(tǒng)下的安裝包。而且我的阿里云系統(tǒng)是arm版本的,還智能選擇arm系列安裝包。


將下載的文件上傳到linux中的一個(gè)目錄,我這里是上傳到了mnt目錄,因?yàn)槲业膍nt目錄是掛載了數(shù)據(jù)盤(pán)的, 我想要盡量保持系統(tǒng)盤(pán)不被安裝的軟件占用太多空間。安裝的時(shí)候我也會(huì)解壓到這個(gè)目錄去安裝。

2、檢測(cè)環(huán)境
CentOS是自帶mariadb, 和mysql的安裝相沖突 , 所以需要提前刪除
rpm -qa | grep mariadb //查找 yum remove mariadb-libs-5.5.68-1.el7.aarch64 rpm -qa | grep mariadb //再次查找,驗(yàn)證是否刪除

3、解壓mysql文件
在mnt創(chuàng)建一個(gè)目錄,然后將mysql壓縮包解壓到這個(gè)目錄。如果用命令創(chuàng)建目錄可能還涉及到賦權(quán),我這里直接用sftp手工創(chuàng)建的,默認(rèn)就是755權(quán)限。
mkdir /mnt/mysqlarm5.7.4 cd mnt tar -xvf mysql-8.0.31-1.el7.aarch64.rpm-bundle.tar -C mysqlarm5.7.4

4、安裝
cd mysqlarm5.7.4
由于rpm方式下載對(duì)依賴(lài)關(guān)系有所要求, 所以下載時(shí)要嚴(yán)格根據(jù)以下順序安裝
rpm -ivh mysql-community-common-8.0.31-1.el7.aarch64.rpm rpm -ivh mysql-community-client-plugins-8.0.31-1.el7.aarch64.rpm rpm -ivh mysql-community-libs-8.0.31-1.el7.aarch64.rpm rpm -ivh mysql-community-client-8.0.31-1.el7.aarch64.rpm rpm -ivh mysql-community-icu-data-files-8.0.31-1.el7.aarch64.rpm rpm -ivh mysql-community-server-8.0.31-1.el7.aarch64.rpm

最后一個(gè)安裝出現(xiàn)了libaio.so.1()(64bit) 被 mysql-community-server-8.0.31-1.el7.aarch64 需要
執(zhí)行yum install libaio

然后再次執(zhí)行rpm -ivh mysql-community-server-8.0.31-1.el7.aarch64.rpm

5、初始化和配置mysql
初始化:mysqld --initialize --user=mysql
啟動(dòng)mysql:service mysqld start
查看初始密碼:tail -20 /var/log/mysqld.log

下面紅色框的是密碼 ,復(fù)制密碼出來(lái)先放到一個(gè)文本框比如我的密碼是 if5<ukFtRaiL
登錄mysql(密碼中有特殊字符的,用轉(zhuǎn)義字符表示)
mysql -uroot -p

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

6、測(cè)試遠(yuǎn)程登錄
先確保您的服務(wù)器所在安全組打開(kāi)了3306端口,打開(kāi)方法自行百度。
然后用mysql工具測(cè)試遠(yuǎn)程登錄

轉(zhuǎn)到mysql 庫(kù)
use mysql;
查詢(xún)當(dāng)前用戶(hù)可登錄的客戶(hù)端情況:從mysql 庫(kù)的user表查詢(xún)
select user,password from user;
我的提示沒(méi)有passowrd列 , 因?yàn)閙ysql8.0以上沒(méi)有這個(gè)列。
所以我 select user,authentication_string,host from user;

執(zhí)行腳本更新root的host字段,記得第二行也要執(zhí)行,否則不能刷新。
update user set host = '%' where user ='root'; flush privileges;


7、修改mysql所在數(shù)據(jù)庫(kù)文件的目錄位置
因?yàn)槲蚁到y(tǒng)盤(pán)不大,不想數(shù)據(jù)庫(kù)文件存放在系統(tǒng)盤(pán),所以需要改數(shù)據(jù)庫(kù)目錄。先創(chuàng)建目錄
mkdir /mnt/mysql8data
我又偷懶用了sftp手工創(chuàng)建的。
在更改MySQL的數(shù)據(jù)目錄前,必須關(guān)閉MySQL服務(wù)。
service mysql status service mysql stop mysqladmin -u root -p shutdown #停止進(jìn)程需要輸入密碼
進(jìn)入etc目錄,查看mysql的cnf配置文件,我的是etc/my.cnf
用命令vim my.cnf 查看編輯,
也可以用sftp工具直接下載下來(lái)修改再上傳,我用了后者,簡(jiǎn)單明了。

數(shù)據(jù)目錄在 /var/lib/mysql ,拷貝到 /mnt/mysql8data 。
執(zhí)行cp命令 cp -a /var/lib/mysql /mnt/mysql8data
修改my.cnf 配置,然后my.cnf文件上傳到etc。
#datadir=/var/lib/mysql #socket=/var/lib/mysql/mysql.sock datadir=/mnt/mysql8data/mysql socket=/mnt/mysql8data/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [client] default-character-set=utf8 socket=/mnt/mysql8data/mysql/mysql.sock [mysql] default-character-set=utf8 socket=/mnt/mysql8data/mysql/mysql.sock

重新啟動(dòng)MySQL服務(wù)
systemctl start mysqld.service
驗(yàn)證數(shù)據(jù)目錄是否修改成功
mysql -hlocalhost -uroot -p
輸入密碼
show variables like '%datadir%';

測(cè)試遠(yuǎn)程連接,我使用的是Navicat工具

參考
https://blog.csdn.net/zjl0409/article/details/121998384
https://blog.csdn.net/Southside3amurai/article/details/128503656
到此這篇關(guān)于rpm -ivh方式安裝mysql并修改數(shù)據(jù)存儲(chǔ)位置的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)rpm -ivh安裝mysql內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)庫(kù)分組查詢(xún)group by語(yǔ)句詳解
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)分組查詢(xún)group by語(yǔ)句詳解,文中含有詳細(xì)示例代碼說(shuō)明解析,有需要的朋友可以借鑒參考想=下,希望能夠有所幫助2021-09-09
mysql分組后如何獲取每個(gè)組的第一條數(shù)據(jù)
這篇文章主要介紹了mysql分組后如何獲取每個(gè)組的第一條數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
數(shù)據(jù)庫(kù)踩坑實(shí)戰(zhàn)之這行SQL讓服務(wù)器直接宕機(jī)
服務(wù)器宕機(jī)是指服務(wù)器無(wú)法正常工作或運(yùn)行的情況,可能是由于硬件故障、軟件錯(cuò)誤、電力故障或網(wǎng)絡(luò)問(wèn)題等引起的,這篇文章主要介紹了數(shù)據(jù)庫(kù)踩坑實(shí)戰(zhàn)之讓服務(wù)器直接宕機(jī)SQL的相關(guān)資料,需要的朋友可以參考下2026-02-02
關(guān)于mysql delete的問(wèn)題小結(jié)
關(guān)于mysql delete的問(wèn)題,需要的朋友可以參考下。2011-05-05
使用JDBC從數(shù)據(jù)庫(kù)中查詢(xún)數(shù)據(jù)的方法
下面小編就為大家?guī)?lái)一篇使用JDBC從數(shù)據(jù)庫(kù)中查詢(xún)數(shù)據(jù)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
簡(jiǎn)單了解mysql語(yǔ)句書(shū)寫(xiě)和執(zhí)行順序
這篇文章主要介紹了簡(jiǎn)單了解mysql語(yǔ)句書(shū)寫(xiě)和執(zhí)行順序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03

