๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

XAMPP์—์„œ ๋‘ ๊ฐœ ์ด์ƒ์˜ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋ฐ ์„ค์ • ๊ฐ€์ด๋“œ

by pa2 2024. 12. 26.

XAMPP์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๊ฐœ ์ด์ƒ์˜ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ถฉ๋ถ„ํžˆ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” MySQL์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์œผ๋กœ, ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ XAMPP ํ™˜๊ฒฝ์—์„œ ๊ด€๋ฆฌํ•˜๊ณ  ๋กœ์ปฌ ๊ฐœ๋ฐœ์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ ๊ตฌ์ฒด์ ์ธ ์„ค์ • ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.


1. ๊ธฐ๋ณธ ๊ฐœ๋…

  • MySQL ์ธ์Šคํ„ด์Šค: XAMPP๋Š” ๋‹จ์ผ MySQL ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ, ์ด ์•ˆ์—์„œ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ: ๋‹จ์ผ MySQL ์„œ๋ฒ„ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ๋‹ค์ค‘ MySQL ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์„œ๋กœ ๋…๋ฆฝ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๋ฐฉ๋ฒ• 1: ๋‹จ์ผ MySQL ์„œ๋ฒ„์— ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ

1) MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ

  1. phpMyAdmin ์‚ฌ์šฉ:
    • XAMPP ์ œ์–ดํŒ์—์„œ phpMyAdmin ์‹คํ–‰.
    • phpMyAdmin์—์„œ ์ƒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ:
      1. phpMyAdmin ์ƒ๋‹จ์˜ "๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค" ํƒญ ํด๋ฆญ.
      2. ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„ ์ž…๋ ฅ ํ›„ ์ƒ์„ฑ ๋ฒ„ํŠผ ํด๋ฆญ.
      • ์˜ˆ: database1, database2.
  2. MySQL CLI ์‚ฌ์šฉ:
    • XAMPP์˜ MySQL ํ„ฐ๋ฏธ๋„์— ์ ‘์†ํ•˜์—ฌ ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ:
      sql
      ์ฝ”๋“œ ๋ณต์‚ฌ
      CREATE DATABASE database1; CREATE DATABASE database2;

2) PHP ์ฝ”๋“œ์—์„œ ๋‹ค์ค‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ

PHP์—์„œ ๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๊ฐœ๋ณ„ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ ์ฝ”๋“œ:

php
์ฝ”๋“œ ๋ณต์‚ฌ
<?php // Database 1 ์—ฐ๊ฒฐ $host = "localhost"; $user = "root"; $password = ""; // XAMPP ๊ธฐ๋ณธ ์„ค์ •์€ ๋น„๋ฐ€๋ฒˆํ˜ธ ์—†์Œ $db1 = "database1"; $conn1 = new mysqli($host, $user, $password, $db1); if ($conn1->connect_error) { die("Database 1 ์—ฐ๊ฒฐ ์‹คํŒจ: " . $conn1->connect_error); } echo "Database 1 ์—ฐ๊ฒฐ ์„ฑ๊ณต"; // Database 2 ์—ฐ๊ฒฐ $db2 = "database2"; $conn2 = new mysqli($host, $user, $password, $db2); if ($conn2->connect_error) { die("Database 2 ์—ฐ๊ฒฐ ์‹คํŒจ: " . $conn2->connect_error); } echo "Database 2 ์—ฐ๊ฒฐ ์„ฑ๊ณต"; ?>

์„ค๋ช…:

  • $conn1๊ณผ $conn2๋Š” ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋…๋ฆฝ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๋ ค๋ฉด ํ•„์š”ํ•œ SQL ์ฟผ๋ฆฌ๋ฅผ ๊ฐ๊ฐ์˜ ์—ฐ๊ฒฐ ๊ฐ์ฒด์—์„œ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

3. ๋ฐฉ๋ฒ• 2: ๋‹ค์ค‘ MySQL ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค ์‹คํ–‰

1) ํ•„์š”์„ฑ

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์„œ๋กœ ์™„์ „ํžˆ ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ์„ค์ •์„ ๊ฐ€์ ธ์•ผ ํ•  ๊ฒฝ์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ: ์„œ๋กœ ๋‹ค๋ฅธ ํฌํŠธ์—์„œ MySQL ์„œ๋ฒ„ ์‹คํ–‰.

2) ๋‘ ๋ฒˆ์งธ MySQL ์ธ์Šคํ„ด์Šค ์„ค์ •

  1. MySQL ํด๋” ๋ณต์‚ฌ:
    • XAMPP ์„ค์น˜ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ mysql ํด๋”๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ์ƒˆ๋กœ์šด ํด๋” ์ƒ์„ฑ:
      • ์˜ˆ: mysql2.
  2. ์„ค์ • ํŒŒ์ผ ์ˆ˜์ •:
    • mysql2/bin/my.ini ํŒŒ์ผ์„ ์—ด๊ณ  ์•„๋ž˜ ํ•ญ๋ชฉ ์ˆ˜์ •:
      • ํฌํŠธ ๋ณ€๊ฒฝ:
        ini
        ์ฝ”๋“œ ๋ณต์‚ฌ
        port=3307
      • ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ ๋ณ€๊ฒฝ:
        ini
        ์ฝ”๋“œ ๋ณต์‚ฌ
        datadir="/path/to/xampp/mysql2/data"
  3. ์ƒˆ๋กœ์šด MySQL ์„œ๋น„์Šค ๋“ฑ๋ก:
    • ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ ์•„๋ž˜ ๋ช…๋ น ์‹คํ–‰:
      cmd
      ์ฝ”๋“œ ๋ณต์‚ฌ
      cd /path/to/xampp/mysql2/bin mysqld --install MySQL2 --defaults-file="C:/path/to/xampp/mysql2/bin/my.ini"
  4. ์ƒˆ ์ธ์Šคํ„ด์Šค ์‹œ์ž‘:
    • XAMPP ์ œ์–ดํŒ์—์„œ ๋‘ ๋ฒˆ์งธ MySQL ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜, ๋ช…๋ น์–ด๋กœ ์‹คํ–‰:
      cmd
      ์ฝ”๋“œ ๋ณต์‚ฌ
      net start MySQL2

