התקנה ועבודה בטרמינל (MySQL)

מדריך מקיף לעבודה עם MySQL דרך שורת הפקודה (Terminal/CMD), כולל Docker, התקנה מקומית ופקודות בסיסיות.


תוכן עניינים

  1. התחברות ל-MySQL - סקירה כללית
  2. עבודה עם Docker
  3. עבודה עם MySQL מקומי
  4. פקודות MySQL בסיסיות
  5. פקודות מתקדמות
  6. טיפים ופתרון בעיות

שיטות התחברות ל-MySQL

ישנן שלוש דרכים עיקריות להתחבר ל-MySQL:

שיטה מתי להשתמש יתרונות
Docker סביבת פיתוח מבודדת קל להתקנה, לא משבש את המערכת
התקנה מקומית שימוש קבוע, פרודקשן מהיר יותר, גישה ישירה
MySQL Workbench ממשק גרפי קל למתחילים, ויזואלי

במדריך זה נתמקד בשורת הפקודה (Terminal/CMD).


עבודה עם Docker

למה Docker?

Docker מאפשר להריץ MySQL בסביבה מבודדת (Container) ללא התקנה מלאה על המחשב.

יתרונות: - התקנה מהירה - קל לנקות (מחיקת Container) - לא משפיע על המערכת - אותה סביבה בכל מחשב


התקנה ראשונית - פעם אחת בלבד!

שלב 1: התקנת Docker Desktop

Windows/Mac: 1. הורידו מ-docker.com 2. התקן והפעל את Docker Desktop 3. ודאו ש-Docker Desktop רץ (סמל לוויתן במגש המערכת)

Linux:

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install docker.io

# התחל את Docker
sudo systemctl start docker
sudo systemctl enable docker

שלב 2: יצירת MySQL Container

פקודה ליצירת Container חדש:

docker run --name mysql-docker \
  -e MYSQL_ROOT_PASSWORD=YourPassword123! \
  -p 3306:3306 \
  -d mysql:latest

הסבר על הפקודה:

חלק משמעות
docker run יוצר ומריץ Container חדש
--name mysql-docker שם ה-Container (אפשר לבחור כל שם)
-e MYSQL_ROOT_PASSWORD=... הגדרת סיסמה למשתמש root
-p 3306:3306 מיפוי פורט (3306 = פורט MySQL)
-d הרצה ברקע (Detached mode)
mysql:latest תמונת MySQL העדכנית ביותר

שימו לב: פקודה זו רק פעם אחת! ה-Container ייצור ויישאר קיים.


פקודות Docker יומיומיות

בדיקת סטטוס Containers
# הצגת Containers פעילים
docker ps

# הצגת כל ה-Containers (כולל כבויים)
docker ps -a

פלט לדוגמה:

CONTAINER ID   IMAGE          STATUS         PORTS                    NAMES
abc123def456   mysql:latest   Up 10 minutes  0.0.0.0:3306->3306/tcp   mysql-docker

הסבר: - STATUS: Up = Container פועל - STATUS: Exited = Container כבוי


הפעלת Container
# הפעלת Container שכבוי
docker start mysql-docker

מתי להשתמש: - אחרי אתחול מחדש של המחשב - אחרי שעצרת את ה-Container


עצירת Container
# עצירת Container פעיל
docker stop mysql-docker

מתי להשתמש: - כשסיימת לעבוד - לפני כיבוי המחשב (אופציונלי)


כניסה ל-MySQL דרך Docker

הפקודה המלאה:

docker exec -it mysql-docker mysql -u root -p

הסבר: - docker exec - הריצו פקודה בתוך Container פעיל - -it - מצב אינטראקטיבי (Interactive Terminal) - mysql-docker - שם ה-Container - mysql - הפקודה להפעלת MySQL CLI - -u root - התחבר כמשתמש root - -p - יבקש סיסמה (מקלידים אותה בשורה הבאה)

אלטרנטיבה (עם הסיסמה בפקודה):

docker exec -it mysql-docker mysql -u root -pYourPassword123!

⚠️ אזהרה: הסיסמה תופיע בהיסטוריית הטרמינל!


צפייה ב-Logs
# הצגת לוגים של ה-Container
docker logs mysql-docker

# הצגת לוגים בזמן אמת
docker logs -f mysql-docker

שימושי לאיתור בעיות!


מחיקת Container (זהירות!)
# עצירה ומחיקה מלאה
docker stop mysql-docker
docker rm mysql-docker

