centos 安裝 mysql8

前言

學數據庫一般都是mysql起手,最好就是自己搭建一個mysql服務可以弄明白很多知識。首先,得有一個linux服務器,我的是騰訊雲的最低配,centos7.6,打算安裝mysql8,8和以前的版本算是一個大的更迭,有不少變化,使用的時候可以多翻看手冊。

1.安裝方式

兩種方式:
1.在線安裝(很慢,很慢,很慢…)
2.離線安裝(需要提前下載,最好是國內鏡像,速度稍微快點)

2.在線安裝

在線安裝真的很慢,但是我選擇的還是在線安裝,主要是方便

1.配置mysql源

官網:https://dev.mysql.com/downloads/repo/yum/

滿足我需求的是下面這個源

把這個源弄到服務器上有2個辦法

1:直接下載,注意下載鏈接不是官網的鏈接,是庫的鏈接

先cd到一個保存的目錄下,然後運行下面命令
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
這是一個centos7版本的依賴

2:在官網上下載源,然後傳到服務器上,可以使用 rz 命令,安裝rz,sz命令

yum -y install lrzsz

我選的是第二種方式,主要考慮到以後還需要用 rz,sz命令上傳下載文件,先裝上試試是否可用

源弄到服務器上以後,直接本地安裝源

yum install mysql80-community-release-el7-3.noarch.rpm

這樣源就生效了,裏面包括安裝mysql的所有下載鏈接和相關配置

2.安裝mysql
yum --enablerepo=mysql80-community install mysql-community-server
讓剛配置的源生效,並開始安裝mysql

這個下載過程很慢,總共500-600M,下載幾十 k每秒,期間會跳出來各種確定是否的選項,不要糾結,全選y

其實下載的過程不用管,我是半夜下載的,早上看一下都下載完了,再把剛纔那個命令跑一下,它會自動檢查已經下載的包,然後跳出選擇選項,再選擇y也是沒問題的

3.啓動mysql服務
systemctl start mysqld

3.離線安裝

個人推薦這種方式,tar包下載好以後安裝會非常快

官網:https://dev.mysql.com/downloads/mysql/

滿足我要求的是下面這個包

說白了就是下載那個最大的tar包,然後rz命令傳到服務器上,然後解壓,解壓有好多包,只有下面四個是我們需要的

mysql-community-common-8.0.18-1.el7.x86_64.rpm
mysql-community-libs-8.0.18-1.el7.x86_64.rpm
mysql-community-client-8.0.18-1.el7.x86_64.rpm 
mysql-community-server-8.0.18-1.el7.x86_64.rpm

還有幾個帶 compat 字樣的包,是兼容包,如果要向下兼容版本需求,建議安裝上,依次安裝上面的幾個包,如果安裝兼容包,最後安裝

rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm 
rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm

安裝完以後初始化mysql

mysqld --initialize

修改目錄權限

sudo chown mysql:mysql /var/lib/mysql -R

啓動mysql服務

systemctl start mysqld

4.查看服務狀態

查看mysql服務狀態

service mysqld status

如果有這個

就是成功的

4.查看默認密碼

在文件

/var/log/mysqld.log

有一個默認密碼

默認用戶:root

默認密碼:見上圖

mysql -uroot -p
輸入密碼就可以登錄了

5.修改默認密碼

默認密碼進入mysql以後你會發現壓根就不能進行有效的操作,會提示讓你修改密碼,mysql8的密碼策略要求包括:大小寫、特殊字符、數字、最短8位長度

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Test@123';

6.遠程連接mysql

mysql 好多的權限控制都在mysql的表裏面,包括增刪改查,遠程連接,密碼策略等等都在,本地連接mysql以後,使用下面命令查看現有的mysql庫

show databases;

可以看到有4個庫

其中mysql庫是常用的,進入mysql庫的命令

use mysql;

進去以後查看一下mysql庫裏面的表

show tables;

可以看到很多表

其中user表是控制用戶權限的表,我們先看一下root用戶的連接方式

select host,user from user;

root用戶的host字段是localhost,啥意思呢,就是說root只允許本機連接,其他任何地方是不能用的,這就很坑了,所以修改一下變成任何地方(%)都可以連接(如果不修改,其他地方連接就會報1130的錯誤)

 update user set host='%' where user='root';

記得刷新一下權限

flush privileges;

這時候可以遠程連接mysql,但是記得用windows的cmd連接,爲啥呢,因爲其他linux連接或者navicate連接都會有問題,這些問題另外處理。

mysql -h ip地址 -P 3306 -u root -p
輸入密碼就可訪問

7.navicate報1251錯誤處理

這個主要是navicate加密方式和mysql8不一致導致的,最簡單的方式就是修改mysql8的加密方式

首先設置加密方式

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '自己設置的密碼';

再次更新密碼,設置爲永不過期

ALTER USER 'root'@'%' IDENTIFIED BY '自己設置的密碼' PASSWORD EXPIRE NEVER;

刷新一下權限

flush privileges;

8.上面步驟走完幾乎把大部分坑都可以避開

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章