MySQL/מניפולציה של מסדי נתונים
יצירה
[עריכה]create database db ;
לִדרוֹשׁ? זְכוּת.
mysqladmin create
הוא מעטפת שורת פקודה עבור פונקציה זו.
הערה: ב-MySQL, CREATE SCHEMA
היא מילה נרדפת מושלמת ל-CREATE DATABASE
, בניגוד ל-DBMS אחר כמו Oracle או SQL Server.
מחיקה
[עריכה] DROP DATABASE db;
לדרוש? זְכוּת.
mysqladmin drop
הוא מעטפת שורת פקודה עבור פונקציה זו. ניתן להשתמש באפשרות -f
כדי לדכא את האישור האינטראקטיבי (שימושי עבור סקריפטים ללא השגחה).
שנה שם
[עריכה]בחלק מגירסאות 5.1.x הייתה פקודת RENAME DATABASE db1 TO db2;
, אך היא הוסרה מכיוון ששינוי שמות של מסדי נתונים באמצעות SQL גרם לכמה בעיות אובדן נתונים[1].
עם זאת, בשורת הפקודה, אתה יכול ליצור/לייצא/לייבא/למחוק:
mysqladmin create n2
mysqldump --opt name1 | mysql n2
mysqladmin drop -f name1
אתה גם צריך לשחרר הרשאות על שם1 וליצור אותן מחדש על שם2:
UPDATE mysql.db SET `Db`='n2' WHERE `Db`='name1';
FLUSH PRIVILEGES;
העתק
[עריכה]אין פקודת העתקה ישירה ב-MySQL. עם זאת, זה יכול להיעשות בקלות באמצעות כמה כלים.
עם mysqldump
[עריכה]ניתן להשתמש בשורת הפקודה mysqldump כדי ליצור עותק שלם של קובץ שטוח של מסד הנתונים. לאחר מכן תוכל להחזיר עותק זה במסד נתונים אחר.
זה דורש גישה ישירה למסד הנתונים; אם אין לך את זה, ייתכן שתצטרך להשתמש ב-phpMyAdmin במקום זאת.
# ראשית, נקה את מסד הנתונים של היעד:
mysqladmin drop -f base2
mysqladmin ליצור base2
# העתק את בסיס 1 לבסיס 2:
mysqldump --opt base1 | mysql base2
גיבוי
[עריכה]כדי להגדיר גיבוי אוטומטי בכל יום בחצות[2], בלינוקס:
$ crontab -e
0 0 * * * /usr/local/bin/mysqldump -uLOGIN -PPORT -hHOST -pPASS base1 | gzip -c > `תאריך "+\%Y-\%m-\%d"`.gz
עם phpMyAdmin
[עריכה]שחזור
[עריכה]- עם לינוקס:
mysql -h localhost -u root MaBase < MaBase.sql
- עם Windows, ייתכן שהתוכנה לא נמצאת במשתני הסביבה:
"C:\Program Files (x86)\EasyPHP\binaries\mysql\bin\mysql.exe" -h localhost -u root MyDB < MyDB.sql
בניגוד לייבוא של PhpMyAdmin, אין הגבלה. לדוגמה, אנו יכולים לטעון מסד נתונים של 2 ג'יגה-בייט בחמש דקות.
הגירה ממאגרי מידע אחרים
[עריכה]כלים: MySQL Migration Toolkit
כלים למידול נתונים
[עריכה]
DB Designer 4 ו-MySQL Workbench
[עריכה]DBDesigner מתחיל להיות ישן. זה משוחרר תחת GNU GPL, אבל לא ניתן להתייחס אליו באופן מלא כתוכנה חופשית מכיוון שהיא דורשת את מהדר Kylix הלא-חופשי לבנייה.
אבל MySQL AB רכשה את fabFORCE תבנית:Fact[3] , שהפיץ את DB Designer, ו-MySQL Workbench היא הגרסה הבאה. לעת עתה הפרויקט הוא עדיין אלפא ועדיין לא מוכן לשימוש.
בינתיים, אם אתה משתמש במהדורה האחרונה של DBDesigner, תגלה שהיא לא יכולה להתחבר ל-MySQL, עם השגיאה "לא ניתן לטעון libmysqlclient.so". כדי לעקוף את זה,
- התקן את MySQL "ספריות תאימות משותפות" (מאת http://dev.mysql.com/downloads/mysql/5.0.html#downloads עבור גרסה 5.0, RPMS גנרי aka MySQL-shared-compat.i386 יתאים).
- החלף את הגרסה של DBDesigner של libmysqlclient.so בגרסה שהותקנה לאחרונה:
sudo ln -sf /usr/lib/libmysqlclient.so.10 /usr/lib/DBDesigner4/libmysqlclient.so
- מצא והתקן את
kylixlibs3-unwind-3.0-rh.4.i386.rpm
- מצא xorg ישן (למשל
xorg-x11-libs-6.8.2-37.FC4.49.2.1.i386.rpm
מ-FC4) וחלץ אותו:
rpm2cpio x.rpm | cpio -i
- קבל את libXft.so.1.1 בחבילה הזו והתקן אותה:
sudo cp libXft.so.1.1 /usr/lib ldconfig
כעת אתה יכול להתחבר לשרת MySQL5 שלך מ-DBDesigner4. ראה זאת כפתרון זמני הממתין לגרסאות קהילתיות (חינם) ומסחריות (לא חינמיות) MySQL Workbench.
OpenOffice Base ו-ODBC
[עריכה]תצורה אופיינית:
- מסד נתונים של MySQL במחשב מארח (ששם הוא
mysqlhost
למטה) - OOo 2 במחשב לקוח (Debian GNU/Linux למשל)
- חיבור דרך ODBC.
זה'
- ^ https://dev.mysql. com/doc/refman/5.1/en/rename-database.html
- ^ http://stackoverflow.com/questions/6645818/how-to-automate-database-backup-using-phpmyadmin
- ^ בפורומים: [1] אבל נצטרך משהו יותר רשמי