⚠️ אזהרה: כל הנתונים ב-Container יימחקו!

לשמירת נתונים, השתמשו ב-Volumes:

docker run --name mysql-docker \
  -e MYSQL_ROOT_PASSWORD=YourPassword123! \
  -p 3306:3306 \
  -v mysql-data:/var/lib/mysql \
  -d mysql:latest

סדר פעולות מלא ב-Docker

תהליך עבודה יומיומי:

# 1. וודא ש-Docker Desktop פועל (Windows/Mac)

# 2. בדוק אם ה-Container קיים
docker ps -a

# 3. הפעל את ה-Container אם הוא כבוי
docker start mysql-docker

# 4. בדוק שהוא רץ
docker ps

# 5. התחבר ל-MySQL
docker exec -it mysql-docker mysql -u root -p
# הזן סיסמה: YourPassword123!

# 6. עבוד עם SQL
mysql> SHOW DATABASES;
mysql> USE my_database;
mysql> SELECT * FROM users;

# 7. צא מ-MySQL
mysql> EXIT;

# 8. (אופציונלי) עצור את ה-Container
docker stop mysql-docker

עבודה עם MySQL מקומי

התקנה מקומית של MySQL

Windows
  1. הורידו את MySQL Community Server:
  2. היכנסו ל-dev.mysql.com/downloads
  3. בחרו את הגרסה ל-Windows
  4. הורידו ה-Installer

  5. התקן:

  6. הריצו את ה-Installer
  7. בחרו "Developer Default" או "Server Only"
  8. הגדירו סיסמה ל-root
  9. השאר את כל ההגדרות כברירת מחדל

  10. בדיקה:

    mysql --version

macOS

דרך Homebrew (מומלץ):

# התקנת Homebrew (אם אין)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# התקנת MySQL
brew install mysql

# הפעלת MySQL
brew services start mysql

# הגדרת אבטחה ראשונית
mysql_secure_installation

Linux (Ubuntu/Debian)
# עדכון מאגר חבילות
sudo apt update

# התקנת MySQL Server
sudo apt install mysql-server

# הפעלת MySQL
sudo systemctl start mysql
sudo systemctl enable mysql

# הגדרת אבטחה
sudo mysql_secure_installation

התחברות ל-MySQL מקומי

פקודת התחברות בסיסית:

mysql -u root -p

הסבר: - mysql - פקודת MySQL CLI - -u root - שם משתמש (root = מנהל) - -p - תבקש סיסמה

אחרי הזנת הסיסמה תראו:

Welcome to the MySQL monitor.
mysql>

התחברות למסד נתונים ספציפי:

mysql -u root -p database_name

התחברות כמשתמש אחר:

mysql -u username -p

התחברות לשרת מרוחק:

mysql -h hostname -u username -p
# דוגמה:
mysql -h 192.168.1.100 -u admin -p

פקודות MySQL בסיסיות

ניהול מסדי נתונים

הצגת כל מסדי הנתונים
SHOW DATABASES;

פלט לדוגמה:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| shop_db            |
| test_db            |
+--------------------+

יצירת מסד נתונים חדש
CREATE DATABASE my_database;

עם קידוד עברית:

CREATE DATABASE my_database
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

מחיקת מסד נתונים
DROP DATABASE my_database;

⚠️ אזהרה: פעולה בלתי הפיכה! כל הנתונים יימחקו.

גרסה בטוחה יותר:

DROP DATABASE IF EXISTS my_database;

בחירת מסד נתונים לעבודה
USE my_database;

פלט:

Database changed

מעתה, כל הפקודות יבוצעו על my_database


בדיקת מסד הנתונים הפעיל כרגע
SELECT DATABASE();

פלט:

+-------------+
| DATABASE()  |
+-------------+
| my_database |
+-------------+

ניהול טבלאות

הצגת כל הטבלאות
SHOW TABLES;

פלט לדוגמה:

+----------------------+
| Tables_in_my_database|
+----------------------+
| users                |
| products             |
| orders               |
+----------------------+

הצגת מבנה טבלה
DESCRIBE table_name;

או בקיצור:

DESC table_name;

פלט לדוגמה:

+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int          | NO   | PRI | NULL    | auto_increment |
| name       | varchar(100) | NO   |     | NULL    |                |
| email      | varchar(255) | NO   | UNI | NULL    |                |
| created_at | timestamp    | YES  |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+

