2017-02-08 2 views
0

Ich habe mysql in vielen meiner lokalen Maschinen installiert und versuchen, alle Daten aus einer bestimmten Tabelle in einen Remote-Server zu sichern. Der Datenbankname, der Tabellenname und die Felder in der Tabelle stimmen genau überein. Früher habe ich einen Dump auf jedem meiner lokalen Rechner erstellt, diesen Dump auf den Server kopiert und in die Tabelle eingelesen. Jetzt versuche ich den Tabelleninhalt direkt zu kopieren und an den entfernten Server anzuhängen.Übertragen von Tabelle von lokalen mysql auf remote mysql

the machine id : XYZ123  
the database name: mydatabase, 
the table name: DT 
the table fields are: Date and Time. 

Das oben genannte ist in beiden Maschinen identisch.

Ich verwende den folgenden Code auf meinem lokalen Rechner:

mysqldump -u root mydatabase DT | ssh [email protected] mysql -u root -p 'ABCDEF' mydatabase DT 

Ich habe versucht, -h nach den ssh mit .... aber es hat nicht geholfen. Die scp von jeder dieser Maschinen funktioniert jedoch.

Ich habe kein Passwort für meine lokale MySQL. Nach der Bereitstellung des obigen Codes werde ich aufgefordert, das Passwort meines Remote-Servers einzugeben, den ich bereitstelle. Danach bekomme ich die unten angegebenen Details auf meinen Bildschirm und die Datenübertragung passiert nicht. Was könnten die möglichen Probleme sein?

mysql Ver 14.14 Distrib 5.6.32, for Linux (x86_64) using EditLine wrapper 
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its 
affiliates. Other names may be trademarks of their respective 
owners. 

