Ubuntu Server 18 解除安裝MySQL5.*安裝MySQL8.0,實現遠端訪問資料庫
如果你在Ubuntu18直接用
sudo apt-get install mysql-client mysql-server
系統預設會安裝MySQL會預設安裝5.7,但是MySQL5.7版本最高只適配到Ubuntu17.04,而MySQL8.0最高適配到Ubuntu18.04。
強行安裝5.7會有一堆的問題等著你處理,與其等著一個個坑出現然後花時間解決,不如解除安裝5.7安裝8
一、解除安裝MySQL5.*
1.刪除mysql程式
sudo apt-get remove mysql-*
2.清理殘留的資料
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
它會跳出一個對話方塊,你選擇yes就好了
二、安裝MySQL8.0
1.更新檔案
首先去 MySQL官網 下載一個檔案
mysql-apt-config_0…***_all.deb
在資料夾中找到下載的具體檔案(如果你的Ubuntu是虛擬機器,則將這個檔案上傳到系統),並執行(下面的**是省略的意思,你自己要改)
sudo dpkg -i mysql-apt-config_0.*.****_all.deb
然後會出現一個紫色框介面。
它有四個選項。選擇第一個,enter確定,
然後又會出現一個紫色框介面,選擇8.0那個。enter確定,
會回到第一個紫色框,此時按上下鍵選擇 ok,enter確定。
最後更新資料來源
sudo apt-get update
2.安裝MySQL
現在執行
sudo apt-get install mysql-server
安裝過程中會詢問,都選擇yes
安裝最後會出現紫色框,讓你輸入密碼,輸入完成之後,會再讓你輸入一遍。確定。
輸入完成之後,會出現紫色框問你選擇密碼的加密方式。因為第一種加密方式Ubuntu不支援,所以我們選擇第二個加密方式。enter確定。
此時啟動MySQL:
service mysql start
進入MySQL:
mysql -uroot -p
最後附贈幾個常用命令(最後三個很多教程都有提到,但是起碼我寫這篇文章這次,並沒有正確生效,不過都有替代命令,所以就沒有深究
命令 | 說明 |
---|---|
mysql -uroot -p |
啟動MySQL服務 |
sudo netstat -tap | grep mysql |
檢查MySQL是否啟動成功 |
service mysql stop |
關閉MySQL服務 |
sudo /etc/init.d/mysql start |
|
sudo /etc/init.d/mysql restart |
|
sudo /etc/init.d/mysql stop |
三、授權遠端訪問
剛安裝的MySQL只能在系統中本地訪問,想用navicat等軟體遠端訪問還需要授權賬號遠端訪問。
作為學習用不考慮安全問題,你可以直接授權你的管理員賬號遠端訪問。
如果考慮到安全問題,建議針對不同的資料庫設定對應的遠端訪問賬號,或者授權給指定的IP
1.簡單授權
直接授權你的管理員賬號(預設是root)遠端訪問:
update user set host = '%' where user ='root';
FLUSH PRIVILEGES;
GRANT ALL ON 表示所有許可權,% 表示通配所有 host,可以訪問遠端。
2.指定授權
下面是一個簡單例子,授權使用者test1admin遠端訪問資料庫test1
2.1新建資料庫
建立測試資料庫test1:
create database test1;
2.2新建資料庫使用者
為資料庫test1建立對應使用者test1admin,密碼123,
CREATE USER 'test1admin'@'%' IDENTIFIED BY '123';
下面是一些程式碼的說明:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
欄位 | 說明 |
---|---|
username | 你將建立的使用者名稱, |
host | 指定該使用者在哪個主機上可以登陸,如果是本地使用者可用localhost,,如果想讓該使用者可以從任意遠端主機登陸,可以使用萬用字元%. |
password | 該使用者的登陸密碼,密碼可以為空,如果為空則該使用者可以不需要密碼登陸伺服器. |
2.3授權使用者
授權使用者test1admin管理資料庫testq1
GRANT ALL PRIVILEGES ON test1.* TO 'test1'@'%';
下面是一些程式碼示例
其中databaseName和tableName都可以用萬用字元 *
host可以用指定IP或者localhost表示本地,**%**表示遠端和本地
命令 | 說明 |
---|---|
GRANT ALL PRIVILEGES ON databaseName.tableName TO 'user'@'host'; |
授權指定資料庫給使用者 |
GRANT SELECT, UPDATE ON databaseName.tableName TO 'user'@'host'; |
授權指定資料庫的select和update許可權給使用者 |
EVOKE ALL PRIVILEGES ON databaseName.tableName TO 'user'@'host'; |
取消授權 |
2.4重新整理許可權
FLUSH PRIVILEGES;
本文一二步參考:https://blog.csdn.net/weixin_37946237/article/details/81634505
第一次使用markdown感謝:https://blog.csdn.net/tyyking/article/details/79682157