M級別數(shù)據(jù)遷移
一蹬挺、修改php.ini文件维贺。
cmd+shift+g 輸入 /etc/php.ini 找到php.ini
找到php.ini搜索這3個地方
1、查找post_max_size汗侵,指通過表單POST給PHP的所能接收的最大值幸缕,包括表單里的所有值群发,默認為8M晰韵,看你自己需要進行改變。
2熟妓、查找File Uploads雪猪,首先確認file_uploads = on ;是否允許通過HTTP上傳文件的開關,默認為ON即是開起愈。 upload_tmp_dir ;
查找upload_max_filesize ;即允許上傳文件大小的最大值只恨。默認為2M译仗。
3、如果要上傳>8M的文件官觅,那么只設置上述四項還不定一定可以纵菌。最好對下面的參數(shù)也進行設置:
查找max_execution_time = 600 ;每個PHP頁面運行的最大時間值(秒),默認30秒休涤。
max_input_time = 600 ;每個PHP頁面接收數(shù)據(jù)所需的最大時間咱圆,默認60秒 。
memory_limit = 8M ;每個PHP頁面所吃掉的最大內存功氨,默認8M序苏。
4.重啟mysql :
sudo /Library/StartupItems/MySQLCOM/MySQLCOM restart
sudo apachectl restart
然后重新登錄phpmyadmin就可以了
二、修改c:/phpmyadmin/import.php文件捷凄。
用寫字板打開import.php文件:
1忱详、查找$memory_limit,默認為$memory_limit = 2 * 1024 * 1024;自己修改跺涤。
2匈睁、下邊三四行的位置有同樣的語句,自己修改桶错。
-------------------------------------------------
G級別數(shù)據(jù)遷移
最近有個需求软舌,要把機器a上的一個數(shù)據(jù)庫遷移到機器b上,這個數(shù)據(jù)庫的數(shù)據(jù)有100多個G牛曹。所以佛点,果斷拋棄用mysqldump的方法來遷移。這時候想到的就是直接復制文件來做遷移黎比。
于是我按照網上的說法超营,步驟如下:
一、把機器b的MySQL停掉阅虫。
二演闭、把機器a上要遷移的庫的整個目錄復制到機器b的mysql data目錄下。
三颓帝、修改目錄權限為700米碰,修改文件權限為660,并修改他們的所屬用戶和所屬組為mysql购城。
四吕座、再啟動機器b的mysql。
操作完成后瘪板,我進入機器b的mysql吴趴,此時,執(zhí)行show databases可以看到要遷移的數(shù)據(jù)庫侮攀。然后執(zhí)行use databasename,再執(zhí)行show tables锣枝,也可以看到所有的表厢拭。但是問題來了,我執(zhí)行select * from table limit 10撇叁,這時候卻報錯了供鸠,提示表不存在。
所以陨闹,我們大致可以指定mysql的工作機制回季,show databases和show tables時,mysql其實是去目錄下掃描正林,但執(zhí)行select這些操作的時候泡一,mysql優(yōu)化器會去information_schema.TABLES 這個表里面獲取信息。由于我們是直接復制文件過去觅廓,所以鼻忠,這個表里面是沒有信息的,所以就會提示表不存在杈绸。
知道了這點之后帖蔓,我修改了上述步驟:
一、在機器b上瞳脓,創(chuàng)建需要的database
二塑娇、在該database建好所有的表。
三劫侧、把機器b的mysql停掉埋酬。
四、到機器b上烧栋,剛才建的那個數(shù)據(jù)庫的目錄下写妥,把所有的(.ibd)文件刪除掉。
五审姓、把機器a上珍特,對應數(shù)據(jù)庫目錄下所有的(.ibd)文件復制到機器b上,修改文件的權限魔吐。
六扎筒、啟動機器b的mysql。
這時候再連接上b的mysql酬姆,就可以看到所有的數(shù)據(jù)了嗜桌。