דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. עבודה עם מסד נתונים

עבודה עם מסד נתונים

מתוזמן נעוץ נעול הועבר תכנות
66 פוסטים 4 כותבים 5.8k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • D מנותק
    D מנותק
    davidnead
    כתב ב נערך לאחרונה על ידי davidnead
    #26

    @clickone אמר בעבודה עם מסד נתונים:

    @davidnead
    יכול להיות שזה פתוח סלקטיבי.
    בשיטה שאני מציע אין בעייה לכאורה.
    כי בעצם אתה עושה קריאה ל הרשומות.
    רק במקום להציג את זה לHTML או משהו אחר, אתה עושה INSERT עם הנתונים לטבלה אחרת.
    זה אמור להיות קוד גנרי קלאסי

    אני חושב שהבנתי, אך היות שאני נגד לימודי ליבה נראה לי שהאפשרות הראשונה (הרצה על 2, שאיבה מ1 ושמירה על 3) יותר בתחום השגתי.

    תגובה 1 תגובה אחרונה
    0
    • clickoneC מנותק
      clickoneC מנותק
      clickone
      השיב לdovid ב נערך לאחרונה על ידי
      #27

      @dovid
      כן. קראתי.

      תסתכל רגע כאן
      https://stackoverflow.com/questions/4262876/how-to-copy-database-tables-and-each-record-from-one-database-server-to-another
      משהו בסגנון שיש שם.
      הוא על שרת מספר 2, פותח 2 קונקשנים.
      אחד לשרת הישן (1), והשני לשרת החדש (3).
      ואז הוא רץ בלופ על הטבלאות שנמצאות בשרת הישן, ומכניס אותם לחדש.
      בדוגמא הזו הוא גם יצר את הטבלאות.
      אני חושב שאת הסכמה עדיף לו לקחת משם. כי בטח יש עוד אינדקסים וכו

      <?php
      $dbNewDB = 'newdb';
      $dbNewUser = 'newroot';
      $dbNewUserPswd = 'newpass';
      
      $dbConnect = mysql_connect('localhost', 'root', 'mypassword') or die('Couldn\'t connect to MySql:'.mysql_error());
      $dbNewConnect = mysql_connect('localhost', $dbNewUser, $dbNewUserPswd) or die('Couldn\'t connect to MySql:'.mysql_error());
      
      $sqlStatement = "SHOW TABLES FROM olddb";
      $result = mysql_query($sqlStatement,$dbConnect) or die('Unable to get tables: '.mysql_error());
      while($row = mysql_fetch_row($result)) 
          {
              //Drop table if exist
              $sqlStatement = "DROP TABLE IF EXISTS " . $dbNewDB . "." . $row[0];
              mysql_query($sqlStatement,$dbNewConnect) or die("Failed to delete: " . mysql_error());
              //Create new table
              $sqlStatement = "CREATE TABLE " . $dbNewDB . "." . $row[0] . " LIKE olddb." . $row[0];
              echo "$sqlStatement [" . __METHOD__ . "]"; 
              mysql_query($sqlStatement,$dbNewConnect)or die("Failed to create: ". mysql_error());
              //Insert data
              $sqlStatement = "INSERT INTO " . $dbNewDB . "." . $row[0] . " SELECT * FROM " . $dbNewDB . "." . $row[0];
              echo "$sqlStatement [" . __METHOD__ . "]"; 
              mysql_query($sqlStatement,$dbNewConnect)or die("Table copy failed: ".mysql_error());
              echo "$row[0] copy done. [" . __METHOD__ . "]"; 
          }
      
      mysql_free_result($result);
      mysql_close($dbConnect);
      mysql_close($dbNewConnect);
      
      ?> 
      
      

      אין טסט כמו פרודקשן.

      המייל שלי urivpn@gmail.com

      תגובה 1 תגובה אחרונה
      0
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        כתב ב נערך לאחרונה על ידי dovid
        #28

        @clickone אתה מצליח להפליא אותי. כתבתי פעמיים את הפתרון הזה בדיוק. ולכן אני תמה אם קראת.
        ואמרתי על זה שבשביל זה יש להקים שרת SQL ב3, ולפתוח אותו לREMOTE ב2.
        ובאותו מחיר של כתיבת כזאת הדרכה אני יכול לכתוב לו איך לפתוח את ה1 לREMOTE למחשב שלו האישי או לשלוש, בלי לעבור ב2 כלל.

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        D clickoneC 2 תגובות תגובה אחרונה
        1
        • D מנותק
          D מנותק
          davidnead
          השיב לdovid ב נערך לאחרונה על ידי
          #29

          @dovid אמר בעבודה עם מסד נתונים:

          @clickone אתה מצליח להפליא אותי. כתבתי פעמיים את הפתרון הזה בדיוק. ולכן אני תמה אם קראת.
          ואמרתי על זה שבשביל זה יש להקים שרת SQL ב3, ולפתוח אותו לREMOTE ב2.
          ובאותו מחיר של כתיבת כזאת הדרכה אני יכול לכתוב לו איך לפתוח את ה1 לREMOTE למחשב שלו האישי או לשלוש, בלי לעבור ב2 כלל.

          הבעיה בשני ההצעות, היא שאין לי אפשרות לפתוח את 1 - מאחר שאין לי גישה אליו.

          dovidD תגובה 1 תגובה אחרונה
          0
          • dovidD מנותק
            dovidD מנותק
            dovid ניהול
            השיב לdavidnead ב נערך לאחרונה על ידי
            #30

            @davidnead אמר בעבודה עם מסד נתונים:

            @dovid אמר בעבודה עם מסד נתונים:

            @clickone אתה מצליח להפליא אותי. כתבתי פעמיים את הפתרון הזה בדיוק. ולכן אני תמה אם קראת.
            ואמרתי על זה שבשביל זה יש להקים שרת SQL ב3, ולפתוח אותו לREMOTE ב2.
            ובאותו מחיר של כתיבת כזאת הדרכה אני יכול לכתוב לו איך לפתוח את ה1 לREMOTE למחשב שלו האישי או לשלוש, בלי לעבור ב2 כלל.

            הבעיה בשני ההצעות, היא שאין לי אפשרות לפתוח את 1 - מאחר שאין לי גישה אליו.

            יש לך גישת SQL, אם זה root, לא צריך יותר מזה.

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            D תגובה 1 תגובה אחרונה
            0
            • clickoneC מנותק
              clickoneC מנותק
              clickone
              השיב לdovid ב נערך לאחרונה על ידי clickone
              #31

              @dovid עברתי שוב מההתחלה על מה שכתבת.
              לא ראיתי הצעה להרצת קוד PHP מהשרת הפתוח והעתקה בריצה פיזית של הרשומות בלופ.
              אשמח אם תיתן לינק להודעה הספציפית.
              כן ראיתי שהצעת לו לשים את התוכנה של MYSQL.

              לגבי הפתיחה עכשיו אני רואה.
              בכל מקרה לפי מה שהוא כותב, אז ברור שהקוד חייב לעבור ב2.
              והוא לא חייב לפתוח גישה מרחוק לMYSQL מ3 ל2 אם הוא מתעקש....
              הוא יכול לשים 2 קבצי PHP בשניהם.
              וש2 יעשה POST לדף ב3 שיעשה את האינסרט שהוא יעביר לו. (כמובן שאח"כ הוא ימחק את הקבצים בגלל אבטחת מידע ובלה בלה בלה....)

              אין טסט כמו פרודקשן.

              המייל שלי urivpn@gmail.com

              תגובה 1 תגובה אחרונה
              0
              • D מנותק
                D מנותק
                davidnead
                השיב לdovid ב נערך לאחרונה על ידי
                #32

                @dovid אמר בעבודה עם מסד נתונים:

                @davidnead אמר בעבודה עם מסד נתונים:

                @dovid אמר בעבודה עם מסד נתונים:

                @clickone אתה מצליח להפליא אותי. כתבתי פעמיים את הפתרון הזה בדיוק. ולכן אני תמה אם קראת.
                ואמרתי על זה שבשביל זה יש להקים שרת SQL ב3, ולפתוח אותו לREMOTE ב2.
                ובאותו מחיר של כתיבת כזאת הדרכה אני יכול לכתוב לו איך לפתוח את ה1 לREMOTE למחשב שלו האישי או לשלוש, בלי לעבור ב2 כלל.

                הבעיה בשני ההצעות, היא שאין לי אפשרות לפתוח את 1 - מאחר שאין לי גישה אליו.

                יש לך גישת SQL, אם זה root, לא צריך יותר מזה.

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

                clickoneC 2 תגובות תגובה אחרונה
                1
                • clickoneC מנותק
                  clickoneC מנותק
                  clickone
                  השיב לdavidnead ב נערך לאחרונה על ידי clickone
                  #33

                  @davidnead הצבעה איפה?
                  בבחירות?
                  יותר עדיף שתבטיח לנו לקבל העתק של הDB... 😛

                  עריכה: הבנתי... התכוונת ללייק.....

                  אין טסט כמו פרודקשן.

                  המייל שלי urivpn@gmail.com

                  תגובה 1 תגובה אחרונה
                  1
                  • D מנותק
                    D מנותק
                    davidnead
                    כתב ב נערך לאחרונה על ידי
                    #34

                    אני פשוט לא מצליח להבין את שניכם - אם אפשר לפתוח מ2 ל3 - אז מה הסיבוך והקודים והPHP?
                    צריך לעשות פשוט sqldump - שייצא את זה ישר לשרת 3. לא כך?

                    תגובה 1 תגובה אחרונה
                    1
                    • clickoneC מנותק
                      clickoneC מנותק
                      clickone
                      השיב לdavidnead ב נערך לאחרונה על ידי
                      #35

                      @davidnead
                      אתה נכנס בSSH לשרת מספר 2, ופותח את הכתובת בפיירוול.

                      @davidnead אמר בעבודה עם מסד נתונים:

                      צריך לעשות פשוט sqldump - שייצא את זה ישר לשרת 3. לא כך?

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

                      אין טסט כמו פרודקשן.

                      המייל שלי urivpn@gmail.com

                      D תגובה 1 תגובה אחרונה
                      1
                      • D מנותק
                        D מנותק
                        davidnead
                        השיב לclickone ב נערך לאחרונה על ידי
                        #36

                        @clickone אמר בעבודה עם מסד נתונים:

                        @davidnead
                        אתה נכנס בSSH לשרת מספר 2, ופותח את הכתובת בפיירוול.

                        @davidnead אמר בעבודה עם מסד נתונים:

                        צריך לעשות פשוט sqldump - שייצא את זה ישר לשרת 3. לא כך?

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

                        נו, אולי נעמיד את זה לפרס ההוא שצריך להמציא מכונה שבכמה שיותר תהליכים תעשה את הדבר הפשוט ביותר.

                        בכל מקרה, אני חוזר על הצעתי ללייק למי שיספר לי מה הפקודות הדרושות לבצע את זה. הייתי מציע 2 לייקים אבל זה לא עובד פה.

                        clickoneC תגובה 1 תגובה אחרונה
                        1
                        • clickoneC מנותק
                          clickoneC מנותק
                          clickone
                          השיב לdavidnead ב נערך לאחרונה על ידי
                          #37

                          @davidnead
                          נתחיל בזה.
                          תספר מה הידע שלך בSSH / לינוקס (כי אני לא יודע מאיפה להתחיל. מההסבר על SSH או ישר ללכת לFW)
                          וגם איזו הפצה מותקנת שם

                          אין טסט כמו פרודקשן.

                          המייל שלי urivpn@gmail.com

                          D תגובה 1 תגובה אחרונה
                          1
                          • D מנותק
                            D מנותק
                            davidnead
                            השיב לclickone ב נערך לאחרונה על ידי
                            #38

                            @clickone אמר בעבודה עם מסד נתונים:

                            @davidnead
                            נתחיל בזה.
                            תספר מה הידע שלך בSSH / לינוקס (כי אני לא יודע מאיפה להתחיל. מההסבר על SSH או ישר ללכת לFW)
                            וגם איזו הפצה מותקנת שם

                            מותקן אובנטו, נדמה לי 16.
                            יודע לגשת בSSH, מכיר קצת פקודות לינוקס, לומד עם הזמן כאשר אני נתקל בפקודה שנצרכת לי. לא משתמש בזה בדרך כלל כדי לעבוד ישירות עם המסד נתונים, אלא עבודה עם קבצים או התקנות.
                            FW - אין לי ניסיון.
                            הרווחת כבר לייק.

                            clickoneC תגובה 1 תגובה אחרונה
                            1
                            • clickoneC מנותק
                              clickoneC מנותק
                              clickone
                              השיב לdavidnead ב נערך לאחרונה על ידי clickone
                              #39

                              @davidnead
                              זה שרת שלך?
                              או אתה רק מתחזק אותו?
                              איפה הוא מתארח? כי יש שרתים שהFW בעצם מנוהל בחווה. (בד"כ אב הוא מנוהל בשרת עצמו)
                              לדוגמא:
                              כדי לפתוח כתובת אתה משתמש ב

                              iptables -A INPUT -s 1.2.3.4 -j ACCEPT
                              
                              

                              כש 1.2.3.4 זה הIP של השרת השני (שרת מספר 3 במקרה שלך)
                              ייתכן שגם על שרת 3 אתה צריך להוסיף כלל לFW אם הוא פתוח.
                              אחרי שהוספת כלל, צריך לשמור

                              iptables-save
                              

                              והכי חשוב!!
                              לגבות לפני את הקובץ

                              /etc/iptables.up.rules
                              
                              

                              אין טסט כמו פרודקשן.

                              המייל שלי urivpn@gmail.com

                              תגובה 1 תגובה אחרונה
                              0
                              • dovidD מנותק
                                dovidD מנותק
                                dovid ניהול
                                כתב ב נערך לאחרונה על ידי
                                #40

                                @clickone לא בדקת אפשרות בסיסית יותר שאני לא מפסיק לומר, הmysql עצמו מוגבל לIP מסויים. ואז לא יעזור פתיחה של iptables.

                                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                clickoneC תגובה 1 תגובה אחרונה
                                1
                                • clickoneC מנותק
                                  clickoneC מנותק
                                  clickone
                                  השיב לdovid ב נערך לאחרונה על ידי
                                  #41

                                  @dovid הוא לא מוגבל מול שרת מספר 2.
                                  אחרת הוא לא היה יכול לפנות אליו מפרוייקט הווב שלו בשרת מספר 2.
                                  sqldump ירוץ על שרת מספר 2 וינתב את הקובץ לשרת 3 (אפשר אולי גם לחשוב על יצירת תיקיית רשת בין שרת 2 ל3, כך שזה יהיה שמירה לתיקייה..), ששם יש הרשאות לפנייה.
                                  רק השאלה זה האם יש בשרת מספר 1 רק הרשאה סלקטיבית מול שרת מספר 2. ו-sqldump ייכשל בגיבוי.

                                  אין טסט כמו פרודקשן.

                                  המייל שלי urivpn@gmail.com

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • dovidD מנותק
                                    dovidD מנותק
                                    dovid ניהול
                                    כתב ב נערך לאחרונה על ידי
                                    #42

                                    @davidnead גש לSSH, ותתחבר לשרת הSQL עם הפקודה mysql, מכיר?

                                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                    D תגובה 1 תגובה אחרונה
                                    1
                                    • D מנותק
                                      D מנותק
                                      davidnead
                                      השיב לdovid ב נערך לאחרונה על ידי
                                      #43

                                      @dovid אמר בעבודה עם מסד נתונים:

                                      @davidnead גש לSSH, ותתחבר לשרת הSQL עם הפקודה mysql, מכיר?

                                      לא. ניסיתי ישר לבצע גיבוי ופקודות שונות משרת 2 לSQL של 1, אבל התחברות רגילה לSQL מרוחק אני לא מכיר.

                                      dovidD תגובה 1 תגובה אחרונה
                                      0
                                      • dovidD מנותק
                                        dovidD מנותק
                                        dovid ניהול
                                        השיב לdavidnead ב נערך לאחרונה על ידי
                                        #44

                                        @davidnead אמר בעבודה עם מסד נתונים:

                                        @dovid אמר בעבודה עם מסד נתונים:

                                        @davidnead גש לSSH, ותתחבר לשרת הSQL עם הפקודה mysql, מכיר?

                                        לא. ניסיתי ישר לבצע גיבוי ופקודות שונות משרת 2 לSQL של 1, אבל התחברות רגילה לSQL מרוחק אני לא מכיר.

                                        אז תקליד בssh את הפקודה mysql ואנטר, בא נראה אם בכלל מותקן הקליינט.

                                        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                        בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                        D תגובה 1 תגובה אחרונה
                                        0
                                        • D מנותק
                                          D מנותק
                                          davidnead
                                          השיב לdovid ב נערך לאחרונה על ידי
                                          #45

                                          @dovid אמר בעבודה עם מסד נתונים:

                                          @davidnead אמר בעבודה עם מסד נתונים:

                                          @dovid אמר בעבודה עם מסד נתונים:

                                          @davidnead גש לSSH, ותתחבר לשרת הSQL עם הפקודה mysql, מכיר?

                                          לא. ניסיתי ישר לבצע גיבוי ופקודות שונות משרת 2 לSQL של 1, אבל התחברות רגילה לSQL מרוחק אני לא מכיר.

                                          אז תקליד בssh את הפקודה mysql ואנטר, בא נראה אם בכלל מותקן הקליינט.

                                          "ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
                                          "

                                          אני אכן נזכר שכאשר ניסיתי את פקודת הגיבוי, הוא כתב משהו על כך שחסר התקנת קליינט...
                                          לא העלתי על דעתי ששרת שכולו פועל סביב מסד נתונים הmysql לא יהיה מותקן עליו - כי הוא נשאב ממחשב מרוחק.

                                          אמנם, יש לי איזה סקריפט גיבוי שמייצא את המסד נתונים בצורה אחרת, ותיאורטית כן עושה את העבודה, אם לא מחוסר מקום. ייתכן שאם אדם איך לפתוח את שרת 2 לשרת 3, אולי גם את הפקודה של הסקריפט ההוא אפשר לנתב לשרת 3. כך יהיה אפשר לוותר על התקנת MYSQL

                                          תגובה 1 תגובה אחרונה
                                          0

                                          • 1
                                          • 2
                                          • 3
                                          • 4
                                          בא תתחבר לדף היומי!
                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • דף הבית
                                          • קטגוריות
                                          • פוסטים אחרונים
                                          • משתמשים
                                          • חיפוש
                                          • חוקי הפורום