ubuntu安裝Mysql數(shù)據(jù)庫(kù)及安全配置過(guò)程
前言
與其他的大型數(shù)據(jù)庫(kù)例如 Oracle、DB2、SQL Server 等相比,MySQL 自有它的不足之處,但是這絲毫也沒(méi)有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于 MySQL是開(kāi)放源碼軟件,因此可以大大降低總體擁有成本....
本次文章介紹了在ubuntu系統(tǒng)下如何安裝mysql數(shù)據(jù)庫(kù) 以及安裝之后你應(yīng)當(dāng)如何配置root密碼認(rèn)證和其他基本安全配置,還介紹了增加普通賬號(hào) 并賦予相應(yīng)的最小權(quán)限,及如何遠(yuǎn)程訪問(wèn)數(shù)據(jù)庫(kù)...
每一次命令都有相應(yīng)的截圖 十分的詳細(xì) 非常適合新手朋友們學(xué)習(xí)。
安裝mysql
直接運(yùn)行命令 安裝mysql
sudo apt-get update sudo apt install mysql-server

命令成功執(zhí)行后 mysql服務(wù)應(yīng)該是成功啟動(dòng) 監(jiān)聽(tīng)在本地127.0.0.1的端口3306
意思是只能本地連接mysql 不對(duì)外開(kāi)放
當(dāng)然如果你有這個(gè)需求 可以監(jiān)聽(tīng)在網(wǎng)卡上 只需修改配置文件就行。這個(gè)稍后會(huì)說(shuō) ,讓我們先配置下基本的安全策略
mysql基本安全配置
初次安裝mysql 建議運(yùn)行下面的命令 快捷地對(duì)數(shù)據(jù)庫(kù)做基本的安全配置,像root 密碼了,密碼復(fù)雜度了...
sudo mysql_secure_installation
1.增加密碼組件

詢(xún)問(wèn)我們是否要設(shè)置驗(yàn)證密碼組件?y
2.設(shè)置root密碼

可以看到數(shù)據(jù)庫(kù)為我們提供了三種密碼策略 中級(jí)策略 長(zhǎng)度大于等于8位 需是數(shù)字 字母大小寫(xiě) 特殊字符的組合
選擇一種密碼策略 enter 0

這里出了點(diǎn)錯(cuò)誤,密碼一直不能通過(guò) 即使我沒(méi)有選擇y 也不是密碼不符合要求
提示我們要使用alter user 的方式來(lái)設(shè)置密碼 好吧 我們先進(jìn)入數(shù)據(jù)庫(kù)把密碼設(shè)置一下 之后繼續(xù)配置
sudo mysql mysql> alter user 'root'@'localhost' identified with mysql_native_password by by '123.Shelter';
需要注意的是默認(rèn)的密碼策略是中級(jí) 必須是數(shù)字大小寫(xiě)字母 特殊符號(hào)的8位以上組合
![]()
成功后 exit 退出
繼續(xù) sudo mysql_secure_installation 進(jìn)行配置

已經(jīng)設(shè)置過(guò)密碼不需要改變密碼了 Press n
3.禁用匿名用戶(hù)

要移除匿名用戶(hù)嗎? 我們肯定不希望系統(tǒng)的數(shù)據(jù)庫(kù)隨便被他人查看 所以最好移除掉匿名用戶(hù)
假如我是學(xué)校教數(shù)據(jù)庫(kù)的老師 ,我希望每個(gè)學(xué)生都能夠連接上這個(gè)數(shù)據(jù) 練習(xí)sql語(yǔ)句 ,那匿名訪問(wèn)再合適不過(guò)了。
4.root 遠(yuǎn)程登錄

正常地 root用戶(hù)只允許本地 你是否禁用掉root的遠(yuǎn)程登錄 ?n
root是數(shù)據(jù)庫(kù)的最高權(quán)限用戶(hù) ,如果可以遠(yuǎn)程登錄存在暴.力.破.解的可能,如果需要遠(yuǎn)程登錄 我們最好設(shè)置一個(gè)普通權(quán)限的用戶(hù),這點(diǎn)稍后會(huì)說(shuō)
5.移除test數(shù)據(jù)庫(kù)

默認(rèn)情況下下 數(shù)據(jù)庫(kù)為開(kāi)發(fā)者們提供了一個(gè)名為test數(shù)據(jù)庫(kù) 供學(xué)習(xí)與測(cè)試
如果你不需要 最好將它移除掉
6.刷新權(quán)限表

與配置文件不同 我們?cè)跀?shù)據(jù)庫(kù)所做的所有配置 都存在了sql數(shù)據(jù)庫(kù)中權(quán)限表里
詢(xún)問(wèn)我們要reload嗎 y
這里就全部配置好了
登錄數(shù)據(jù)查看基本配置
要進(jìn)入數(shù)據(jù)庫(kù) 這時(shí)候就需要使用密碼登錄了
mysql -u root -p

查看當(dāng)前數(shù)據(jù)庫(kù)下存在的用戶(hù)
mysql> select user,authentication_string,plugin,host from mysql.user;

(這里仍然可以使用之前的命令alter user 'root'@'localhost' identified with mysql_native_password by by '123.Shelter';修改密碼)
可以看到root是本地用戶(hù) 密碼是hash后的值
查看當(dāng)前密碼安全策略
mysql> select @@validate_password_policy;
查看具體的設(shè)置項(xiàng)
mysql> SHOW VARIABLES LIKE 'validate_password%';
這里可以再次設(shè)置策略 如
mysql> set global validate_password_policy=0;
增加數(shù)據(jù)庫(kù)普通賬號(hào)及分配相應(yīng)權(quán)限
假設(shè)我們現(xiàn)在想增加一個(gè)pikaqiu的賬號(hào) 為了安全考慮 這個(gè)賬號(hào)只允許訪問(wèn)pikaqiu數(shù)據(jù)庫(kù)
1.先建立一個(gè)數(shù)據(jù)庫(kù)
mysql> create database pikaqiu;

2.增加賬號(hào)
mysql>create user 'pikaqiu'@'localhost' identified by 'Pikaqiu.123'
![]()
3.應(yīng)用權(quán)限
mysql>grant all privileges on pikaqiu.* to 'pikaqiu'@'localhost' with grant option;
![]()
pikaqiu這個(gè)賬號(hào)只擁有 pikaqiu庫(kù)的權(quán)限
4.刷新權(quán)限
mysql>flush privileges;

接下來(lái)測(cè)試一下 登錄pikaqiu賬號(hào)看看它是否能訪問(wèn)其他數(shù)據(jù)庫(kù)

可以看到相較于root用戶(hù)下的庫(kù) 這已經(jīng)少了很多
配置數(shù)據(jù)庫(kù)遠(yuǎn)程登錄
假設(shè)我們有需求 在外面web服務(wù)器要使用遠(yuǎn)程訪問(wèn)這臺(tái)數(shù)據(jù)庫(kù) 那么要什么設(shè)置呢。
1.增加一個(gè)遠(yuǎn)程賬號(hào)
mysql>create user 'ssh'@'%' identified by 'Ssh.1234'
![]()
2.添加一個(gè)數(shù)據(jù)庫(kù)
這里為了測(cè)試我添加了一個(gè)名為ssh的數(shù)據(jù)庫(kù)
mysql> create database ssh;
3.限制遠(yuǎn)程訪問(wèn)權(quán)限
我只想讓ssh這個(gè)用戶(hù) 只訪問(wèn)ssh這個(gè)數(shù)據(jù)庫(kù) 因此
mysql>grant all privileges on ssh.* to 'ssh'@'%' with grant option;
(這個(gè)命令需要sudo 權(quán)限下mysql)

4.修改配置文件 監(jiān)聽(tīng)網(wǎng)卡端口
這里還沒(méi)有結(jié)束 因?yàn)榇藭r(shí)還在監(jiān)聽(tīng)本地回環(huán)地址呢 先f(wàn)lush privileges; 一下 之后退出mysql
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 192.168.20.4
5.重啟服務(wù)
sudo systemctl restart mysql.service
可以使用 ss -anplt | grep 3306 查看鑒定端口是否改變

這里我用同學(xué)的電腦數(shù)據(jù)庫(kù)的客戶(hù)端連接測(cè)試


可以看到 遠(yuǎn)程成功地連接上了數(shù)據(jù)庫(kù)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql中的數(shù)據(jù)目錄用法及說(shuō)明
這篇文章主要介紹了mysql中的數(shù)據(jù)目錄用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-06-06
Linux下MYSQL 5.7 找回root密碼的問(wèn)題(親測(cè)可用)
這篇文章主要介紹了Linux下MYSQL 5.7 找回root密碼的問(wèn)題(親測(cè)可用),通過(guò) --skip-grant-tables 找回,新增完成后,:wq 保存退出,重啟mysqld服務(wù),具體內(nèi)容詳情跟隨小編一起看看吧2021-10-10
mysql將bin-log日志文件轉(zhuǎn)為sql文件的方法
這篇文章主要介紹了mysql將bin-log日志文件轉(zhuǎn)為sql文件的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
mysql alter table 修改表命令詳細(xì)介紹
MYSQL ALTER TABLE命令用于修改表結(jié)構(gòu),例如添加/修改/刪除字段、索引、主鍵等等,本文章通過(guò)實(shí)例向大家介紹MYSQL ALTER TABLE語(yǔ)句的使用方法,需要的朋友可以參考一下。2016-10-10
ARM64架構(gòu)下安裝mysql5.7.22的全過(guò)程
這篇文章主要介紹了ARM64架構(gòu)下安裝mysql5.7.22的全過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07
數(shù)據(jù)庫(kù)中的SELECT語(yǔ)句邏輯執(zhí)行順序分析
這篇文章主要介紹了數(shù)據(jù)庫(kù)中的SELECT語(yǔ)句邏輯執(zhí)行順序分析,并列出了一些例子,需要的朋友可以參考下2014-07-07

