๐Ÿ› ️ [Programming ์ด๊ฒƒ ์ €๊ฒƒ] MySQL ๊ณ„์ • ๊ด€๋ฆฌ(DB ์‚ฌ์šฉ์ž ๊ณ„์ • ์ƒ์„ฑ, ์„ค์ • ๋“ฑ)

MySQL์˜ root ๊ณ„์ •์€ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž ์ „์šฉ์ด๊ธฐ ๋•Œ๋ฌธ์—,

์šด์˜ ์›น์‚ฌ์ดํŠธ์—์„œ๋Š” ๋ฐ˜๋“œ์‹œ ๋ณ„๋„์˜ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ณด์•ˆ์ƒ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.


✅ ๋ชฉํ‘œ

ํ•ญ๋ชฉ ์„ค์ • ๊ฐ’ ์˜ˆ์‹œ
์ƒˆ ๊ณ„์ • ์ด๋ฆ„ XXX_user
์ƒˆ ๋น„๋ฐ€๋ฒˆํ˜ธ securePassword123! (์ง์ ‘ ๋ฐ”๊พธ์„ธ์š”)
์ ‘์† ๊ถŒํ•œ XXX_db ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋งŒ ์ œํ•œ
์ ‘์† ํ˜ธ์ŠคํŠธ localhost (๋˜๋Š” % = ์ „์ฒด ํ—ˆ์šฉ)

๐Ÿ› ️ 1๋‹จ๊ณ„: MySQL์— root ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ

mysql -u root -p

๋˜๋Š” phpMyAdmin → SQL ํƒญ์—์„œ๋„ ๊ฐ€๋Šฅ


๐Ÿ› ️ 2๋‹จ๊ณ„: ์ƒˆ ์‚ฌ์šฉ์ž ๊ณ„์ • ์ƒ์„ฑ

CREATE USER 'XXX_user'@'localhost' IDENTIFIED BY 'securePassword123!';

๐Ÿ“Œ ํ•ด์„ค:

  • 'XXX_user' → ์ƒ์„ฑํ•  ์‚ฌ์šฉ์ž๋ช…

  • 'localhost' → ํ•ด๋‹น ์„œ๋ฒ„์—์„œ๋งŒ ์ ‘์† ํ—ˆ์šฉ (์›น์„œ๋ฒ„์™€ DB์„œ๋ฒ„๊ฐ€ ๋™์ผํ•  ๊ฒฝ์šฐ ์ ํ•ฉ)

  • 'securePassword123!' → ๋ฐ˜๋“œ์‹œ ๊ฐ•๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๊ต์ฒดํ•˜์„ธ์š”


๐Ÿ› ️ 3๋‹จ๊ณ„: ํŠน์ • DB์—๋งŒ ์ ‘๊ทผ ๊ถŒํ•œ ๋ถ€์—ฌ

GRANT ALL PRIVILEGES ON XXX_db.* TO 'XXX_user'@'localhost';

๐Ÿ“Œ ํ•ด์„ค:

  • XXX_db.* → ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ชจ๋“  ํ…Œ์ด๋ธ”

  • ALL PRIVILEGESSELECT, INSERT, UPDATE, DELETE ๋“ฑ์˜ ๊ถŒํ•œ์„ ํฌํ•จ


๐Ÿ› ️ 4๋‹จ๊ณ„: ๊ถŒํ•œ ๋ณ€๊ฒฝ ์ ์šฉ

FLUSH PRIVILEGES;

✅ ํ™•์ธ: ์ ‘์† ํ…Œ์ŠคํŠธ

๐Ÿ“„ inc/XXX_connect.php ์˜ˆ์‹œ

<?php
$host = "localhost";
$user = "XXX_user";
$pass = "securePassword123!";
$dbname = "XXX_db";

$conn = new mysqli($host, $user, $pass, $dbname);