Usage: mysql [OPTIONS] [database] 
    -?, --help   Display this help and exit. 
    -I, --help   Synonym for -? 
    --auto-rehash  Enable automatic rehashing. One doesn't need to use 
         'rehash' to get table and field completion, but startup 
         and reconnecting may take a longer time. Disable with 
         --disable-auto-rehash. 
         (Defaults to on; use --skip-auto-rehash to disable.) 
    -A, --no-auto-rehash 
         No automatic rehashing. One has to use 'rehash' to get 
         table and field completion. This gives a quicker start of 
         mysql and disables rehashing on reconnect. 
    --auto-vertical-output 
         Automatically switch to vertical output mode if the 
         result is wider than the terminal width. 
    -B, --batch   Don't use history file. Disable interactive behavior. 
         (Enables --silent.) 
    --bind-address=name IP address to bind to. 
    --character-sets-dir=name 
         Directory for character set files. 
    --column-type-info Display column type information. 
    -c, --comments  Preserve comments. Send comments to the server. The 
         default is --skip-comments (discard comments), enable 
         with --comments. 
    -C, --compress  Use compression in server/client protocol. 
    -#, --debug[=#]  This is a non-debug version. Catch this and exit. 
    --debug-check  Check memory and open file usage at exit. 
    -T, --debug-info Print some debug info at exit. 
    -D, --database=name Database to use. 
    --default-character-set=name 
         Set the default character set. 
    --delimiter=name Delimiter to be used. 
    --enable-cleartext-plugin 
         Enable/disable the clear text authentication plugin. 
    -e, --execute=name Execute command and quit. (Disables --force and history 
         file.) 
    -E, --vertical  Print the output of a query (rows) vertically. 
    -f, --force   Continue even if we get an SQL error. 
    -G, --named-commands 
         Enable named commands. Named commands mean this program's 
         internal commands; see mysql> help . When enabled, the 
         named commands can be used from any line of the query, 
         otherwise only from the first line, before an enter. 
         Disable with --disable-named-commands. This option is 
         disabled by default. 
    -i, --ignore-spaces Ignore space after function names. 
    --init-command=name SQL Command to execute when connecting to MySQL server. 
         Will automatically be re-executed when reconnecting. 
    --local-infile  Enable/disable LOAD DATA LOCAL INFILE. 
    -b, --no-beep  Turn off beep on error. 
    -h, --host=name  Connect to host. 
    -H, --html   Produce HTML output. 
    -X, --xml   Produce XML output. 
    --line-numbers  Write line numbers for errors. 
         (Defaults to on; use --skip-line-numbers to disable.) 
    -L, --skip-line-numbers 
         Don't write line number for errors. 
    -n, --unbuffered Flush buffer after each query. 
    --column-names  Write column names in results. 
         (Defaults to on; use --skip-column-names to disable.) 
    -N, --skip-column-names 
         Don't write column names in results. 
    --sigint-ignore  Ignore SIGINT (CTRL-C). 
    -o, --one-database Ignore statements except those that occur while the 
         default database is the one named at the command line. 
    --pager[=name]  Pager to use to display results. If you don't supply an 
         option, the default pager is taken from your ENV variable 
         PAGER. Valid pagers are less, more, cat [> filename], 
         etc. See interactive help (\h) also. This option does not 
         work in batch mode. Disable with --disable-pager. This 
         option is disabled by default. 
    -p, --password[=name] 
         Password to use when connecting to server. If password is 
         not given it's asked from the tty. 
    -P, --port=#  Port number to use for connection or 0 for default to, in 
         order of preference, my.cnf, $MYSQL_TCP_PORT, 
         /etc/services, built-in default (3306). 
    --prompt=name  Set the mysql prompt to this value. 
    --protocol=name  The protocol to use for connection (tcp, socket, pipe, 
         memory). 
    -q, --quick   Don't cache result, print it row by row. This may slow 
         down the server if the output is suspended. Doesn't use 
         history file. 
    -r, --raw   Write fields without conversion. Used with --batch. 
    --reconnect   Reconnect if the connection is lost. Disable with 
         --disable-reconnect. This option is enabled by default. 
         (Defaults to on; use --skip-reconnect to disable.) 
    -s, --silent  Be more silent. Print results with a tab as separator, 
         each row on new line. 
    -S, --socket=name The socket file to use for connection. 
    --ssl    Enable SSL for connection (automatically enabled with 
         other flags). 
    --ssl-ca=name  CA file in PEM format (check OpenSSL docs, implies 
         --ssl). 
    --ssl-capath=name CA directory (check OpenSSL docs, implies --ssl). 
    --ssl-cert=name  X509 cert in PEM format (implies --ssl). 
    --ssl-cipher=name SSL cipher to use (implies --ssl). 
    --ssl-key=name  X509 key in PEM format (implies --ssl). 
    --ssl-crl=name  Certificate revocation list (implies --ssl). 
    --ssl-crlpath=name Certificate revocation list path (implies --ssl). 
    --ssl-verify-server-cert 
         Verify server's "Common Name" in its cert against 
         hostname used when connecting. This option is disabled by 
         default. 
    --ssl-mode=name  SSL connection mode. 
    -t, --table   Output in table format. 
    --tee=name   Append everything into outfile. See interactive help (\h) 
         also. Does not work in batch mode. Disable with 
         --disable-tee. This option is disabled by default. 
    -u, --user=name  User for login if not current user. 
    -U, --safe-updates Only allow UPDATE and DELETE that uses keys. 
    -U, --i-am-a-dummy Synonym for option --safe-updates, -U. 
    -v, --verbose  Write more. (-v -v -v gives the table output format). 
    -V, --version  Output version information and exit. 
    -w, --wait   Wait and retry if connection is down. 
    --connect-timeout=# Number of seconds before connection timeout. 
    --max-allowed-packet=# 
         The maximum packet length to send to or receive from 
         server. 
    --net-buffer-length=# 
         The buffer size for TCP/IP and socket communication. 
    --select-limit=# Automatic limit for SELECT when using --safe-updates. 
    --max-join-size=# Automatic limit for rows in a join when using 
         --safe-updates. 
    --secure-auth  Refuse client connecting to server if it uses old 
         (pre-4.1.1) protocol. 
         (Defaults to on; use --skip-secure-auth to disable.) 
    --server-arg=name Send embedded server this as a parameter. 
    --show-warnings  Show warnings after every statement. 
    --plugin-dir=name Directory for client-side plugins. 
    --default-auth=name Default authentication client-side plugin to use. 
    --histignore=name A colon-separated list of patterns to keep statements 
         from getting logged into mysql history. 
    --binary-mode  By default, ASCII '\0' is disallowed and '\r\n' is 
         translated to '\n'. This switch turns off both features, 
         and also turns off parsing of all clientcommands except 
         \C and DELIMITER, in non-interactive mode (for input 
         piped to mysql or loaded using the 'source' command). 
         This is necessary when processing output from mysqlbinlog 
         that may contain blobs. 
    --connect-expired-password 
         Notify the server that this client is prepared to handle 
         expired password sandbox mode. 

