1. שגיאה: המארח 'xxx.xx.xxx.xxx' אינו מורשה להתחבר לשרת MySQL זה
גורם
שגיאה זו מציינת כי השרת MySQL לא מאפשר למארח או למשתמש המצויין לגשת למסד הנתונים. זה נגרם בדרך כלל על ידי חוסר הרשאות מספיקות שהועברו למשתמש או למארח הלקוח.
פתרון
כדי לפתור את הבעיה, כדאי להעניק את ההרשאות הנדרשות למשתמש משורת הפקודה של MySQL:
mysql> USE mysql;
mysql> GRANT ALL ON *.* TO 'urUser'@'[urhostname]' IDENTIFIED BY 'urpassword';
mysql> FLUSH PRIVILEGES;
- להחליף את
urUser
ואתurpassword
בשם המשתמש והסיסמה האמיתיים שלכם. - להחליף את
[urhostname]
בשם המארח או כתובת ה-IP של הלקוח שמנסה להתחבר.
אם הבעיה ממשיכה, כדאי לוודא כי הרשת מופעלת בשרת MySQL. לגרסאות חדשות יותר של MySQL, כדאי להשתמש ב-כלי התצורה של מופע השרת של MySQL כדי להפעיל רשת TCP/IP.
- לוודא כי האפשרות לרשת TCP/IP מסומנת.
- לציין את היציאה (ברירת מחדל היא 3306) וליצור יוצא חריג ליציאה זו בגישה לגישה.
2. שגיאה: לא ניתן להתחבר לאחד מהמארחים המצויים
גורם
שגיאה זו יכולה להתרחש מסיבות שונות, כולל תצורת שרת שגויה או הגדרות רשת שגויות.
פתרון
נסו את השלבים הבאים כדי לפתור את הבעיה:
1. לוודא כי שרת MySQL רץ
- ב- Windows, ודאו כי השירות של MySQL פועל.
- ב-Linux, בדוק את מצב השרת עם:
MySQL
systemctl status mysql
2. הפעל רשת TCP/IP
- פתח את קובץ התצורה של MySQL (נקרא בדרך כלל
my.ini
אוmy.cnf
). - וודא כי השורה
skip-networking
מבוטלת או מוסרת. - אתחל את שרת ה-MySQL לאחר ביצוע השינויים.
3. בדוק את מספר הפורט
- שרתי MySQL רגילים רצים בדרך כלל על פורט 3306.
- וודא את מספר הפורט בקובץ התצורה של MySQL (
my.ini
אוmy.cnf
).
4. כללי חומת אש
- וודא כי החומת אש שלך לא מונעת את פורט של MySQL. הוסף יוצאת לפורט 3306 אם נדרש.
3. שגיאה: גישה נדחית למשתמש 'שםמשתמש'@'שםמאחסן' (עם סיסמה: כן)
גורם
שגיאה זו נגרמת בדרך כלל על ידי פרטי כניסה שגויים, כגון שם משתמש או סיסמה שהוזנו לא נכון.
פתרון
בדוק שוב את שם המשתמש והסיסמה שאתה משתמש. וודא כי:
- שם המשתמש והסיסמה תואמים לאלו שהוגדרו בMySQL.
- למשתמש הוענקה גישה למסד הנתונים או המארח הספציפיים.
MySQL
GRANT ALL ON dbName.* TO 'UserName'@'HostName' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
החלף dbName
, UserName
, HostName
, וpassword
עם שם מסד הנתונים, שם המשתמש, שם המארח והסיסמה האמיתיים שלך.
4. שגיאה: הלקוח אינו תומך בפרוטוקול האימות שהתבקש על ידי השרת; שקול לשדרג את לקוח MySQL
סיבה
שגיאה זו נפוצה כאשר מתחברים ל MySQL 8.0, מכיוון שהיא משתמשת בפרוטוקול אימות חדש הנקרא caching_sha2_password. לקוחות או כלים ישנים יותר של MySQL עשויים לא לתמוך בפרוטוקול זה.
פתרון
אופציה 1: שדרג את הלקוח שלך
שדרגו לגרסה האחרונה של כלי או לקוח MySQL שלכם. לדוגמה, אם אתם משתמשים ב-Data Loader, שדרגו לגרסה 4.9 או מאוחר יותר, אשר תומך בפרוטוקול האימות החדש.
אפשרות 2: פתרון עבור לקוחות ישנים
אם אינכם יכולים לשדרג את הלקוח שלכם, עקבו אחרי השלבים האלה כדי ליצור משתמש תואם ב-MySQL 8.0:
1. צרו משתמש חדש.
mysql> CREATE USER 'user1'@'localhost' IDENTIFIED BY 'passxxx';
2. העניקו הרשאות נדרשות.
mysql> GRANT ALL ON *.* TO 'user1'@'localhost' IDENTIFIED BY 'passxxx';
3. שנו את אמצעי האימות.
mysql> ALTER USER 'user1'@'localhost' IDENTIFIED WITH mysql_native_password BY 'passxxx';
פקודה זו מחזירה את אמצעי האימות של המשתמש לפרוטוקול הישן של mysql_native_password, המתאים ללקוחות ישנים.
כעת תוכלו להשתמש במשתמש זה (user1) כדי להתחבר ל-MySQL 8.0 עם כלים או ספריות ישנים.
פתרון בעיות חיבור MySQL נוגע בדרך כלל להתמודדות עם הגדרות התצורה, הרשאות המשתמש, או תאימות בין הלקוח והשרת. על ידי עקיפת הפתרונות המוצגים לעיל, תוכלו לפתור שגיאות נפוצות כמו סריקות הרשאה, קונפיגורציה שגויה של מארחים, או אי התאמה בפרוטוקולים.
עבור ניהול מסדי נתונים רציני, וודאו שהשרת והכלים שלכם ב-MySQL עודכניים, וביקשו בבקרה מערכתית את ההרשאות של המשתמשים ואת הגדרות הרשת כדי למנוע בעיות חיבור בעתיד.
Source:
https://dzone.com/articles/troubleshooting-mysql-connection-issues