הגדרת MySQL  לשימוש בעברית

מאת: עובד בלאס, oved@nethost.co.il
נטהוסט - שרותי אינטרנט
ינואר 2004
http://server3.nethost.co.il/mysql_hebrew/index.htm

כללי

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

אנו נדון כאן בפעולות שיש לבצע בגרסא 4.0.17 של בסיס הנתונים, כדי לקבל תוצאות טובות בעברית. גרסאות מתקדמות יותר של בסיס הנתונים כמו 4.1.1 או 5 תומכות טוב יותר בשפות, אך נכון לזמן כתיבת שורות אלה נמצאות, בשלבי ניסוי ואינן מתאימות לאפליקציות בשימוש יומיומי (Production).

עידכון הגדרות התוכנה לעבודה עם עברית

הפעולות שיש לבצע כדי לעבוד עם עברית ב MySQL:

הערה: בדוגמאות להלן אנו מניחים ששרת ה MySQL מותקן על מחשב המריץ Windows, הפעולות שיש לבצע במערכות הפעלה אחרות דומות.

default-character-set=hebrew

c:\mysql\bin\mysqladmin shutdown

c:\mysql\bin\myisamchk -r -q --set-character-set=hebrew *.myi

אופן הבדיקה האם ההתקנה תומכת בעברית

ההתקנה הסטנדרטית של MySQL תומכת בעברית. כדי לבדוק האם ההתקנה במחשב שלכם תומכת בעברית, בידקו את תוכן המשתנים:

בדיקת ערכי המשתנים הנ"ל:

בדוגמאות בהמשך אנו מניחים שהפעלתם את ה Command Line Client של MySQL.

דוגמא להפעלת ה Command Line Client:

C:\mysql\bin>mysql -h localhost -u root -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 4.0.16-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

 

הגרסא הסטנדרטית של MySQL מגיעה עם תמיכה ב Charachter-Set העברי. תמיכה זו מיושמת גם באמצעות קבצים חיצוניים הנמצאים בספרייה share/charset.

כדי לבדוק האם התקנה תומכת ב charachter-set העברי (וכאמור התקנת ברירת המחדל תומכת בעברית), ומהו charachter-set ברירת המחדל של ההתקנה, בודקים את תוכן המשתנים: character_set ו charachter_sets. אפשר לבדוק את ערכי המשתנים האלה באמצעות פקודת mysql או באמצעות תוכנה גרפית לניהול בסיס הנתונים כמו MySQLCC.

בדיקת תוכן משתני ה character-set באמצעות פקודת mysql:

mysql> show variables like 'char%';
+----------------+--------------------------------------------------------------
--------------------------------------------------------------------------------
---------------------------------------------------------------------+
| Variable_name | Value

|
+----------------+--------------------------------------------------------------
--------------------------------------------------------------------------------
---------------------------------------------------------------------+
| character_set | latin1

|
| character_sets | latin1 big5 czech euc_kr gb2312 gbk latin1_de sjis tis620 uji
s dec8 dos german1 hp8 koi8_ru latin2 swe7 usa7 cp1251 danish hebrew win1251 est
onia hungarian koi8_ukr win1251ukr greek win1250 croat cp1257 latin5 |
+----------------+--------------------------------------------------------------
--------------------------------------------------------------------------------
---------------------------------------------------------------------+

המשתנה character_set מכיל את ה Default Charachter Set, שיכול להיקבע עם הפעלת השרת. המשתנה charachter_sets מכיל את כל ה charachter sets האפשריים בהתקנה זו של MySQL. ניתן לראות בדוגמא למעלה ש character_sets מכיל את השם hebrew, ולכן אפשר להשתמש ב Charachter Set העברי.

אפשר גם לראות את תוכן המשתנים באמצעות התחברות לשרת ה MySQL עם תוכנת הניהול הגרפית: MySQLCC.

דוגמא לצפיה במשתנים של השרת באמצעות MySQLCC. במקרה זה השרת פועל ב charachter set העברי: