23. MySQL 8 IF и CASE
תוכן עניינים:
- קביעת תצורה של שרת MySQL
- מתן גישה למשתמש ממכשיר מרוחק
- קביעת תצורת חומת האש
- איפטבלים
- UFW
- חומת אש
- אימות השינויים
- סיכום
כברירת מחדל, שרת MySQL מאזין לחיבורים רק מ- localhost, כלומר ניתן לגשת אליו רק על ידי יישומים הפועלים באותו מארח.
עם זאת, במצבים מסוימים, יש צורך לגשת לשרת MySQL ממיקום מרוחק. לדוגמה, כאשר ברצונך להתחבר לשרת MySQL המרוחק מהמערכת המקומית שלך, או בעת שימוש בפריסה מרובת שרתים בה היישום פועל במחשב אחר משרת מסד הנתונים. אפשרות אחת תהיה גישה לשרת MySQL דרך מנהרת SSH ואחת היא להגדיר את תצורת שרת MySQL לקבל חיבורים מרוחקים.
במדריך זה נעבור על הצעדים הדרושים כדי לאפשר חיבורים מרוחקים לשרת MySQL. אותן הוראות חלות על MariaDB.
קביעת תצורה של שרת MySQL
השלב הראשון הוא להגדיר את שרת MySQL להאזין בכתובת IP ספציפית או בכל כתובות ה- IP במחשב.
אם שרת MySQL והלקוחות יכולים לתקשר זה עם זה דרך רשת פרטית, האפשרות הטובה ביותר היא להגדיר את שרת MySQL להקשיב רק ב- IP הפרטי. אחרת, אם ברצונך להתחבר לשרת ברשת ציבורית, קבע לשרת MySQL להאזין בכל כתובות ה- IP במחשב.
לשם כך עליכם לערוך את קובץ התצורה של MySQL ולהוסיף או לשנות את הערך של אפשרות ה-
bind-address
. אתה יכול להגדיר כתובת IP אחת וטווחי IP. אם הכתובת היא
0.0.0.0
, שרת MySQL מקבל חיבורים בכל ממשקי ה- IPv4 המארחים. אם הגדרת IPv6 במערכת שלך, אז במקום
0.0.0.0
, השתמש
::
.
המיקום של קובץ התצורה של MySQL שונה בהתאם להפצה. באובונטו
/etc/mysql/mysql.conf.d/mysqld.cnf
הקובץ ממוקם ב-
/etc/mysql/mysql.conf.d/mysqld.cnf
, ואילו בהפצות מבוססות Red Hat כמו CentOS, הקובץ ממוקם ב-
/etc/my.cnf
.
פתח את הקובץ עם עורך הטקסט שלך:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
חפש קו שמתחיל
bind-address
והגדר את ערכו לכתובת ה- IP עליה צריך להקשיב לשרת MySQL.
כברירת מחדל, הערך מוגדר ל-
127.0.0.1
(מאזין רק ב- localhost).
בדוגמה זו נקבע לשרת MySQL להאזין בכל ממשקי ה- IPv4 על ידי שינוי הערך ל-
0.0.0.0
bind-address = 0.0.0.0 # skip-networking
אם יש שורה שמכילה
skip-networking
, מחק אותה או הגיב אותה על ידי הוספת
#
בתחילת השורה.
ב- MySQL 8.0 ומעלה, ייתכן כי הוראות ההתחייבות אינן קיימות. במקרה זה, הוסף אותו תחת הסמל
קטע.
לאחר ביצוע הפעולה, הפעל מחדש את שירות MySQL כדי שהשינויים ייכנסו לתוקף. רק root או משתמשים עם הרשאות sudo יכולים להפעיל מחדש את השירותים.
כדי להפעיל מחדש את שירות MySQL ב- Debian או Ubuntu, הקלד:
sudo systemctl restart mysql
בהפצות מבוססות RedHat כמו CentOS כדי להפעיל מחדש את הפעלת השירות:
מתן גישה למשתמש ממכשיר מרוחק
השלב הבא הוא לאפשר גישה למסד הנתונים למשתמש המרוחק.
היכנס לשרת MySQL כמשתמש השורש על ידי הקלדה:
sudo mysql
mysql -uroot -p
מתוך מעטפת MySQL, השתמשו בהצהרת
GRANT
כדי להעניק גישה למשתמש המרוחק.
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
איפה:
-
database_name
הוא שם בסיס הנתונים אליו יתחבר המשתמש.user_name
הוא שם המשתמש המשתמש ב- MySQL.ip_address
היא כתובת ה- IP ממנה יתחבר המשתמש. השתמש ב-%
כדי לאפשר למשתמש להתחבר מכל כתובת IP.user_password
היא סיסמת המשתמש.
לדוגמה, כדי להעניק גישה למסד נתונים
dbname
למשתמש בשם
foo
עם הסיסמה
my_passwd
ממכונת לקוח עם IP
10.8.0.5
, היית מפעיל:
GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
קביעת תצורת חומת האש
השלב האחרון הוא להגדיר את תצורת חומת האש שלך כך שתאפשר תנועה ביציאה
3306
(יציאת ברירת המחדל של MySQL) מהמחשבים המרוחקים.
איפטבלים
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
אפשר גישה מכתובת IP ספציפית:
sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT
UFW
UFW הוא כלי חומת האש המוגדר כברירת מחדל באובונטו. כדי לאפשר גישה מכל כתובת IP באינטרנט (מאוד לא בטוחה):
sudo ufw allow 3306/tcp
אפשר גישה מכתובת IP ספציפית:
sudo ufw allow from 10.8.0.5 to any port 3306
חומת אש
FirewallD הוא כלי ניהול חומת האש המוגדר כברירת מחדל ב- CentOS. כדי לאפשר גישה מכל כתובת IP באינטרנט (מאוד לא בטוחה) סוג:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
כדי לאפשר גישה מכתובת IP ספציפית ביציאה ספציפית, אתה יכול ליצור אזור FirewallD חדש או להשתמש בכלל עשיר. ובכן ליצור אזור חדש בשם
mysqlzone
:
sudo firewall-cmd --new-zone=mysqlzone --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32
sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp
sudo firewall-cmd --reload
אימות השינויים
כדי לוודא שהמשתמש המרוחק יכול להתחבר לשרת MySQL, הפעל את הפקודה הבאה:
mysql -u user_name -h mysql_server_ip -p
כאשר שם המשתמש הוא שם המשתמש
mysql_server_ip
הענקת גישה ו-
mysql_server_ip
הוא כתובת ה- IP של המארח בו פועל שרת MySQL.
אם הכל מוגדר כהלכה, תוכלו להתחבר לשרת MySQL המרוחק.
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"
השגיאה שלהלן מציינת כי למשתמש שאתה מנסה להתחבר אין הרשאות גישה לשרת MySQL המרוחק.
"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"
סיכום
MySQL, שרת מסד הנתונים של קוד פתוח הפופולרי ביותר כברירת מחדל, מאזין לחיבורים נכנסים רק על localhost.
כדי לאפשר חיבורים מרוחקים לשרת MySQL, עליך לבצע את הצעדים הבאים:
- קבע את התצורה של שרת MySQL להאזנה לכל הממשק או ממשק מסוים. הגישה למשתמש המרוחק. פתח את יציאת MySQL בחומת האש שלך.
חברות טק לעבוד על מסדרונות חלל לבן חמש חברות טק להקים קבוצה כדי לסייע ל- FCC ליצור מסד נתונים חלל לבן. יצרני הטכנולוגיה, כולל מיקרוסופט, גוגל ו- Dell, החלו לעבוד יחד כדי לסייע ביצירת מסד נתונים של ערוצים כבושים במה שמכונה "ספקטרום החללים הלבנים".

