前言
最近因公司人員有限,需要搭建微服務的環境,因此這幾天惡補了一下Linux的相關操作,打算從MySQL安裝開始,畢竟專案的前提都是資料先行嘛,看了大量文章,實際動手后,發現還是存在著一些問題,很多人可能都是對著教程十分鐘左右就完事了,我天資愚昧,淌了許多MySQL安裝時的坑,問題五花八門的,大家遇到了問題一定要根據MySQL的版本去解決,
環境準備
Linux版本:centos7.5
![]()
MySQL安裝版本:5.7
![]()
root權限獲取:sudo su(必備條件)
![]()
確保系統中MySQL環境是干凈的,若是二次安裝則需要將之前安裝失敗的MySQL殘留檔案徹底卸載干凈
以上內容準備好后,就可以開始安裝了
MySQL安裝
第一步:檢查當前系統是否存在MySQL
rpm -qa | grep mysql
如果存在卸載即可
rpm -e mysql-5.7.31-linux-glibc2.12-x86_64
檢查當前系統是否存在Mariadb,如果存在則需要卸載
rpm -qa|grep mariadb
rpm -e --nodeps mariadbxxxx
第二步:下載MySQL的安裝包,按實際需求下載就好,我需要的版本是5.7版本
下載鏈接:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

下載完成后,放至服務器指定檔案夾即可,
第三步:解壓并移動
移動是為了方便后續組態檔需要,非必需,
解壓MySQL:
tar -xvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
移動:
mv mysql-5.7.31-linux-glibc2.12-x86_64 /usr/local/
重命名:
mv mysql-5.7.31-linux-glibc2.12-x86_64/ mysql-5.7
軟連接:
ln -s mysql-5.7.31-linux-glibc2.12-x86_64/ mysql-5.7
添加系統mysql組和mysql用戶
檢查mysql組和用戶是否存在,如無創建

以上是存在的情況,就不要二次添加了,
如果沒有則需要創建mysql組和用戶
groupadd mysql
useradd -r -g mysql mysql
安裝資料庫
創建data目錄
cd /
mkdir -p data
cd data/
mkdir -p mysql
授權
chown mysql:mysql -R /data/mysql
第四步:開始配置MySQL相關引數
cd /etc
vi my.cnf
因為我的是筆記本,編輯模式是fn+ins,也可按i進入編輯模式,寫入如下內容
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql-5.7
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
#!includedir /etc/my.cnf.d
完事后按ESC退出編輯,英文輸入法輸入 :wq 退出編輯
第五步:初始化
cd /usr/local/mysql-5.7/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-5.7/ --datadir=/data/mysql/ --user=mysql --initialize
查看初始化密碼
vim /data/mysql/mysql.err
找到root@localhost:初始密碼
第六步:啟動
service mysqld start
(不報錯可自行跳過)
正常情況下是會啟動成功的,我就是在這里開始錯的
出現了如下錯誤
Redirecting to /bin/systemctl start mysqld.service
Failed to start mysqld.service: Unit not found.
解決方案:
cd /usr/local/mysql-5.7/support-files
./mysql.server start
結果還是報錯,,,,
Starting MySQL.2020-08-14T02:34:16.212389Z mysqld_safe 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 (/data/mysql/mysql.pid).
解決方案:
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb/
再次輸入./mysql.server start啟動成功
![]()
如果還是啟動失敗,報
MySQL server PID file could not be found! [FAILED] .....
可能行程里已經存在mysql行程
解決方法:用命令“ps -ef|grep mysqld”查看是否有mysqld行程,如果有使用“kill -9 行程號”殺死,然后重新啟動mysqld!
查看是否成功啟動命令:
ps -ef|grep mysql

更改MySQL密碼
cd /usr/local/mysql-5.7/bin
mysql -u root -p

復制剛才得到的初始密碼進入
SET PASSWORD = PASSWORD('123456'); --修改密碼
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; --設定資料庫賬號
flush privileges; --重繪修改

至此,MySQL安裝程序結束了,
如果需要開放遠程連接,使linux上的mysql能被遠程訪問,則使用sql陳述句修改root用戶的host
use mysql;
select host,user from user;
update user set host='%' where user='root';
flush privileges;


如果想關閉mysql 執行 service mysqld stop
PS:注意權限問題,以及開始自啟
chown 777 /etc/my.cnf
開放linux防火墻的3306埠:
//開啟埠
firewall-cmd --zone=public --add-port=3306/tcp --permanent
//查詢埠號3306是否開啟:
firewall-cmd --query-port=3306/tcp
//重啟防火墻:
firewall-cmd --reload
//查詢有哪些埠是開啟的:
firewall-cmd --list-port
//禁用埠
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
如果安裝程序有問題的地方,歡迎大家指出,有疑問的地方也可以在下方留言,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/13376.html
標籤:其他