3) ๋‹ค์ค‘ ์„œ๋ฒ„ ์—ฐ๊ฒฐ

  • ๊ฐ MySQL ์„œ๋ฒ„๋Š” ๋‹ค๋ฅธ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ PHP ์ฝ”๋“œ์—์„œ ๋‹ค๋ฅธ ํฌํŠธ๋ฅผ ์ง€์ •ํ•ด ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ ์ฝ”๋“œ:

php
์ฝ”๋“œ ๋ณต์‚ฌ
<?php // ์ฒซ ๋ฒˆ์งธ MySQL ์„œ๋ฒ„ (ํฌํŠธ 3306) $host1 = "localhost"; $port1 = 3306; $db1 = "database1"; $conn1 = new mysqli($host1, $user, $password, $db1, $port1); if ($conn1->connect_error) { die("์ฒซ ๋ฒˆ์งธ MySQL ์„œ๋ฒ„ ์—ฐ๊ฒฐ ์‹คํŒจ: " . $conn1->connect_error); } // ๋‘ ๋ฒˆ์งธ MySQL ์„œ๋ฒ„ (ํฌํŠธ 3307) $host2 = "localhost"; $port2 = 3307; $db2 = "database2"; $conn2 = new mysqli($host2, $user, $password, $db2, $port2); if ($conn2->connect_error) { die("๋‘ ๋ฒˆ์งธ MySQL ์„œ๋ฒ„ ์—ฐ๊ฒฐ ์‹คํŒจ: " . $conn2->connect_error); } ?>

4. ์„ ํƒ ๋ฐฉ๋ฒ• ์š”์•ฝ

  1. ๋‹จ์ผ MySQL ์„œ๋ฒ„, ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค:
    • ๊ฐ„๋‹จํ•œ ์„ค์ •.
    • ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ์ ํ•ฉ.
  2. ๋‹ค์ค‘ MySQL ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค:
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„ ์™„์ „ํ•œ ๋…๋ฆฝ์„ฑ ํ•„์š” ์‹œ.
    • ํ…Œ์ŠคํŠธ๋‚˜ ํŠน๋ณ„ํ•œ ํ™˜๊ฒฝ ๋ถ„๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ.

5. FAQ

Q1. ๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„œ๋กœ ์ฐธ์กฐํ•ด์•ผ ํ•  ๊ฒฝ์šฐ๋Š”?

A1. ๋‹จ์ผ MySQL ์„œ๋ฒ„์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ, ์ฟผ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„์„ ๋ช…์‹œํ•˜์—ฌ ์ฐธ์กฐ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ:

sql
์ฝ”๋“œ ๋ณต์‚ฌ
SELECT a.*, b.* FROM database1.table1 a JOIN database2.table2 b ON a.id = b.id;

Q2. ๋‹ค์ค‘ MySQL ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์„ฑ๋Šฅ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋‚˜์š”?

A2. ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋Š” ํฐ ๋ฌธ์ œ๊ฐ€ ์—†์ง€๋งŒ, ๋ฆฌ์†Œ์Šค๊ฐ€ ์ œํ•œ๋œ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋‹ค์ค‘ ์ธ์Šคํ„ด์Šค๊ฐ€ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Q3. XAMPP์—์„œ ์ž๋™์œผ๋กœ ๋™์ž‘ํ•˜๋„๋ก ์„ค์ •ํ•˜๋ ค๋ฉด?

A3. ๋‹ค์ค‘ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, services.msc์—์„œ ์ƒˆ MySQL ์„œ๋น„์Šค(MySQL2)๋ฅผ ์ž๋™ ์‹œ์ž‘์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.


6. ๊ฒฐ๋ก 

  • ๊ฐ„๋‹จํ•œ ํ™˜๊ฒฝ์—์„œ๋Š” ๋‹จ์ผ MySQL ์„œ๋ฒ„์—์„œ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.
  • ๋ณต์žกํ•œ ํ™˜๊ฒฝ์ด๋‚˜ ๋…๋ฆฝ์„ฑ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ๋‹ค์ค‘ MySQL ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

TIP: ๊ฐœ๋ฐœ ์ดˆ๊ธฐ์—๋Š” ๋‹จ์ผ ์„œ๋ฒ„์—์„œ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ํ•„์š”์— ๋”ฐ๋ผ ๋‹ค์ค‘ ์„œ๋ฒ„๋กœ ์ „ํ™˜ํ•˜์„ธ์š”. ๐Ÿ˜Š

๋Œ“๊ธ€