mysql資料庫傳輸數據
一、一般步驟
1、用phpADMIN生成CSV格式文件
以PHP+MySQL模式建立個人主頁的讀者,在自己的機器上都有PHP+MySQL環境吧?就在這個環境下,用phpADMIN生成以分號為分隔符的dotmud.csv文件。
2、將dotmud.csv文件通過FTP上傳到伺服器。
3、上傳data.php程序(程序附後),在瀏覽器調用data.php程序,將dotmud.csv文件的內容加入到資料庫。
二、特殊處理
一般的數據,通過上述步驟,基本可以順利上傳。但對於包含特殊字元的數據(比如資料庫記錄中包含換行符、單引號、分號),就要做些特殊的處理。
1、換行符的處理
PHP的fgetcsv()函數以換行符作為每行的結束標志。如果MySQL數據表的記錄包含換行符,fgetcsv()就不能完整讀取記錄行。
筆者的解決方法是修改phpADMIN的lib.inc.php3文件(讀者也可以不修改phpADMIN文件,而是用其他方法直接加工phpADMIN生成的dotmud.csv文件,達到同樣的效果)的get_table_csv()函數:
在 $schema_insert=ereg_replace($sep."$","",$schema_insert) 行後加入如下命令行
$schema_insert=ereg_replace("\r\n","`return`",$schema_insert)
將換行符轉換為不容易出現的換行標識串`return`(讀者可根據自己數據的特點設置獨特的換行標識串),再在data.php程序中加一行命令$data[$i]=ereg_replace("`return`","\r\n",$data[$i]),用來將換行標識串還原成換行符。
2、分隔符的處理
如果MySQL記錄行恰好包含CSV分隔符,fgetcsv()進行分隔處理時就會出現問題。
筆者仍然是通過修改lib.inc.php3文件解決的。
在get_table_csv()的$schema_insert="$row[$j]".$sep行前加一行
$row[$j]=ereg_replace($sep,"`return_sep`",$row[$j]) 命令,將分隔符轉為分隔標識串`return_sep`,同時在data.php中用命令行 $data[$i]=ereg_replace("`return_sep`",";",$data[$i]) 進行還原處理。
3、單引號的處理
MySQL的SQL語句行對單引號有特殊的定義,如果直接提交含單引號的SQL語句,就會出錯。這種情況需要加上轉義符。在data.php中加一行 $data[$i]=ereg_replace("'","\'",$data[$i]) 就可解決。
另外,在數據記錄特別多的的情況下,dotmud.csv文件可能比較大,如果在伺服器的限定時間內不能執行完data.php程序,就需要按行分拆dotmud.csv。如筆者有個7000行的dotmud.csv文件,在自己的機器上執行到600行就提示超時,便拆成10個文件上傳到全路互聯(www.wayall.com),結果對方的伺服器速度快,每個文件的處理時間還不到1秒,而php默認的限定執行時間可是30秒啊!看來我做的分拆實屬多餘。
以上方法解決了資料庫內容的上傳問題。對於資料庫結構的上傳,只要稍微修改一下data.php程序就可實現。其實,如果庫結構比較簡單,用phpADMIN更方便
❷ DMZ區應用伺服器怎麼和mysql資料庫傳輸數據
需要將資料庫伺服器的3306埠在路由上映射出去,當然映射出去的埠號不一定非得是3306,可以自定義埠號,而且為了安全可以做一條策略,只允許dmz區的ip地址訪問。希望可以幫到你~
❸ mysql怎樣將一個資料庫中的數據導入到另一個資料庫中
1、啟動該工具,設置好數據鏈接。
❹ mysql資料庫怎麼上傳數據的
鏈接資料庫,插入數據,,不是上傳的。。
❺ 如何在兩台伺服器之間安全遷移MySQL資料庫
遷移MySQL資料庫通常只需要幾個簡單的步驟,但是由於您要轉移的數據量可能比較龐大,因此一般耗時也會比較長。
下面的步驟將指導您如何從舊的伺服器上導出MySQL資料庫,對它進行安全加固;然後將其復制並導入到新的伺服器上,以保證數據的完整。
將MySQL資料庫導出至轉儲文件(mp file)
Oracle提供了一個名為mysqlmp的工具,允許您輕松地將資料庫結構和其數據導出到一個SQL的轉儲文件。您可以使用如下的命令:
1.mysqlmp -u root -p --opt [database name] > [database name].sql
不過,請注意如下幾點:
我們可以使用--single-transaction的標志,以避免資料庫在導出數據的過程中被鎖死。這樣能夠在將數據導出到轉儲文件的同時,您仍可繼續在舊的資料庫上更新數據。不過請注意,那些在導出進程已經開始之後被更新的數據,是不會被導入轉儲文件之中的。
在運行該命令之前,請務必將[database name]替換成您的實際資料庫名稱。
請輸入您自己的用戶名和相對應的密碼,並確保該用戶具有備份資料庫所需的許可權。
安全加固備份文件
在大多數情況下,數據是一家企業的最重要的資產。因此,我們不希望資料庫的各種備份被暴露在不受保護的伺服器上,因為這樣有可能會造成錯誤地泄露,甚至會出現被黑客竊取等更為糟糕的狀況。
因此,通常您可以嘗試的做法是:壓縮、加密文件,然後刪除原文件。在Linux操作系統上,請使用以下的命令對已壓縮文件進行加密:
1.zip --encrypt mp.zip db.sql
在壓縮開始之前,系統將提示您輸入密碼。
傳輸備份文件
至此,我們已經獲得了一個加密的轉儲文件。下面讓我們通過網路使用SCP命令,將其傳輸到新的伺服器上:
1.scp /path/to/source-file user@host:/path/to/destination-folder/
將MySQL轉儲導入新伺服器
通過上面一步,我們已將備份文件傳到了新的伺服器上,下面讓我們來進行解密和提取:
1.unzip -P your-password mp.zip
為了存儲空間和安全方面的原因,一旦文件導入成功,請記得刪除其對應的轉儲文件。
您可以使用以下的命令來導入文件:
1.mysql -u root -p newdatabase < /path/to/newdatabase.sql
在新伺服器上驗證導入的數據
現在我們在新伺服器上已經導入了資料庫,那麼我們就需要一種方法來驗證數據的真實存在,並確保沒有任何遺漏。
我建議您同時在舊的和新的資料庫上運行如下查詢,並將獲得的結果進行對比。
該查詢會在所有的表裡計算行數,以顯示出新、舊資料庫中的數據量。
1.SELECT
2.TABLE_NAME,
3.TABLE_ROWS
4.FROM
`
5.information_schema`.`tables`
6.WHERE
`
7.table_schema` = 'YOUR_DB_NAME';
此外,我建議您檢查各個表中數字列的MIN和MAX記錄,以確保數據本身是有效的,而不僅僅是看數據的總量(雖然這是查詢所唯一能夠讀出的值)。另一種可供測試的選擇是將資料庫從新的伺服器導出為SQL轉儲文件,並將其與舊伺服器的SQL轉儲文件做比較。
此外,在應用程序被遷移之前,我建議您先將一個應用程序的實例重定向到新的資料庫上,以確認一切運行正常。
另一種導出和導入的選項
我們之所以把該選項放在最後,是因為我們的確不建議您去使用它。
該方法實現起來非常的容易,因為它僅使用一個命令,便能一次性將轉儲文件導出、傳輸、並將其數據導入到新的資料庫之中。
而它的不足之處在於,一旦其網路鏈接斷掉,您就需要重新啟動它了。
因此,我們認為它並不值得被推薦,尤其是在大型資料庫中,可能會非常不適用。
當然,如果您非要嘗試一下的話,可以使用如下的命令:
1.mysqlmp -u root -pPassword --all-databases | ssh user@new_host.host.com 'cat - | mysql -u root -pPassword'
重要提示
請確保在新舊兩處,安裝有相同官方發行版本的MySQL伺服器。否則,你需要按照MySQL網站上的升級說明來進行統一(請參見(https://dev.mysql.com/doc/refman/5.7/en/upgrading.html)。
請確保您在舊的伺服器上擁有足夠的空間來保存轉儲文件和壓縮文件(應該有db_size×2的空間)。
請確保您在新的伺服器上擁有足夠的空間來保存加密的和解密的轉儲文件、並能導入資料庫(應該有db_size×3的空間)。
如果您曾經考慮過只是將datadir從一個資料庫轉移到另一個的話,我建議您最好不要這樣做。否則,您會搞亂資料庫的內部結構,而且會給將來可能的問題埋下隱患。
在新的伺服器配置中,請不要忘了配置諸如innodb_log_file_size這樣的重要標志。因為如果忘記了根據新伺服器的規格而更新配置的話,很可能會導致嚴重的性能問題。
在許多情況下,一般升級到新的資料庫伺服器的初衷是為了提高查詢性能。而如果此類升級沒有達到預期的改善,那麼您就應該考慮去優化SQL查詢,而不僅僅是升級硬體那麼簡單了
❻ 如何將MySQL資料庫拷貝到另一台機器
不行,但是你可以在另外一台上安裝,然後吧數據部分搬過去是可以的,直接搬是不行的哦
❼ 怎樣把我的Mysql中的資料庫復制到另一台電腦中
MySQL 8.0.17 clone 插件的安裝和驗證過程
安裝非常簡單,與安裝其他插件的工作方式相同。下面是安裝克隆插件的命令行:
master [localhost:45008] ((none)) > INSTALL PLUGIN clone SONAME 'mysql_clone.so';Query OK, 0 rows affected (0.00 sec)
以及如何檢查克隆插件是否處於活動狀態:master [localhost:45008] ((none)) > SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINSWHERE PLUGIN_NAME LIKE 'clone';+-------------+---------------+| PLUGIN_NAME | PLUGIN_STATUS |+-------------+---------------+| clone | ACTIVE |+-------------+---------------+1 row in set (0.00 sec)
請注意,這些步驟需要在 Donor(供體)和 Recipient(受體,也成為 Slave)上都執行。執行安裝後,插件將在重新啟動後自動載入,因此您不必再擔心這一點。接下來,我們將在 Donor 上創建具有必要許可權的用戶,這樣我們就可以遠程連接到實例來克隆它。
master [localhost:45008] ((none)) > create user clone_user@'%' identified by 'sekret';
Query OK, 0 rows affected (0.01 sec)
master [localhost:45008] ((none)) > GRANT BACKUP_ADMIN ON *.* TO 'clone_user'@'%';
Query OK, 0 rows affected (0.00 sec)
作為安全措施,我建議將百分號 % 替換為從機的 IP、主機名或網路掩碼,以便只有未來的從伺服器才能接受連接。現在,從伺服器上,克隆用戶需要CLONE_ADMIN 許可權來替換從機數據,在克隆操作期間阻止 DDL 並自動重新啟動伺服器。
slave1 [localhost:45009] ((none)) > create user clone_user@'localhost' identified by 'sekret';
Query OK, 0 rows affected (0.01 sec)
slave1 [localhost:45009] ((none)) > GRANT CLONE_ADMIN ON *.* TO 'clone_user'@'localhost';
Query OK, 0 rows affected (0.00 sec)
如上所述,克隆過程可以在本地或遠程執行。此外,它支持復制,這意味著克隆操作從捐贈者提取和傳輸復制坐標並將其應用於收件人。它可用於 GTID 或非 GTID 復制。因此,要開始克隆過程,首先,讓我們確保有一個有效的供體(Master)。這由 clone_valid_donor_list 參數控制。由於它是動態參數,您可以在伺服器運行時進行更改。使用 show variables 命令將顯示參數是否具有有效的供體(Master):slave1 [localhost:45009] ((none)) > SHOW VARIABLES LIKE 'clone_valid_donor_list';+------------------------+-------+| Variable_name | Value |+------------------------+-------+| clone_valid_donor_list | |+------------------------+-------+1 row in set (0.01 sec)
例子中,我們需要對它進行設置:slave1 [localhost:45009] ((none)) > set global clone_valid_donor_list = '127.0.0.1:45008';Query OK, 0 rows affected (0.00 sec)
下一步不是強制性的,但使用默認的 log_error_verbosity,錯誤日誌不會顯示有關克隆進度的大量信息。所以,對於這個例子,我會將詳細程度調整到更高的級別(在供體和受體機上):mysql > set global log_error_verbosity=3;Query OK, 0 rows affected (0.00 sec)
現在,讓我們在受體(Slave)上開始克隆過程:slave1 [localhost:45009] ((none)) > CLONE INSTANCE FROM [email protected]:45008 identified by 'sekret';Query OK, 0 rows affected (38.58 sec)
接下來,安裝並驗證插件,並在主和從伺服器上創建用戶。
克隆過程
❽ 如何利用Navicat for MySQL資料庫進行數據傳輸
如何利用Navicat for MySQL資料庫進行數據傳輸
navicat for mysql種資料庫管理工具, 專門用於簡化, 發管理MySQL我使用navicat for mysql連接遠程資料庫連接本資料庫使用工具查看錶數據非便輸入SQL命令實現查詢輸入創建表等命令便我起看看使用navicat for mysql 創建並查詢資料庫數據
❾ mysql資料庫怎麼遠程連接使用,怎麼傳數據
MySQL使用navcatMySQL客戶端工具遠程連接,這個工具有導入向導,支持TXT文本和EXCEL表格導入。