1.下載MySQL
下載:https://dev.mysql.com/downloads/mysql/
選擇操作系統類型以及操作系統版本:
將mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz上傳到Linux,不懂上傳,請看《WinSCP下載安裝和上傳文件到Linux》
2.安裝
2.1.解壓
tar -xvJf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz -C /usr/local
解壓tar.xz 用 -xvJf,解壓tar.gz 用 -zxvf。
2.2.轉移目錄
爲什麼要轉移目錄,因爲是mysql-8.0.19-linux-glibc2.12-x86_64太長了,看起來不爽。
# 進入/usr/local下
cd /usr/local
# 在當前目錄,將mysql-8.0.19-linux-glibc2.12-x86_64文件夾下的所有內容複製到mysql文件夾中,自動創建mysql
mv mysql-8.0.19-linux-glibc2.12-x86_64/ mysql
2.3.添加配置文件
# 創建/etc/my.cnf
touch /etc/my.cnf
編輯vim /etc/my.cnf寫入一下內容:
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
user=mysql
socket=/tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
2.4.配置環境變量
# 編輯 /etc/profile
vim /etc/profile
寫入一下內容:
export MYSQL_HOME=/usr/local/mysql
export PATH=${MYSQL_HOME}/bin:${MYSQL_HOME}/lib:$PATH
2.5.創建用戶組和用戶
groupadd mysql # 創建用戶組,組名mysql
useradd -g mysql mysql # 第一個是用戶組,第二個是用戶名
chown -R mysql:mysql /usr/local/mysql/ # 指定文件擁有者
2.6.預先創建自定義目錄
mkdir /usr/local/mysql/data #創建存儲數據的文件夾
2.7.初始化mysql
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
記住紅框裏的是root的臨時密碼。
2.8.啓動mysql服務器
service mysqld start
可以查看是否啓動成功:
service mysqld status
也可以這樣查:
ps -ef|grep -i mysql
2.9.使用mysql客戶端連接mysql
/usr/local/mysql/bin/mysql -u root -p password
password是以上紅框裏的臨時密碼
2.10.修改mysql的默認初始化密碼
修改root的密碼爲root
alter user 'root'@'localhost' identified by 'root';
2.11.修改root用戶可以遠程連接
use mysql
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES; # 刷新
3.連接測試
用 Navicat連接
報錯:
Client does not support authentication protocol requested by server; consider upgrading MySQL client
主要原因是mysql服務器要求的認證插件版本與客戶端不一致造成的。
打開mysql命令行輸入如下命令查看,系統用戶對應的認證插件:
關
解決方法:
我不希望更新本地的客戶端版本,想直接使用原來的環境來鏈接。
解決方法是將root的plugin改成mysql_native_password。相當於降了一級。
mysql官方網站提供了從mysql_old_password升級到mysql_native_password,我們可以仿照這個。官方原文如下:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
這行代碼有兩層含義,第一:修改root的密碼爲’root’,摒棄原來的舊密碼。第二:使用mysql_native_password對新密碼進行編碼。
如果執行ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’;報錯,請往下看:
use mysql;
select user,host from user;
所以將 ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’;改成ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘root’;
記得刷新
FLUSH PRIVILEGES; # 刷新
於其他操作,請參考https://www.jb51.net/article/160736.htm
此文參考
https://blog.csdn.net/q258523454/article/details/84555847
https://my.oschina.net/u/3295928/blog/1811804
https://www.jb51.net/article/160736.htm