if ($conn->connect_error) {
    die("❌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์‹คํŒจ: " . $conn->connect_error);
} else {
    echo "✅ DB ์—ฐ๊ฒฐ ์„ฑ๊ณต (์ผ๋ฐ˜ ์‚ฌ์šฉ์ž)";
}
?>

๐Ÿ”’ ๊ถŒํ•œ ์ œํ•œ ์˜ˆ์‹œ (์ฝ๊ธฐ ์ „์šฉ ๊ณ„์ •์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ)

GRANT SELECT ON XXX_db.* TO 'readonly_user'@'localhost' IDENTIFIED BY 'readonlypass!';

๐Ÿ“Œ ์ถ”๊ฐ€ ํŒ

ํ•ญ๋ชฉ ์„ค๋ช…
๐Ÿ” ๋ณด์•ˆ root ๊ณ„์ •์€ ์ ˆ๋Œ€ ์›น์—์„œ ์ง์ ‘ ์‚ฌ์šฉ ๊ธˆ์ง€
๐Ÿ”„ ๊ถŒํ•œ ์ฒ ํšŒ REVOKE ALL PRIVILEGES ON db.* FROM 'user'@'host';
๐Ÿ‘ฅ ์‚ฌ์šฉ์ž ์‚ญ์ œ DROP USER 'user'@'host';

✅ ์ •๋ฆฌ: ์šด์˜์šฉ ์‚ฌ์šฉ์ž ๊ณ„์ • ๋งŒ๋“ค๊ธฐ ์š”์•ฝ

CREATE USER 'XXX_user'@'localhost' IDENTIFIED BY 'securePassword123!';
GRANT ALL PRIVILEGES ON XXX_db.* TO 'XXX_user'@'localhost';
FLUSH PRIVILEGES;

๐Ÿ‘‰ ํ˜น์‹œ CMD์ฐฝ์—์„œ ์‹คํ–‰์„ ํ•˜๊ณ  ๋‹นํ™ฉํ•˜์‹œ๋Š” ๋ถ„์ด ์žˆ์„์ง€๋„ ๋ชฐ๋ผ์„œ ^^


์ €๋„ ์†”์งํžˆ ์ฒ˜์Œ ์ด๋Ÿฐ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋Š” ๋‹นํ™ฉ์Šค๋Ÿฌ์› ์Šต๋‹ˆ๋‹ค.

'mysql'์€(๋Š”) ๋‚ด๋ถ€ ๋˜๋Š” ์™ธ๋ถ€ ๋ช…๋ น, ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ, ๋˜๋Š” ๋ฐฐ์น˜ ํŒŒ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ด๋Š” Windows ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ(CMD)์—์„œ mysql ๋ช…๋ น์–ด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ๋œป์œผ๋กœ,
MySQL์ด PATH ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋“ฑ๋ก๋˜์–ด ์žˆ์ง€ ์•Š๊ฑฐ๋‚˜,
XAMPP, WAMP ๊ฐ™์€ ํ†ตํ•ฉ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ „์šฉ ์ฝ˜์†”์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค.


✅ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 1: XAMPP ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ (๊ฐ€์žฅ ๊ฐ„ํŽธํ•จ)

XAMPP ์„ค์น˜ ํ™˜๊ฒฝ์ด๋ผ๋ฉด ์•„๋ž˜ ์ ˆ์ฐจ๋กœ mysql ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

๐Ÿ“Œ ์‹คํ–‰ ์ˆœ์„œ

  1. ์‹œ์ž‘ ๋ฉ”๋‰ด → XAMPP Control Panel ์‹คํ–‰

  2. ์˜ค๋ฅธ์ชฝ Shell ๋ฒ„ํŠผ ํด๋ฆญ → ์ „์šฉ ์ฝ˜์†” ์ฐฝ ์—ด๋ฆผ

  3. ์•„๋ž˜์ฒ˜๋Ÿผ ์ž…๋ ฅ:

mysql -u root -p
  1. ๋น„๋ฐ€๋ฒˆํ˜ธ ์—†์œผ๋ฉด ๋ฐ”๋กœ Enter, ์žˆ์œผ๋ฉด ์ž…๋ ฅ


✅ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 2: CMD์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•˜๋ ค๋ฉด mysql.exe ๊ฒฝ๋กœ ์ง€์ •

  1. MySQL์ด ์„ค์น˜๋œ ๊ฒฝ๋กœ ํ™•์ธ
    (์˜ˆ: C:\xampp\mysql\bin\mysql.exe ๋˜๋Š” C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe)

  2. ์•„๋ž˜์ฒ˜๋Ÿผ ์ „์ฒด ๊ฒฝ๋กœ๋ฅผ ๋ถ™์—ฌ์„œ ์‹คํ–‰:

"C:\xampp\mysql\bin\mysql.exe" -u root -p

๊ฒฝ๋กœ๋Š” ์„ค์น˜ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ˆ mysql.exe์˜ ์‹ค์ œ ์œ„์น˜๋ฅผ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.


✅ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 3: ํ™˜๊ฒฝ ๋ณ€์ˆ˜ PATH์— MySQL ๋“ฑ๋ก (์„ ํƒ์ )

  1. C:\xampp\mysql\bin ๊ฒฝ๋กœ๋ฅผ ๋ณต์‚ฌ

  2. ์ œ์–ดํŒ → ์‹œ์Šคํ…œ → ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ์„ค์ • → ํ™˜๊ฒฝ ๋ณ€์ˆ˜

  3. ์‚ฌ์šฉ์ž ๋ณ€์ˆ˜์—์„œ Path ํŽธ์ง‘ → ์ƒˆ ํ•ญ๋ชฉ์œผ๋กœ ์ถ”๊ฐ€

  4. CMD ์ƒˆ๋กœ ์—ด๊ณ  mysql -u root -p ์ž…๋ ฅ


⏱ ์ถ”์ฒœ: ์ง€๊ธˆ์€ ๋ฐฉ๋ฒ• ① "XAMPP Shell" ์‚ฌ์šฉ์ด ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ‘‰ XAMPP Control Panel > Shell ํด๋ฆญ → ๊ฑฐ๊ธฐ์„œ ๋ช…๋ น์–ด ์ž…๋ ฅ:

mysql -u root -p

๐Ÿ“Œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•๋„...



๐Ÿ“Œ ๋ณด์•ˆ์ƒ ๊ถŒ์žฅ ์‚ฌํ•ญ

๐Ÿ” ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์šด์˜ ํ™˜๊ฒฝ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ง์ ‘ ์„ค์ •ํ•ด ์ฃผ์„ธ์š”:

  • 12์ž๋ฆฌ ์ด์ƒ

  • ๋Œ€๋ฌธ์ž + ์†Œ๋ฌธ์ž + ์ˆซ์ž + ํŠน์ˆ˜๋ฌธ์ž ํฌํ•จ

  • ์˜ˆ: 'XXX@2024#Secure', 'Ai_Marketing#Admin1!'

๐Ÿ’ก ์˜ˆ์‹œ:

CREATE USER 'XXX_user'@'localhost' IDENTIFIED BY 'XXX@2024#Secure';

์ดํ›„ db_connect.php์— ๋‹ค์Œ์ฒ˜๋Ÿผ ์ž…๋ ฅํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค:

$user = "XXX_user";
$pass = "XXX@2024#Secure";

๐Ÿ” ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ๋ฐฉ๋ฒ• (์ด๋ฏธ ์ƒ์„ฑ๋œ ๊ณ„์ •์— ๋Œ€ํ•ด)

ALTER USER 'XXX_user'@'localhost' IDENTIFIED BY '์ƒˆ๋น„๋ฐ€๋ฒˆํ˜ธ!';

๋Œ“๊ธ€