Linux中安裝mysql數據庫詳細步驟


前言

最近在折騰性能測試,在測試一個接口的時候發現少量的並發數時會報錯,CPU有很大的iowait比例,大量用戶並發時反而沒有報錯。該接口應用代碼沒有復雜邏輯,分析初步定為數據庫。數據庫用的是mysql,需要安裝MysqlReport來查看數據庫的各項數據,於是在自己的阿里雲測試環境進行安裝和測試。

安裝步驟

1.下載

打開官方下載地址:https://dev.mysql.com/downloads/mysql/5.7.html,根據自己對應是系統進行選擇,這里演示的是Linux系統的安裝,選擇如下圖(文件有600多M,下載需要等待一定時間)

方便大家學習,安裝包放百度網盤上:鏈接:https://pan.baidu.com/s/1hXKUSe3RY7-A0IeW0ihfCg  提取碼:v6cj

 如果嫌注冊賬號麻煩,可以跳過賬號注冊,直接點擊下面的just start my download即可下載,這里用的是windows系統下載,下載完成通過ftp或者rz命令進行文件上傳到Linux,當然也可以在Linux系統中用wget方式進行下載,命令是:wget https://dev.mysql.com/downloads/file/?id=494229

 

 

 2.解壓,並放入用戶安裝目錄

在linux根目錄下創建文件夾,將文件上傳到該文件夾下,此文件夾為臨時文件夾,后面會將解壓的文件目錄放入/usr/local目錄下

  

 

 

 解壓安裝包:

解壓完成后可以看到如下圖文件夾:

 

 將文件夾移動到/usr/local目錄下並重命名為mysql

 

 

 3.安裝准備

3.1 創建mysql組及mysql用戶,並授權

創建mysql組:

 創建mysql用戶:

 

 3.2 創建數據存放目錄並授權(注意,這里是在根目錄下創建/data/mysql目錄,不要搞錯了,我是因為沒在根目錄下創建,所有后面初始化時失敗了多次,慘痛的教訓,希望后來人不要重蹈覆轍)

回到根目錄下創建數據存放目錄/data/mysql:

查看目錄是否創建成功:

 

 

 3.3 配置my.cnf文件

根目錄下執行:vim /etc/my.cnf

打開后將下面配置代碼粘貼進去,按:wq后按Enter鍵保存退出: 

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
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
explicit_defaults_for_timestamp=true


如果安裝的是新版(這里是mysql-5.7.33),my.cnf會有默認內容,如下,則需要你手動修改datadir、socket、log-error、pid-file幾個參數

 

 

 3.4 初始化數據庫

進入mysql的bin目錄:cd /usr/local/mysql/bin    

 執行初始化並查看mysql賬戶密碼:

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

cd /

cat /data/mysql/mysql.err

 

 4. 啟動mysql

4.1 將mysql.server放置到/etc/init.d/mysql中

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

 

 4.2 啟動mysql,並查看是否啟動成功

 如果啟動成功了,表示mysql安裝成功了!!!

---------------------------------------------------------------------------------------------------------------------------------------------------------------

遇到的問題:

問題1:初始化時提示:--initialize specified but the data directory has files in it. Aborting.

 

 原因分析:是因為根目錄下data目錄下有文件

解決辦法:在根目錄下使用rm -rf data,將data文件夾刪掉,重新創建一個/data/mysql文件目錄即可,命令為:mkdir -p /data/mysql

問題2:初始化時提示:log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.

原因分析:沒有/var/log目錄下沒有mariadb目錄和mariadb.log文件

解決辦法:創建文件目錄和文件,然后給Mysql用戶賦權即可

mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log

chown -R mysql:mysql  /var/log/mariadb/

 

5. 修改密碼

5.1 進入mysql的bin目錄:cd /usr/local/mysql/bin

5.2 執行./mysql -u root -p,輸入的密碼為初始化數據庫時的密碼,詳見上述步驟3.4,執行后顯示mysql>即表示進入mysql成功

 

 5.3  執行下述3個命令,修改密碼並刷新權限

SET PASSWORD = PASSWORD('123456');

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

FLUSH PRIVILEGES;

 

 5.4 重新登錄

這時如果使用(navicat等工具)遠程登錄,會發現無法連接如下圖

navicat下載:

鏈接:https://pan.baidu.com/s/1aknIUwy2L1Ws2uYL88COng
提取碼:og7l

 執行以下3個命令(先登錄數據庫)

use mysql       #訪問mysql庫
update user set host = '%' where user = 'root';      #使root能再任何host訪問
FLUSH PRIVILEGES;

 

 

(如果不是使用阿里雲雲服務,到這里可以使用遠程工具連接數據庫成功)

因為我是在阿里雲ECS上安裝的mysql,所以必須要先去阿里雲ECS實例上去打開3306端口,如下圖、

授權對象寫自己電腦的Ip地址即可

 

 然后測試連接,連接成功,如下圖

 

 

 好了,到此,mysql就可以通過navicat或其它遠程工具登錄使用了。

只能說該踩的坑一個沒少踩,希望后面的小伙伴少踩點坑,順利安裝成功!

 

題外話:

 1.如果不希望每次都到bin目錄下使用mysql命令則執行以下命令

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

2.查看mysql日志文件命令(要先登錄mysql):

show variables like 'general_log_file'; 

 3.重啟mysql,報錯,提示:ERROR! The server quit without updating PID file (/data/mysql/localhost.localdomain.pid).

 查看了這個目錄,發現並沒有localhost.localdomain.pid這個文件

百度了一下這個文件的作用,以下是別人的解決辦法:

1.localhost.localdomain.pid 保存的是MySQL所啟動的后台服務進程的PID值,如果這個文件丟了,可以創建一些,然后把一個數字放入其中。

2./tmp/mysql.sock 文件的作用是 MySQL通過這個unix socket 文件來與本地的客戶端進行通信的。如果此文件丟了,可以通過重新啟動服務器來重新創建它。

不建議將此文件放到 /tmp目錄下。

丟失后在mysql的安裝目錄是沒有*.pid,mysql.sock文件造成mysql無法重啟,解決方法是重新創建hostname.pid文件
(1)ps -ef |grep mysql 找出mysql的進程,如:6225;
(2)vi hostname.pid寫入6225
(3)重新啟動mysql正常.

於是新建localhost.localdomain.pid這個文件,然后重啟,注意:新建后不能保存一個空文件,需要在里面輸入一些數字

 

 

 

 

參考資料:

https://blog.csdn.net/qq_37598011/article/details/93489404


免責聲明!

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



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