㈠ windows10鎬庝箞鐢ㄥ懡浠よ繘鍏mysql鏁版嵁搴(windows鍚鍔╩ysql鍛戒護)
1銆侀栧厛錛屾煡鐪婱ySQL鐨勬湇鍔℃槸鍚﹀瓨鍦ㄣ傚傛灉涓嶅瓨鍦ㄩ渶瑕佸厛瀹夎呮湇鍔°傚畨瑁呮湇鍔$殑鏂規硶鏄榪涘叆MySQLServer鐨勫畨瑁呯洰褰曪紝鎵懼埌bin鐩褰曪紝鐒跺悗鎵懼埌鏂囦歡mysqld.exe錛屼嬌鐢ㄥ懡浠よ岃繍琛宮ysqld--installMySQL57瀹夎呮湇鍔(濡傛灉涓嶆垚鍔熷皾璇曚嬌鐢ㄧ$悊鍛樻柟寮忚繍琛,MySQL57鏄鏈嶅姟鐨勫悕瀛楋紝榛樿ゆ槸MySQL)銆
2銆佸傛灉涓婅堪鏂規硶瀹夎呮湇鍔″け璐ワ紝鍒欏彲閲囩敤涓嬭堪鏂規硶瀹夎(鎴愬姛鍒欒煩榪囨ゆ)銆傛悳緔㈢▼搴忊渞egedit.exe鈥濓紝鍗蟲敞鍐岃〃緙栬緫鍣錛屾墦寮鍚庢壘鍒扳滆$畻鏈衡濃斺"HKEY_LOCAL_MACHINE"鈥斺斺淪YSTEM鈥濃斺斺溾濃斺斺淪ervices鈥,鐒跺悗鍦ㄨョ洰褰曚笅鏂板緩欏筂ySQL57(鏈嶅姟鐨勫悕瀛)鍗沖彲鎴愬姛寤虹珛欏圭洰銆
3銆佹壘鍒版柊寤虹殑欏癸紝鐒跺悗鍙浠ョ湅鍒板叾涓鏈塈magePath榪欎竴欏癸紝榪欏叾瀹炴槸鍙鎵ц屾枃浠剁殑璺寰勩傚洜涓篗ySQL鏈嶅姟鏄闇瑕侀潬mysqld榪欎釜鍛戒護鏉ュ惎鍔ㄧ殑錛屾墍浠ユ鏌ヤ笅ImagePath鐨勮礬寰勬槸鍚︽g『銆傝礬寰勯敊璇瀵艱嚧鍚鍔ㄦ湇鍔℃椂鎶ラ敊鈥斺滄棤娉曟壘鍒版枃浠垛濄
4銆佷慨鏀笽magePath鐨勫唴瀹逛負姝g『鐨勮礬寰勫礆紝姝g『鐨勫兼槸"D:MySQLMySQLServer5.7inmysqld"--defaults-file="D:MySQLMySQLServer5.7my.ini"MySQL鏄榪欑嶅艦寮忕殑錛屽圭収涓涓嬶紝濡傛灉璺寰勪笉瀵癸紝淇鏀硅繃鏉ャ
5銆侀噸鍚璁$畻鏈猴紝鍐嶆″惎鍔ㄦ湇鍔★紝騫跺彲浠ユ垚鍔熻繍琛孧ySQL鏈嶅姟銆
㈡ 如何將mysql的一個完整資料庫全部復制到另外一個資料庫
如果從庫上表 t 數據與主庫不一致,導致復制錯誤,整個庫的數據量很大,重做從庫很慢,如何單獨恢復這張表的數據?通常認為是不能修復單表數據的,因為涉及到各表狀態不一致的問題。下面就列舉備份單表恢復到從庫會面臨的問題以及解決辦法:
場景 1
如果復制報錯後,沒有使用跳過錯誤、復制過濾等方法修復主從復制。主庫數據一直在更新,從庫數據停滯在報錯狀態(假設 GTID 為 aaaa:1-100)。
修復步驟:
在主庫上備份表 t (假設備份快照 GTID 為 aaaa:1-10000);
恢復到從庫;
啟動復制。
這里的問題是復制起始位點是 aaaa:101,從庫上表 t 的數據狀態是領先其他表的。aaaa:101-10000 這些事務中只要有修改表 t 數據的事務,就會導致復制報錯 ,比如主鍵沖突、記錄不存在(而 aaaa:101 這個之前復制報錯的事務必定是修改表 t 的事務)
解決辦法:啟動復制時跳過 aaaa:101-10000 這些事務中修改表 t 的事務。
正確的修復步驟:
1. 在主庫上備份表 t (假設備份快照 GTID 為 aaaa:1-10000),恢復到從庫;
2. 設置復制過濾,過濾表 t:
3. 啟動復制,回放到 aaaa:10000 時停止復制(此時從庫上所有表的數據都在同一狀態,是一致的);
4. 刪除復制過濾,正常啟動復制。
注意事項:這里要用 mysqlmp --single-transaction --master-data=2,記錄備份快照對應的 GTID
場景 2
如果復制報錯後,使用跳過錯誤、復制過濾等辦法修復了主從復制。主、從庫數據一直在更新。
修復步驟:
在主庫上備份表 t (假設備份快照 GTID為 aaaa:1-10000);
停止從庫復制,GTID為 aaaa:1-20000;
恢復表 t 到從庫;
啟動復制。
這里的問題是復制起始位點是 aaaa:20001,aaaa:10000-20000 這些事務將不會在從庫上回放,如果這裡面有修改表 t 數據的事務,從庫上將丟失這部分數據。
解決辦法:從備份開始到啟動復制,鎖定表 t,保證 aaaa:10000-20000 中沒有修改表 t 的事務。
正確修復步驟:
對表 t 加讀鎖;
在主庫上備份表 t;
停止從庫復制,恢復表 t;
啟動復制;
解鎖表 t。
如果是大表,這里可以用可傳輸表空間方式備份、恢復表,減少鎖表時間。
㈢ MYSQL 資料庫用什麼命令切換資料庫,謝謝大家教我。
要用哪個庫 就寫
use 庫名
就可以切換過去了