0難度讓你在Server安裝設定MySQL
這是一篇只要複製貼上,注意小細節就能讓你輕鬆在ubuntu server設定好MySQL的文章
文章架構如下:
- 安裝MySQL
- 設定MySQL可以讓外網連線
- MySQL防火牆設定
- 建立新DB
- 新增/刪除使用者及權限
- 列出資料庫有權限的使用者列表
- 列出所有User權限表
- 修改MySQL root密碼
- 修改整體密碼規則強度
1. 安裝MySQL
在安裝MySQL的時候會問你很多問題,如果你沒有特殊需求就都用y通過,密碼強度部分需要記住自己是怎麼設定的(因為不同密碼強度的規則差異很大,詳情可以看這篇)
sudo apt updatesudo apt install mysql-serversudo mysql_secure_installation
安裝完成後你可以先進入MySQL看看
sudo mysql -u root -p
2. 設定MySQL可以讓外網連線
如果你所架設的MySQL是允許外網或者某個特定ip做連線的,你就做以下調整
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnfbind-address = 0.0.0.0 //這個是指誰都可以連線的意思sudo suservice mysql restart //設定完成後要重啟才會生效
3. MySQL防火牆設定
以下為最基礎的防火牆設定,資料庫慣用的port為3306,22是給ssh登入使用的
sudo apt-get install ufwsudo ufw enablesudo ufw allow 3306sudo ufw allow 22/tcpsudo ufw status
4. 建立新DB
sudo mysql -u root -p
進入MySQL後你可以用指令的方式建立DB如下,如果你需要修改他默認編碼也能夠透過ALTER去做修正
CREATE DATABASE db_name;ALTER DATABASE xxx_db CHARACTER SET utf8 COLLATE utf8_bin;
5. 新增/刪除使用者及權限
新增mysql使用者及賦予權限
use mysql; //進入這個資料庫create user ‘某某人’@‘哪個ip可以(%為全部)’ IDENTIFIED WITH mysql_native_password BY ‘密碼’;CREATE DATABASE `資料庫名稱`;grant all privileges on 資料庫名稱(如果沒填就是全部).* to ‘某某人’@‘哪個ip可以’ identified by ‘密碼’;
刪除使用者及其權限
REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘某某人’@‘哪個ip可以(%為全部)’;DROP USER ‘某某人’@‘哪個ip可以(%為全部)’;flush privileges; //刷新權限select * from information_schema.user_privileges;//確認該User權限已被刪除
6. 列出資料庫有權限的使用者列表
select user from mysql.db where db=’資料庫名稱’;
7. 列出所有User權限表
select * from information_schema.user_privileges;
8. 修改mysql root密碼
請切記要修改root的密碼,避免駭客侵入你的伺服器後可以無所忌憚的讀取你的資料
use mysql;// 先指定 plugin 為 mysql_native_passwordUPDATE user SET plugin=’mysql_native_password’ WHERE User=’root’;UPDATE mysql.user SET authentication_string=PASSWORD(‘password’) WHERE USER=’root’;FLUSH PRIVILEGES;
9. 修改整體密碼規則強度
如果你在安裝時對於密碼強度的問題是隨便選的,你可以在登入MySQL後用這個指令做修正
set global validate_password_policy=0;
密碼強度檢查等級,0/LOW、1/MEDIUM、2/STRONG
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters;預設是1,即MEDIUM,所以剛開始設定的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字元。
修改密碼長度限制
set global validate_password_length=6;
千萬不要為了圖方便而設計複雜度太低的密碼
▶︎ 如果這篇文章有幫助到你1. 可以點擊下方「Follow」來追蹤我~
2. 可以對文章拍手讓我知道 👏🏻你們的追蹤與鼓勵是我繼續寫作的動力 🙏🏼▶︎ 如果你對工程師的職涯感到迷茫1. 也許我在iT邦幫忙發表的系列文可以給你不一樣的觀點 💡
2. 也歡迎您到書局選購支持,透過豐富的案例來重新檢視自己的職涯