הצגת פקודת CREATE של טבלה
SHOW CREATE TABLE table_name;

שימושי להעתקת מבנה טבלה!


הצגת עמודות בטבלה
SHOW COLUMNS FROM table_name;

זהה ל-DESCRIBE


יציאה מ-MySQL

EXIT;

או:

QUIT;

או: לחצו Ctrl + D (Linux/Mac) / Ctrl + Z ואז Enter (Windows)


פקודות מתקדמות

הצגת משתמשים

SELECT User, Host FROM mysql.user;

פלט לדוגמה:

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | localhost |
| app_user         | localhost |
| readonly_user    | %         |
+------------------+-----------+

הצגת משתנה מערכת

SHOW VARIABLES LIKE 'variable_name';

דוגמאות:

-- הצגת גרסת MySQL
SELECT VERSION();

-- הצגת קידוד תווים
SHOW VARIABLES LIKE 'character_set%';

-- הצגת מיקום קבצי MySQL
SHOW VARIABLES LIKE 'datadir';

-- הצגת פורט
SHOW VARIABLES LIKE 'port';

הצגת פרוצסים פעילים

SHOW PROCESSLIST;

שימושי לאיתור שאילתות איטיות!


הצגת סטטוס MySQL

STATUS;

פלט לדוגמה:

--------------
mysql  Ver 8.0.35 for Linux on x86_64

Connection id:          10
Current database:       shop_db
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.0.35 MySQL Community Server
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /var/run/mysqld/mysqld.sock
Uptime:                 2 hours 15 min 32 sec
--------------

הצגת אינדקסים

SHOW INDEX FROM table_name;

הצגת הרשאות משתמש

SHOW GRANTS FOR 'username'@'localhost';

דוגמה:

SHOW GRANTS FOR 'root'@'localhost';

ניקוי מסך

\c

או:

# מחוץ ל-MySQL (בטרמינל)
clear       # Linux/Mac
cls         # Windows

הרצת SQL מקובץ

מחוץ ל-MySQL:

mysql -u root -p database_name < file.sql

בתוך MySQL:

SOURCE /path/to/file.sql;

דוגמה:

SOURCE C:/backups/shop_db_backup.sql;

ייצוא תוצאות לקובץ

SELECT * FROM users
INTO OUTFILE '/tmp/users.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

⚠️ שימו לב: דורש הרשאות FILE.


טיפים ופתרון בעיות

קיצורי דרך שימושיים

מקש פעולה
↑ / ↓ גלילה בהיסטוריית פקודות
Tab השלמה אוטומטית של שמות
Ctrl + L ניקוי מסך (Linux/Mac)
Ctrl + C ביטול פקודה נוכחית
Ctrl + D יציאה מ-MySQL (Linux/Mac)

פתרון בעיות נפוצות

"Access denied for user 'root'@'localhost'"

פתרון 1: ודאו שהסיסמה נכונה

mysql -u root -p
# הזן את הסיסמה בזהירות

פתרון 2: אפס סיסמה (Docker)

docker exec -it mysql-docker mysql --skip-password
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
mysql> FLUSH PRIVILEGES;

"ERROR 2002: Can't connect to local MySQL server"

בדיקה 1: האם MySQL פועל?

# Docker
docker ps

# מקומי (Linux)
sudo systemctl status mysql

# מקומי (Mac)
brew services list

פתרון:

# Docker
docker start mysql-docker

# מקומי (Linux)
sudo systemctl start mysql

# מקומי (Mac)
brew services start mysql

"ERROR 1045: Access denied"

הסיבה: סיסמה שגויה או משתמש לא קיים.

פתרון:

# נסה עם משתמש אחר
mysql -u root -p

# בדוק משתמשים קיימים
SELECT User, Host FROM mysql.user;

"ERROR 1049: Unknown database"

הסיבה: מסד הנתונים לא קיים.

פתרון:

-- הצג מסדי נתונים קיימים
SHOW DATABASES;

-- צור מסד נתונים חדש
CREATE DATABASE my_database;

"ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)"

הסיבה: MySQL לא פועל או לא מאזין על הפורט הנכון.

בדיקה:

# בדוק פורט (Windows)
netstat -ano | findstr :3306

# בדוק פורט (Linux/Mac)
netstat -tuln | grep 3306

טיפים לעבודה יעילה

1. שמירת היסטוריה

MySQL שומר היסטוריית פקודות ב: - Linux/Mac: ~/.mysql_history - Windows: %USERPROFILE%\.mysql_history

