1. 程式人生 > 資料庫 >Linux 下安裝MySql 5.7

Linux 下安裝MySql 5.7

1.檢查是否已經安裝

命令:

rmp -qa|grep mysql

如果沒有安裝,應當如下圖所示
在這裡插入圖片描述
如果有安裝
使用yum命令,yum命令可以自動刪除與mysql相關的依賴

yum -y remove mysql-libs-5.1.73-8.el6_8.x86_64

刪除後再檢視是否成功。如果沒有提示則刪除成功。

2.下載mysql 5.7

mysql官網下載地址
在這裡插入圖片描述
將下載好的壓縮包上傳到伺服器,工具自選,我這裡用的是filezilla。
解壓檔案,命令:

tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

解壓完成後刪除壓縮包

rm -f mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

3.建立mysql使用者及使用者組

groupadd mysql
//useradd -r引數表示mysql使用者是系統使用者,不可用於登入系統;第一個mysql是使用者組,第二個mysql是使用者
useradd -r -g mysql mysql

檢視使用者組是否建立成功

groups mysql

在這裡插入圖片描述
將mysql目錄訪問許可權賦為myql使用者

chown -R mysql /home/mysql//home/mysql/mysql-5.7.29-linux-glibc2.12-x86_64

改變mysql目錄的使用者組屬於mysql組

chgrp -R mysql /home/mysql//home/mysql/mysql-5.7.29-linux-glibc2.12-x86_64

檢視許可權被修改
在這裡插入圖片描述

4.配置mysql

//建立mysql.sock 並設定許可權(mysql目錄下)
mkdir temp
cd temp
//建立mysql.sock檔案
touch mysql.sock
//設定許可權
chown -R mysql:mysql /home/mysql/temp/mysql.sock
chmod 755 /home/mysql/temp/mysqlsock

在這裡插入圖片描述
建立/tmp/mysqld.pid。並設定許可權

在這裡插入圖片描述

5.初始化mysql

bin/mysqld --initialize --user=mysql --basedir=/home/mysql/mysql-5.7.29-linux-glibc2.12-x86_64/ --datadir=/home/mysql/data/

這裡遇到一個問題,問題如下
在這裡插入圖片描述
於是,根據提示安裝libaio

yum -y install yum install  libaio-devel.x86_64

在這裡插入圖片描述
安裝完成後重新執行初始化命令,發現又出現如下錯誤
在這裡插入圖片描述
這裡是因為data目錄下已經生成了一些檔案,需要把這些檔案刪除
在這裡插入圖片描述
刪除之後再重新執行就可以了。

6.啟動與報錯問題解決

1.首先,我是遇到了如下這個錯誤。
在這裡插入圖片描述
根據提示對對應的檔案賦許可權就可以了,可能會有多個。一直執行下去就行。

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

2.然後,是遇到這個2002的錯誤
在這裡插入圖片描述
解決問題命令:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

3.繼續登入,出現以下問題在這裡插入圖片描述
解決方案,在/etc/my.cnf檔案中加入一行:skip-grant-tables
然後就可以免密登入,登入之後再修改root使用者密碼,最後一定記得刪除my.cnf檔案中的skip-grant-tables這句程式碼。

需注意的是5.7版本中沒有password欄位了,改為了authentication_string

update user set authentication_string=password('***') where user='root';

4.修改後第一次登入會讓你重新設定密碼

alter user 'root'@'localhost' identified by 'your password'

在這裡插入圖片描述
5.使用Navicat連線時出現以下錯誤
在這裡插入圖片描述

登入伺服器,執行

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123..' WITH GRANT OPTION;

然後就可以連線了

在這裡插入圖片描述