記一次華為鯤鵬系列服務器(aarch64內核)的CentOS 7.6安裝MySQL 5.7的完整過程


先查看操作系統版本號以及內核,執行命令:

uname -a

cat /etc/redhat-release

此時可看到內核版本為aarch64,操作系統版本號為CentOS 7.6,然后去下載所對應的MySQL rpm安裝包,本次安裝使用的是mysql-5.7.27-1.el7.aarch64.rpm5.7版本的mysql有依賴包,所以先進行依賴包安裝檢查:

yum list installed|grep libaio

yum list installed|grep numact

如果已經安裝,則會返回具體的版本號,反之則無信息返回,那就需要手動進行安裝,先使用yum Install命令進行安裝即可,如果服務器在局域網無法連通外網,則可以手動在阿里雲的yum源網頁中下載:http://mirrors.aliyun.com/centos/

確保依賴包已經安裝后,則可以安裝數據庫:

rpm -ihv mysql-5.7.27-1.el7.aarch64.rpm

 

rpm安裝包部署會新增mysql用戶,此時執行命令可以查:

cat /etc/passwd

 

安裝完畢后,此時可根據自己的實際需求修改數據庫配置文件/etc/my.cnf,如修改啟動端口等,以下是my.cnf文件的默認配置:

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd

 

[mysqld_safe]

log-error=/var/log/mariadb/mariadb.log

pid-file=/var/run/mariadb/mariadb.pid

 

#

# include all files from the config directory

#

!includedir /etc/my.cnf.d

 

本次安裝僅為驗證安裝可行性,並無任何業務要求,因此不對默認配置進行修改,但實際安裝時,個人建議一定要先查看服務器的存儲空間分布,把數據路徑放到最大的磁盤下。

df -h

 

本次安裝的服務器,最大磁盤是/目錄,而my.cnf默認數據路徑datadir=/var/lib/mysql,因此無需特意修改。

配置完配置文件后,需對數據庫進行初始化,切勿馬上啟動數據庫,否則可能會引起一些不必要的問題。執行初始化命令,把日志輸出到指定文件,方便初始化后查看root用戶的初始化密碼,或者出問題時查看報錯:

/usr/local/mysql/bin/mysqld --initialize --user=mysql > /home/initialize.log 2>&1

cat /home/initialize.log

 

日志中顯示了初始化密碼,表示初始化成功,此時可執行命令啟動數據庫:

systemctl start mysql

結果發現報錯:

 

報錯提示命令See "systemctl status mysql.service" and "journalctl -xe" for details.,查看報錯細節,但是執行systemctl status mysql.service或者journalctl -xe,如果返回結果有的行文字較多,會對行進行縮減,所以此時我們執行命令:

systemctl status mysql -l

可查看完整的報錯:

 

從報錯中可以看到,因為默認配置中的log-error=/var/log/mariadb/mariadb.log文件不存在,所以啟動失敗,此時去創建該日志文件,注意要把擁有者修改為mysql用戶:

 

 

 

然后再次啟動數據庫,就可以正常啟動了

 

查看進程:

ps -ef|grep mysql

此時會發現數據庫進程的啟動用戶為mysql,這是因為初始化時加了--user=mysql參數

 

啟動完成后,就可以登錄數據庫:

mysql -uroot -p

此時發現又報錯了

系統無法找到mysql的命令,這是因為沒有配置環境變量引起的,需修改環境變量配置文件:

vi /etc/profile

在最后一行加上參數:

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

然后執行命令使配置馬上生效:

source /etc/profile

然后重新執行登錄數據庫命令,命令已經可以正常執行,輸入密碼后,結果又報錯了:

 

mysql -uroot -p的登錄命令,默認的sock文件是/tmp/mysql.sock,但是配置文件中默認的卻是socket=/var/lib/mysql/mysql.sock所以此時無法正常登錄,需指定正確的sock文件才可以:

mysql -uroot -p -S /var/lib/mysql/mysql.sock

此時終於可以正常登陸了:

 

記得root的密碼在初始化數據庫時的日志文件中查看:

 

本以為可以正常登錄進去就完事了,結果執行查看數據庫的命令時,又報錯了,一看是沒認真看報錯,還以為自己命令打錯了,結果細看才發現真正的錯誤:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

原來必須修改root用戶的密碼才能對數據庫進行操作,登錄進去數據庫修改root用戶密碼,不同版本的修改命令不一樣,我也沒記住,個人習慣了使用mysqladmin命令來修改root用戶的密碼,所以先執行exit命令退出登錄數據庫,然后執行命令修改root用戶的密碼:

 mysqladmin -uroot -pnCAtg0wM<&o? password "newpassword"

結果又報錯了:

 

是因為初始化密碼中有特殊字符,所以不能明文寫到修改命令中,需去掉密碼:

 

結果還是報錯,此時報錯是sock文件不存在的報錯,需指定sock文件,再次執行終於成功了:

 

 

 然后使用新密碼登錄數據庫再次執行命令驗證:

終於可以正常執行命令!!

本以為采坑到此結束,結果在服務器端執行命令沒有問題,在個人電腦使用工具連接數據庫是卻無法連接:

此時回到服務器端執行命令查看mysql數據庫下的user表里面的信息:

 

發現root用戶的hostlocalhost,所以才無法遠程登錄

 

此時執行命令修改host%

update user set host='%' where user='root';

 

然后重啟數據庫

 

再重新使用工具連接數據庫,終於可以連接成功:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM