安裝前先確認一下你的機器上是否已經安裝過mysql,有的清理干凈,沒有則直接進入安裝步驟,下面將會記錄一下自己的整個安裝過程以及遇到的問題和解決方法。
我的系統是:CentOS Linux release 7.5.1804 (Core) 內核:3.10.0-862.11.6.el7.x86_64
安裝前的系統確認:
1、檢查是否已經安裝過mysql : rpm -qa | grep mysql
如果環境中有遺留mysql則執行刪除命令:rpm -e --nodeps mysql-xxxxxxxxx
2、查詢遺留的mysql設置或命令,執行兩條命令:
whereis mysql
find / -name mysql
如通過上述兩條命令發現有遺留,則執行清除命令,將所有查到的mysql都刪除感覺 :rm -rf xxx xxx
下面開始正式的安裝了,不要眨眼錯過每一步哦!
1、檢查mysql用戶組和用戶是否存在,如果沒有,則創建,有的話可以不用添加,如果已經忘記密碼等則保險期間還是刪除重新創建吧
查看是否存在mysql用戶的命令:
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
增加 mysql 用戶的命令:
groupadd mysql
useradd -r -g mysql mysql
2、從官網下載是用於Linux的Mysql安裝包
官網下載8.20版本mysql的地址:https://downloads.mysql.com/archives/community/
兩種方法下載:
第一:如果你的linux 系統有外網,則直接通過命令下載到linux系統上:wget https://dev.mysql.com/get/Downloads/MySQL-8.0.20/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
第二:通過瀏覽器打開網頁,按照圖片的執行,點擊"DownLoad"
3、開始解壓、安裝
tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql
4、更改mysql目錄下所有的目錄及文件夾所屬的用戶組和用戶,以及權限
mysql文件夾要配置為755的權限,如果不是則執行命令:
chmod -R 755 /usr/local/mysql
5、找一個目錄來存儲mysql的數據,如果你的數據量大,記得要找個大點的盤和目錄,我的是在/data目錄下
mkdir -p /data/mysql
此時一般網友的操作步驟是給這個目錄設置了mysql權限:chown mysql:mysql -R /data/mysql
我在執行和調試過程中,遇到了mysql.sock無法找到和其他無法寫的權限等問題,所以為給這個目錄權限設置為:chmod 777 /data/mysql
這應該和我的調試有關系,也不必都設置為777權限,,當你遇到無法解決的讀寫文件問題時可以這么設置
4、設置配置文件,編譯/etc/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
bind-address=127.0.0.1
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
#socket=/data/mysql/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
[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
log-error=/data/mysql/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
pid-file=/data/mysql/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
注意、注意、注意,很重要,補充知識:
不要將配置文件中的socket=/tmp/mysql.sock 改為你自定義目錄文件的路徑,如:#socket=/data/mysql/mysql.sock,非常容易出現一下圖片中的錯誤,處理起來可能費時間和精力,我也像網上說的使用自己的目錄且給/tmp/mysql.sock 建立了軟連接也不管用,所以還是建議按照我的配置去配置,不要改socket的目錄了。
當然出現上述錯誤后,你又想快速的訪問mysql數據庫(數據庫已經初始化好后的步驟),也可以執行如下命令先使用着
執行連接命令:./mysql -uroot -h 127.0.0.1 -p
5、初始化mysql,一定要記住初始化輸出日志末尾的密碼(數據庫管理員臨時密碼)
./mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
如果屏幕上沒有打印則去日志文件中查看初始化完成后的臨時密碼:
cat /data/mysql/mysql.err
6、測試啟動mysql服務器
先將mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start
ps -ef | grep mysql
7、修改初始密碼
首先登錄mysql,密碼是上述初始化時,日志最后一行生成的那個臨時密碼
./mysql -u root -p #bin目錄下
./mysql -uroot -h 127.0.0.1 -p
8、修改初始化的密碼,設置自己的密碼
注意:對於8.0.20版本的mysql,使用以前的修改密碼的命令不可用,無法使用set password命令,會出現以下錯誤:
怎么辦呢,經過驗證,需要使用alert命令去修改,執行命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxx';
FLUSH PRIVILEGES;
9、開放遠程連接(開通后你的mysql就可以讓其他遠端客戶端訪問了),執行命令:
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
到此,你的mysql已經安裝成功,開心的使用去吧。
另:如有環境依賴上的問題,比如執行初始化命令時遇到系統提示無相關庫時,可以參考以下網友的解決方法,我沒有遇到此類問題所以就不多着敘述:
https://www.jianshu.com/p/276d59cbc529
補充:
mysql 5.7.31版本下載路徑:
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
下載后安裝步驟同上,注意 改密碼那個步驟略微有不同。
1、linux上執行下載命令:wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
2、網頁上的下載如下所示:
彈出以下頁面: