Beispiel #1
0
        public override void LoadDatabase(IDatabaseSource dst)
        {
            MySqlStoredConnection sconn = MySqlSettings.CheckMySqlSource(dst);
            MySqlSettings         cfg   = GlobalSettings.Pages.PageByName("mysql_client") as MySqlSettings;

            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo.FileName = cfg.GetToolPath("mysql");
            StringBuilder pars = new StringBuilder();

            pars.AppendFormat("--user={0} ", sconn.Login);
            pars.AppendFormat("--password={0} ", sconn.Password);
            pars.AppendFormat("--host={0} ", sconn.DataSource);
            pars.AppendFormat("--port={0} ", sconn.Port);

            pars.Append("--verbose ");
            pars.Append(dst.DatabaseName ?? sconn.ExplicitDatabaseName);
            pars.Append(" ");

            p.StartInfo.Arguments             = pars.ToString();
            p.StartInfo.UseShellExecute       = false;
            p.StartInfo.RedirectStandardInput = true;
            p.StartInfo.RedirectStandardError = true;
            Logging.Debug("Running mysql " + pars.ToString());
            p.Start();
            Thread thr = new Thread(() => ReadFromErrStream(p));

            thr.Start();
            using (FileStream fr = new FileInfo(Filename).OpenRead())
            {
                IOTool.CopyStream(fr, p.StandardInput.BaseStream);
            }
            p.StandardInput.Close();
            p.WaitForExit();
            thr.Join();
        }
Beispiel #2
0
        public static MySqlStoredConnection CheckMySqlSource(IDatabaseSource source)
        {
            MySqlStoredConnection sconn = source.Connection.StoredConnection as MySqlStoredConnection;

            if (sconn == null)
            {
                throw new InvalidInputError("DAE-00338 " + Texts.Get("s_connection_required$engine", "engine", "MySQL"));
            }
            return(sconn);
        }
Beispiel #3
0
        public override void RunDirectCopy(IDatabaseSource source, DatabaseCopyOptions copyOpts)
        {
            MySqlStoredConnection sconn = MySqlSettings.CheckMySqlSource(source);
            MySqlSettings         cfg   = GlobalSettings.Pages.PageByName("mysql_client") as MySqlSettings;

            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo.FileName = cfg.GetToolPath("mysqldump");
            StringBuilder pars = new StringBuilder();

            pars.AppendFormat("--user={0} ", sconn.Login);
            pars.AppendFormat("--password={0} ", sconn.Password);
            pars.AppendFormat("--host={0} ", sconn.DataSource);
            pars.AppendFormat("--port={0} ", sconn.Port);
            pars.Append("--routines ");
            if (IncludeDropStatement)
            {
                pars.Append("--add-drop-table ");
            }
            else
            {
                pars.Append("--skip-add-drop-table ");
            }

            pars.Append("--verbose ");
            pars.Append(source.DatabaseName ?? sconn.ExplicitDatabaseName);
            pars.Append(" ");

            if (copyOpts.CopyMembers.TableFilter != null)
            {
                pars.Append("--tables ");
                foreach (NameWithSchema table in copyOpts.CopyMembers.TableFilter)
                {
                    pars.Append(table.Name + " ");
                }
            }

            p.StartInfo.Arguments              = pars.ToString();
            p.StartInfo.UseShellExecute        = false;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.RedirectStandardError  = true;
            Logging.Debug("Running mysqldump " + pars.ToString());
            p.Start();
            Thread thr = new Thread(() => ReadFromErrStream(p));

            thr.Start();
            //Console.Write(p.StandardOutput.ReadToEnd());
            using (FileStream fw = new FileStream(GetWorkingFileName(), FileMode.Create))
            {
                IOTool.CopyStream(p.StandardOutput.BaseStream, fw);
            }
            p.WaitForExit();
            thr.Join();
            FinalizeFileName();
        }
Beispiel #4
0
 public MySqlConnFrame(MySqlStoredConnection conn)
     : base(conn)
 {
     InitializeComponent();
     tbxDataSource.Text = conn.DataSource;
     tbxLogin.Text      = conn.Login;
     tbxPassword.Text   = conn.Password;
     tbxPort.Text       = conn.Port.ToString();
     cbxCharacterSet.Items.Add(new EncodingItem {
         Title = Texts.Get("s_default"), WebName = null
     });
     foreach (var i in EncodingTypeConverter.EncodingItems)
     {
         cbxCharacterSet.Items.Add(i);
     }
     cbxCharacterSet.SelectedIndex = 0;
 }
Beispiel #5
0
        public override void SaveConnection()
        {
            MySqlStoredConnection conn = (MySqlStoredConnection)m_conn;

            conn.DataSource = tbxDataSource.Text;
            conn.Login      = tbxLogin.Text;
            conn.Password   = tbxPassword.Text;
            EncodingItem enc = (EncodingItem)cbxCharacterSet.SelectedItem;

            if (enc.WebName == null)
            {
                conn.CharacterSet = null;
            }
            else
            {
                conn.CharacterSet = Encoding.GetEncoding(enc.WebName);
            }
            try { conn.Port = Int32.Parse(tbxPort.Text); }
            catch { conn.Port = 3306; }
        }