עזרה עם עברית ב-MySQL

urilei

New member
עזרה עם עברית ב-MySQL

היי לכם,

יש לי גישה לשרת MySQL של אתר אינטרנט כלשהו. כשאני מתחבר לשרת הזה (עם Query Browser למשל) אני יכול לראות בשליפות עברית יופי.
אני מנסה להעתיק את כל בסיס הנתונים הזה אליי למחשב. התקנתי כל מה שצריך ונראה שהכל עובד, אבל כשאני עושה Restore אצלי במחשב אני מקבל ג'יבריש במקום עברית.
התקנתי phpMyAdmin ושיניתי הגדרות ל-hebrew_bin איפה שהבנתי שצריך. זה לא עזר.

מה עושים?
מה שאני צריך לעשות ולא מצליח זו למעשה פעולה חד פעמית, כך שגם טריקים קצת יותר עקיפים יועילו מאוד.

אני לא יודע לומר האם קובץ ה-SQL שאני מקבל תקין או לא, כי מה שרואים שם זה איזשהו קידוד אחר שהוא לא ג'יבריש ולא עברית, אבל אני נוטה להניח שה-backup תקין והבעיה ב-restore (אני גם לא מתלהב בכלל בלשון המעטה לגעת בהגדרות של השרת המרוחק).
 

eyal7773

New member
יש לי בעיה הפוכה בדיוק , גם כן עם MySql

אצלי מותקן mySql 5.6
ואצלי הכל תקין בעברית.
שאני מעלה לשרת, את קובץ ה-SQL שבונה את ה-DB - והשרת הוא גירסה mySql 5.x
הוא לא מצליח לפענח חלק מהפקודות.
ויוצר DB שהעברית בו נכתבת בגיבריש.

למישהו יש פתרון?
 

urilei

New member
אני לא חושב שהבעיה שלך הפוכה

לשנינו יש את אותה הבעיה בדיוק...
אנחנו לא יודעים ליצור קובץ גיבוי SQL משרת אחד ולשחזר אותו באחר בלי לאבד את העברית...
לא נראה לי שהשאלה מי פה שרת פיתוח מקומי ומי שרת "אמיתי" רלוונטית בכלל...
האמת היא שאני גם ממש בספק אם יש קשר לשאלת הגרסאות של השרתים.

אז בקיצור... מישהו יודע?
 

pitoach

New member
צודק לחלוטין
זו אותה בעיה

הפתרון לא קשור לגרסת השרת כל עוד היא מאפשרת קידוד מתאים. כל מה שצריך זה לבחור CULTURE תואם ועבודה בקידוד מתאים והכל יבוא למקומו. ב mysql ה culture נקבע על ידי המאפיין collation.

אם הייתם עובדים ביוניקוד מההתחלה לא היתה לכם בעיה כזו וזו הדרך המומלצת תמיד. לא לעבוד בקידוד מקומי אלא בקידוד כללי כמו יוניקוד (זה גם ברירת המחדל בגרסאות האחרונות). כרגע הנתונים שלכם כבר מקודדים מקומית ככל הניראה ולכן בלי לבצע המרה אתם חייבים להמשיך עם אותו קידוד של השרת הקודם גם בשרת הבא.

חפשו חומר על CULTURE ועל קידוד. הבעיה קיימת גם בשרתי נתונים אחרים ולא רק ב mysql אבל ב mysql הקידוד לשפות כמו עברית נכנס בגרסאות מאוחרות מאוד יחסית.
 

urilei

New member
תודה + בקשת הסבר נוסף

אם זה היה שלי, הייתי כנראה עובד אחרת, אבל אני נכנס לאתר קיים (ואפילו די ישן) שהמטרה היא לתחזק אותו במינימום שינויים מהותיים.
אז בקיצור, תוכל קצת להרחיב ב"עברית פשוטה" מה צריך לעשות בשלב הגיבוי ו/או השחזור כדי לפתור את הבעיה? או איזו הגדרה צריך לשנות ואיך עושים את זה?
תאמין לי שקראתי הרבה הרבה ברשת על קידודים ועברית ב-mysql, ועדיין לא מצאתי את התשובה הפשוטה: מה צריך לעשות.
שיניתי בשרת המקומי שלי (באמצעות phpmyadmin) את connection collation ל-hebrew_bin וניסיתי שוב לבצע שחזור ל-DB. זה לא עזר. זה לא שהתכוונת שצריך לעשות?
בשרת האמיתי אני די משוכנע שאני לא אמור לגעת, על תקן "מה שעובד אל תיגע".

תודה.
 

urilei

New member
תודה רבה!

האמת היא שקראתי את זה כבר, והתייאשתי באמצע כי ראיתי שזה עוסק ב-PHP והבעיה שלי בכלל לא הייתה קשורה לאתר אלא ממש ל-DB.
אבל בגלל שהפנת, קראתי יותר בסבלנות עד הסוף, וראיתי שיש שם התייחסות לעניין הזה בדיוק. הסרתי את ה-V המדובר של HEXA, והפלא קרה.

תודה רבה.
 
למעלה