קבוצת מסד הנתונים של White Spaces תעזור לועדת התקשורת הפדרלית בארה"ב לזהות ערוצים כבושים בספקטרום הטלוויזיוני במאמץ למנוע התערבות של התקני פס רחב אלחוטיים חדשים המגיעים לספקטרום. בנובמבר אישר ה- FCC את השימוש בהתקנים אלחוטיים חדשים באזורים שאינם בשימוש בספקטרום הטלוויזיה.
MySQL Cofounder אומר אורקל צריך למכור את מסד הנתונים

אורקל צריך למכור מסד נתונים קוד פתוח MySQL לצד שלישי מתאים, השותף שלה ואת היוצר מיכאל "מונטי" Widenius אמר אורקל בבלוג.
Oracle ו- Commission נראה כי הגיע למבוי סתום לגבי MySQL לקראת הדיון. עם זאת, נציבת התחרות, נילי קרוס, הביעה אתמול אופטימיות לגבי תיווך שלא תפגע בתחרות. "אני עדיין אופטימי שאנחנו יכולים להגיע לתוצאות משביעות רצון שיבטיחו שלא תהיה השפעה שלילית על התחרות האפקטיבית בשוק האירופי" קרוס אמר לעיתונאים כי בניגוד למוצרי מסד הנתונים של אורקל, שהם יקרים וממוקדים בעיקר בחברות גדולות, MySQL הוא מסד נתונים חופשי בקוד פתוח, המיועד ללקוחות קטנים יותר במגזר של מיקרוסופט, שם נמצאת מיקרוסופט. לקוחותיה כול

עם אורקל מאחורי זה, MySQL תהיה ממוקמת טוב יותר להתחרות עם מסד הנתונים של SQL Server של מיקרוסופט, אורקל יטענו, על פי אנשים המקורבים לחברה.