מחיקת היסטוריה (אבטחה):

rm ~/.mysql_history

2. קובץ תצורה אישי

צרו קובץ: ~/.my.cnf (Linux/Mac) או my.ini (Windows)

[client]
user=root
password=YourPassword123!
host=localhost

כעת תוכלו להתחבר ללא הזנת פרטים:

mysql

⚠️ אבטחה: הקובץ חייב להיות מוגן!

chmod 600 ~/.my.cnf

3. Aliases שימושיים

הוסיפו ל-.bashrc או .zshrc:

# התחברות מהירה
alias mysql-local='mysql -u root -p'
alias mysql-docker='docker exec -it mysql-docker mysql -u root -p'

# Docker shortcuts
alias mysql-start='docker start mysql-docker'
alias mysql-stop='docker stop mysql-docker'
alias mysql-logs='docker logs -f mysql-docker'

הפעילו מחדש את הטרמינל או:

source ~/.bashrc

כעת:

mysql-start    # הפעלת Docker
mysql-docker   # כניסה ל-MySQL

4. שימוש ב-Pager
-- הפעלת pager (less)
pager less;

-- הצגת טבלה גדולה
SELECT * FROM large_table;

-- כיבוי pager
nopager;

5. פורמט פלט אנכי
-- הוסף \G בסוף השאילתה
SELECT * FROM users WHERE id = 1\G

פלט:

*************************** 1. row ***************************
        id: 1
      name: ישראל ישראלי
     email: [email protected]
created_at: 2026-01-04 10:30:00

שימושי לשורות עם הרבה עמודות!


סיכום פקודות מהירות

Docker

docker start mysql-docker              # הפעלה
docker stop mysql-docker               # עצירה
docker ps                              # בדיקת סטטוס
docker exec -it mysql-docker mysql -u root -p  # כניסה
docker logs mysql-docker               # צפייה בלוגים

MySQL מקומי

mysql -u root -p                       # התחברות
mysql -u root -p database_name         # התחברות למסד ספציפי
mysql -h hostname -u username -p       # חיבור מרוחק

בתוך MySQL

-- ניהול מסדי נתונים
SHOW DATABASES;
CREATE DATABASE db_name;
USE db_name;
DROP DATABASE db_name;

-- ניהול טבלאות
SHOW TABLES;
DESCRIBE table_name;
SHOW CREATE TABLE table_name;

-- מידע מערכת
SELECT VERSION();
SELECT DATABASE();
STATUS;
SHOW PROCESSLIST;

-- יציאה
EXIT;

תרגילים מעשיים

תרגיל 1: הקמת סביבת עבודה

# 1. הפעל MySQL (Docker או מקומי)
docker start mysql-docker

# 2. התחבר
docker exec -it mysql-docker mysql -u root -p

# 3. צור מסד נתונים
mysql> CREATE DATABASE practice_db;

# 4. עבור למסד
mysql> USE practice_db;

# 5. בדוק שאתה במסד הנכון
mysql> SELECT DATABASE();

# 6. צא
mysql> EXIT;

תרגיל 2: בדיקת מערכת

-- 1. גרסת MySQL
SELECT VERSION();

-- 2. משתמש נוכחי
SELECT USER();

-- 3. מסד נוכחי
SELECT DATABASE();

-- 4. זמן פעילות השרת
SHOW STATUS LIKE 'Uptime';

-- 5. קידוד תווים
SHOW VARIABLES LIKE 'character_set_database';

קישורים שימושיים


המשך לרקע והיסטוריה → | חזרה למדריך הראשי

בדקו את עצמכם

נסו לענות לבד לפני שאתם פותחים את התשובה.

  1. מה היתרון בהרצת MySQL ב-Docker?

    1. אין
    2. הוא מהיר יותר
    3. התקנה מהירה ונקייה, בלי לשנות את המחשב, ואפשר למחוק ולהתחיל מחדש
    4. הוא בחינם רק ב-Docker
    הצגת התשובה

    תשובה ג. Container אחד עם מסד מוכן, ו-Volume שומר את הנתונים.

  2. מה עושה הדגל -p ב-mysql -u root -p?

    1. מדפיס עזרה
    2. קובע פורט
    3. מבקש להקליד סיסמה
    4. פותח מסד בשם p
    הצגת התשובה

    תשובה ג. כך הסיסמה לא נכתבת גלויה בפקודה.