0難度讓你在Server安裝設定MySQL

這是一篇只要複製貼上,注意小細節就能讓你輕鬆在ubuntu server設定好MySQL的文章

林鼎淵
Dean Lin
5 min readJun 16, 2020

--

海豚好可愛

文章架構如下:

  1. 安裝MySQL
  2. 設定MySQL可以讓外網連線
  3. MySQL防火牆設定
  4. 建立新DB
  5. 新增/刪除使用者及權限
  6. 列出資料庫有權限的使用者列表
  7. 列出所有User權限表
  8. 修改MySQL root密碼
  9. 修改整體密碼規則強度

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. 也歡迎您到書局選購支持,透過豐富的案例來重新檢視自己的職涯

--

--

林鼎淵
Dean Lin

職涯中培育過多名工程師,🧰 目前在外商公司擔任 Software Specialist |✍️ 我專注寫 (1)最新技術 (2)團隊合作 (3)工程師職涯的文章,出版過 5 本專業書籍|👏🏻 如果對這些主題感興趣,歡迎點擊「Follow」來關注我~