Default options are read from the following files in the given order: 
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 
The following groups are read: mysql client 
The following options may be given as the first argument: 
--print-defaults  Print the program argument list and exit. 
--no-defaults   Don't read default options from any option file, 
         except for login file. 
--defaults-file=#  Only read default options from the given file #. 
--defaults-extra-file=# Read this file after the global files are read. 
--defaults-group-suffix=# 
         Also read groups with concat(group, suffix) 
--login-path=#   Read this path from the login file. 

Variables (--variable-name=value) 
and boolean options {FALSE|TRUE} Value (after reading options) 
--------------------------------- ---------------------------------------- 
auto-rehash      TRUE 
auto-vertical-output    FALSE 
bind-address      (No default value) 
character-sets-dir    (No default value) 
column-type-info     FALSE 
comments       FALSE 
compress       FALSE 
debug-check      FALSE 
debug-info      FALSE 
database       (No default value) 
default-character-set    auto 
delimiter       ; 
enable-cleartext-plugin   FALSE 
vertical       FALSE 
force        FALSE 
named-commands     FALSE 
ignore-spaces      FALSE 
init-command      (No default value) 
local-infile      FALSE 
no-beep       FALSE 
host        (No default value) 
html        FALSE 
xml        FALSE 
line-numbers      TRUE 
unbuffered      FALSE 
column-names      TRUE 
sigint-ignore      FALSE 
port        0 
prompt       mysql> 
quick        FALSE 
raw        FALSE 
reconnect       FALSE 
socket       (No default value) 
ssl        FALSE 
ssl-ca       (No default value) 
ssl-capath      (No default value) 
ssl-cert       (No default value) 
ssl-cipher      (No default value) 
ssl-key       (No default value) 
ssl-crl       (No default value) 
ssl-crlpath      (No default value) 
ssl-verify-server-cert   FALSE 
table        FALSE 
user        root 
safe-updates      FALSE 
i-am-a-dummy      FALSE 
connect-timeout     0 
max-allowed-packet    16777216 
net-buffer-length     16384 
select-limit      1000 
max-join-size      1000000 
secure-auth      TRUE 
show-warnings      FALSE 
plugin-dir      (No default value) 
default-auth      (No default value) 
histignore      (No default value) 
binary-mode      FALSE 
connect-expired-password   FALSE 
+1

Sieht so aus, als ob Ihr entfernter "mysql" Fehler ausgibt, weil er seine Befehlszeilenargumente nicht versteht. Sie haben zwei Optionen angegeben, den Datenbanknamen und dann den Tabellennamen: mysql -u root -p ABCDEF mydatabase DT, mysql weiß nicht, was mit diesem DT-Argument zu tun ist. Eigentlich sollte mysqldump einen vernünftigen SQL-Code liefern, der bereits Werte in eine Tabelle mit spezifischem Namen einfügt, also sollte es nicht nötig sein, sie für mysql anzugeben. – yeputons

+1

tl; dr: entferne 'DT' Argument von deinen' mysql' Argumenten (nicht 'mysqldump') – yeputons

+0

@yeputons Danke, dass das Problem gelöst wurde .... plus hatte ich ein Leerzeichen zwischen' -p' und 'ABCDEF' .. ..wenn ich sie entfernt habe ... ist die Datenübertragung passiert. Nochmals vielen Dank ... – Apricot

Antwort

1

Sie sollten DT Argument von Ihrem mysql Argumente entfernen. Der Grund ist, dass mysql eine Verbindung zu Datenbank (nicht Tabelle in der Datenbank) und erwartet eine Sequenz von SQL-Abfragen zu kommen, enthält jede SQL-Abfragen bereits Informationen über welche Tabelle, wenn Änderungen.

mysqldump erzeugt wiederum eine Sequenz von INSERT INTO SQL-Abfragen, die bei der Ausführung Daten in eine bestimmte Tabelle einfügen würden. Es muss also wissen, welche Tabelle zu dumpen und welchen Tabellennamen in SQL-Abfragen anzugeben ist.

Hinweis: Wenn Sie sehen, dass eine Anwendung help druckt, anstatt etwas Sinnvolles zu tun, liegt dies in der Regel daran, dass Befehlszeilenargumente nicht analysiert wurden (z. B. unbekannte Option, zu viel oder zu wenig Argumente).

Verwandte Themen