Xׯd>ddlZddlZddlZddlZddlZddlmZmZddlm Z ddl Z ddl Z ddl m Z mZmZddlmZddlmZdZd ZGd d eZdS) N)QueueEmpty)Thread)log_info log_error log_debug) to_unicode)ConnectionTunnelc tjjjjdrotjrStfdt jd tj DrSdSn#YdSxYwtj dkr1tjdStj dkr1tjdStjdrStdt jd tj DrdSdS) N mysqlclientc3K|]A}tjtj|VBdSNospathexistsjoin).0prs ..\workbench\client_utils.py z$get_path_to_mysql../sAeeA27>>"',,q"6"677eeeeeePATHdarwinmysqlwin32z mysql.exec3K|]A}tjtj|dVBdS)rNr)rrs rrz$get_path_to_mysql..@s@dd1rw~~bgll1W5566ddddddr)grtrootwboptionsrrranygetenvsplitpathsepsysplatformlowermformsAppgetget_executable_path)rs@rget_path_to_mysqlr.(s x{"*=9  w~~d##  eeee6ARARAXAXY[YcAdAdeeeee  4   tt |x''z~~33G<<<      ( (z~~33K@@@z~~33G<<  K dd &@Q@Q@W@WXZXb@c@cddd d d 7tsABA BBczd}t}t|||f}|||fS)zlCreate a thread to read from the file object and feed a queue. Use for non-blocking reads from file objects.c |}|sn||-|ddSr)readlineput)fileqls rreaderz"start_reading_from..readerHsH  A  EE!HHH   d r)targetargs)rrstart)r3r6r4thrs rstart_reading_fromr;EsH A dAY / / /CIIKKK c6MrcNeZdZdZdZdZdZdZdZd dZ d Z dd Z dd Z dS)MySQLScriptImporterz5Import a SQL script using the MySQL command line toolcg|_d|_t|_d|_t ||_|j}g}|jj dkrQ| dtj dkrdndz|dr| d|dzn| d|jj s|d r7| d t|jj p|d z|jj rd gp|d gd r4| d|jj rd gp|d gd z|dd r|ddr| d|dz|ddr| d|dz|ddr| d|dz|ddr| d|dz|ddr| d|d|dzgz }||_dS)NMysqlNativeSocketz --protocol=rpipesocketz --socket=z--protocol=tcpportz--port= localhosthostNamerz--host=useSSLsslCertz --ssl-cert=%ssslCAz --ssl-ca=%ssslKeyz --ssl-key=%s sslCipherz--ssl-cipher=%sOPT_ENABLE_CLEARTEXT_PLUGINz--enable-cleartext-pluginz--user=userName) _extra_params _passwordr. _tool_path_upgrade_tool_pathr _tunnelparameterValuesdrivernameappendr'r(rCstrr,_connection_params)selfconnection_paramsconnparamss r__init__zMySQLScriptImporter.__init__Zs+--"$'(9::  0  # (,? ? ? MM-3<73J3JPXY Z Z ZH~ < kDN:;;; MM* + + +|  RDL R i#dl.?.O4<*P*PPQQQ !3{mIZ8H7I1M j i4<+<+N++dSWXbScRdfg*hhiii 88Ha  Exx 2&& A oY?@@@xx$$ = md7m;<<<xx"%% ? ntH~=>>>xx R(( E /${2CCDDD 8812 6 6 7 MM5 6 6 69tJ//00"(rc||_dSr)rM)rX param_lists rset_extra_paramsz$MySQLScriptImporter.set_extra_paramss'rc||_dSr)rN)rXpasswords r set_passwordz MySQLScriptImporter.set_passwords !rcdSr)rXmessagecurrenttotals rreport_progressz#MySQLScriptImporter.report_progresss rc$t|dSr)print)rXtexts r report_outputz!MySQLScriptImporter.report_outputs d rNcRtjdk}|dkr||dS|dkr|r tjdd}|j}d}nGtj}tj |d}tj ||d|z||fS|d kr|r|d |zdS|d kr ||j z }dS|d kr ||j z }dS|d kr|r||dSdSdS)NWindowscommanddefaults-extra-fileF.cnfdeletesuffixextraparams.cnfz--defaults-extra-file=%sdefault-character-set--default-character-set=%sconnection-params extra-paramsdefault-schema) r(systemrUtempfileNamedTemporaryFilerTmkdtemprrrmkfiforWrM)rXr^ parameterdata is_windowspwdfile pwdfilenametmpdirs radd_command_parameterz)MySQLScriptImporter.add_command_parametersn_&&)3  ! !   d # # # # # / / / '"5U6RRR%l ")++ gll63DEE  +&&&   8;F G G G;& & 1 1 1d 1   :TA B B B B B - - - $1 1JJJ . ( ( $, ,JJJ * * *t *   d # # # # #+ * * *rc tjdk}d}d}|r~tj}|xjtjzc_tj|_tj }t|tr| |n|}n|} td|ztj||tjtjtj|}nb#t"$rU}t%d|d|dddl} | t+d|d t|d}~wwxYw|S) Nrnr?Executing command: %s )cwdstdoutstdinstderr startupinfoError executing command  rError executing : )r(r{ subprocess STARTUPINFOdwFlagsSTARTF_USESHOWWINDOWSW_HIDE wShowWindowr'getfilesystemencoding isinstancerVencoderPopenPIPESTDOUTOSErrorr traceback print_exc RuntimeError) rXroworking_directoryr real_commandinfofseprocexcrs rlaunch_processz"MySQLScriptImporter.launch_processsq_&&)3    #)++D LLJ; ;LL)1D +--C2>#...PWLL"L U /,> ? ? ?#L6GPZP_gqgv@J@Q^bcccDD U U U ILLL###N O O O        ! ! !,LLL#c(((STT T  U  sA C** E 4AEE utf8c |jstdg}||d|j||d\}}||d|||d||d||d||dd |}d} |d d d ||d}|jd |_t|d}| d|j ddz| d } t|j jd D]3} | dr| dz } || | d 4||dd d n9#t"$r,} t%d|dt'| Yd} ~ nd} ~ wwxYw|rt)j||rt)j|dSdS#|rt)j||rt)j|wwxYw)Nz;You need to specify a valid location to mysql_upgrade tool.rorprvrxryrzz--force Preparing...rr?wz[client] password=%s \\\Checkingr z Finished...z*There was an exception running a process: r)rPrrrUrrhrrNopenwritereplacecloseiterrr1 startswithwait ExceptionrrVrremovermdir) rXdefault_schemadefault_charsetrorrcommand_stringrr line_countlinees r reset_schemasz!MySQLScriptImporter.reset_schemass& ^\]] ] ""7It7NOOO"88BWXX  ""7,C_UUU ""7,?@@@ ""7N;;; ""7, >??:..>!OJ((z1=== IIKKK  1 5 5 5 5 ^ ^ ^ IGGGUXYZU[U[U[\ ] ] ] ] ] ] ] ] ^ ' +&&& !      ! ! ' +&&& !     !s1D G! I ! H+"H I HI /I9c D|jstdtjdk}|r+d|jzg}t jdd}|j}d}n\t|jg}t j}tj |d}tj || d|z|r| d |z||jz }||jz }|r| |d |} tj |} t#d |d | d | dd} |ddd|s t'j|| t&jt&jt&jd} np#t.$rc} t1dd |d| dtdd |dt3| d} ~ wwxYwt5|d5}|d|jd|_||jdd|ddddn #1swxYwY|r t'j} | xjt&j zc_t&j!| _"tGd| zt'j| | t&jt&jt&j| | ddkd} no#t.$rb} t1d| dt3| dddl$}|%td| dt3| d} ~ wwxYwtj&|j'}d}|dtj (|zd|tS| j*\}}t5|d 5}| r| +dkr |r|,}|rt#d!|zd"|vrt[j.|d#|vr)t^j0d$kr|dd%}|1|2n|d}n#tf$rYnwxYw|4}|sn|tk|z } | j6|nd#tn$rW}t1d&|z|j8d'krt1d(Yd}~n[|j8d)krt1d(Yd}~n<|d}~wwxYw|d||| r| +dkdddn #1swxYwY| j69|d*|||r |:}|nt#d!|zd"|vrt[j.|d#|vr)t^j0d$kr|dd%}|1|2| | ;| j<}t#d,|z|dkr(|d-t3|zddn|d.dd||rtj=||rtj>|SS#|rtj=||rtj>|wwxYw)/NzYmysql command line client not found. Please fix its path in Preferences -> Administrationrnz"%s"Frqrrruz--defaults-extra-file=rwrzFeeding data from z to z (cwd=z) rr)rrrrencodingrrrrrz[client] password=r?rrrr")rrrrrshellrzImporting %s...rzTask stdout: %s zAccess denied for userzCan't open named pipe to hostrz}Please check if the server started with the --enabled-named-pipe parameter. The parameter can also be set in the config file.z3Exception writing to stdin from cmdline client: %s zBroken pipe from child process zFinished executing scriptTzmysql tool exited with code %s zOperation failed with exitcode z Operation completed successfully)?rOrr(r{r|r}rTr r~rrrrrUrWrMdirnamerrhrrrrrrrVrrrNrrrrrrrrrstatst_sizebasenamer;rpoll get_nowaitr DBLoginErrorr'r)rlstriprr1lenrIOErrorerrnorr,r returncoderr)rXrrrrr[rrrcmdstrworkdirp1rrr total_size processedstdout_qr: input_filerkrrexitcodes r import_scriptz!MySQLScriptImporter.import_scripts |z{{ {_&&)3  #t./F1vNNNG!,KFF 112F%''F',,v/@AAK Ik " " " .<===  J MM6H I I I$))$$$  * MM. ) ) )&!!'//$''DDD&&&'''RSSS o !  t < < < aa#)&gZ_]g]luvGRXYYYBBaaaICHHVDTDTDTDTVYVYVYZ[[[&,CHHVDTDTDTDTVYZ]V^V^V^'_```a k3'' $7 3444>)%'DN dn44T6BBCCC d###  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ W W%133DLLJ$CCLL'1'9D$7&@AAA#)&gjo]g]luvGTX`fgh`imp`p{ABBBBBWWWIFFFCPSHHHHUVVV$$$$'')))&,FFFCPSHHH'UVVV W.JI  !2RW5E5Ed5K5K!KQPZ [ [ [.ry99MHcdC FJFRWWYY$.. # 2#+#6#6#8#8D#2 ()}>},~D $ 2 24::<< @ @ @ @!%-1( &..00DT*I  t,,,,"   !"X[\"\]]]7b==%&HIII!EEEEW]]#$FGGG%%%% ((y*EEE?FRWWYY$.. F F F F F F F F F F F F F F FH HNN     !>D|047888/477!.t4448D@@S\EWEWEYEY]dEdEd+/442q2q r&&tzz||444 5 HHJJJ GGIII}H 7(B C C C1}}$$%FX%VX\^bcccc$$%GtTTT ' +&&& !     ! ' +&&& !     !s$]0>8F76]07 H$AHH$$]07A'J* ]0*J..]01J.2]09BM ]0 N:AN55N::A<]06W'BS0/W'0 S=:W'<S==,W'*UW' V&,V!;W'V!W'V!!V&&5W' ]0'W++]0.W+/E]00/^r)Nr) __name__ __module__ __qualname____doc__r\r_rbrhrlrrrrrdrrr=r=Ws??$)$)$)N((("""   $$$$46)!)!)!)!\P!P!P!P!P!P!rr=)r(r'rr|rqueuerr threadingrr*r workbench.logrrr wb_commonr db_utilsr r.r;objectr=rdrrrs,  8888888888 &&&&&&:$l!l!l!l!l!&l!l!l!l!l!r