加入--slip-out, 輸出為方便diff的格式
mysqldump --skip-opt -u $MY_USER -p$MY_PASS mydb1 > /tmp/dump1.sql
mysqldump --skip-opt -u $MY_USER -p$MY_PASS mydb2 > /tmp/dump2.sql
2019年10月27日 星期日
修復MySQL無法啟動的問題
在備用的server上發現MySQL無法啟動
從mysql error log (/var/log/mysql/mysql/error.log)
看起來有可能是資料毀損
補救方式:
1. 先使用recovery mode啟動:
/etc/mysql/my.cnf裡面加入innodb_force_recovery = 1
2. 啟動MySQL:
$ service mysql start
如果還是啟動失敗就修改my.cnf的值, ex:
innodb_force_recovery = 2, 再啟動看看
依照毀損的嚴重程度最多加到6
3. Dump database的SQL
mysqldump -u 'name' -p -A > dump.sql
4. 關閉MySQL:
$ service mysql stop
5. 把舊的資料庫內容刪除(最好先備份)
$ cd /var/lib/mysql
$ rm ib*
$ rm -rf [DATABASE_NAME]
6. 在my.cnf裡面將innodb_force_recovery = 1移除
啟動MySQL
7. 將dump的資料庫寫回去:
$ mysql -u 'name' -p < dump.sql
8. 寫入途中, 修正所有發生的error
9. service mysql restart
10. 啟動成功
不過要注意的時,修正途中可能造成資料遺失
必須看看怎麼補救
Ref:
https://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
從mysql error log (/var/log/mysql/mysql/error.log)
看起來有可能是資料毀損
補救方式:
1. 先使用recovery mode啟動:
/etc/mysql/my.cnf裡面加入innodb_force_recovery = 1
2. 啟動MySQL:
$ service mysql start
如果還是啟動失敗就修改my.cnf的值, ex:
innodb_force_recovery = 2, 再啟動看看
依照毀損的嚴重程度最多加到6
3. Dump database的SQL
mysqldump -u 'name' -p -A > dump.sql
4. 關閉MySQL:
$ service mysql stop
5. 把舊的資料庫內容刪除(最好先備份)
$ cd /var/lib/mysql
$ rm ib*
$ rm -rf [DATABASE_NAME]
6. 在my.cnf裡面將innodb_force_recovery = 1移除
啟動MySQL
7. 將dump的資料庫寫回去:
$ mysql -u 'name' -p < dump.sql
8. 寫入途中, 修正所有發生的error
9. service mysql restart
10. 啟動成功
不過要注意的時,修正途中可能造成資料遺失
必須看看怎麼補救
Ref:
https://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
2019年10月15日 星期二
2019年10月1日 星期二
使用cURL取得Google搜尋結果
Google最簡單的搜尋Pattern:
比如說我想搜尋nintendo switch,
https://www.google.com/search?q=nintendo+switch
但如果直接使用curl:
curl "https://www.google.com/search?q=nintendo+switch"
會出現錯誤
需要加上User Agent, 如下:
curl -A 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0' "https://www.google.com/search?q=nintendo+switch"
就可以產生搜尋的結果了
比如說我想搜尋nintendo switch,
https://www.google.com/search?q=nintendo+switch
但如果直接使用curl:
curl "https://www.google.com/search?q=nintendo+switch"
會出現錯誤
需要加上User Agent, 如下:
curl -A 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0' "https://www.google.com/search?q=nintendo+switch"
就可以產生搜尋的結果了
Get and push AOSP projects to local Gerrit server
1. Get Git MIRROR from AOSP
$ mkdir aosp_mirror
$ repo init -u https://android.googlesource.com/platform/manifest --mirror
$ repo sync
2. Create a project as parent in Gerrit of all other AOSP projects
2.a. In Gerrit Web UI, Browse->Repositories-> Create New
2.b. Set "Only server as parent for other repositories" to true
3. Create groups to manage access of your project
3.a. Browse->Groups->Create New
3.b. Create 2 groups, android10-admin, android10-user
4. Add your group to access Android10 project
4.a. Browse->Repository->AOSP
4.b. Click access on left tab
4.c. Modify it as you want
5. Add projects to Gerrit
5.a. Add projects to Gerrit
$ repo forall -c 'echo $REPO_PROJECT; ssh -p 29418 admin@10.10.10.10 gerrit create-project --owner android10-admin Android10/$REPO_PROJECT;'
5.b. Add parent project of added projects
$ repo forall -c 'echo $REPO_PROJECT; ssh -p 29418 admin@10.10.10.10 gerrit set-project-parent --parent AOSP Android10/$REPO_PROJECT;'
$ mkdir aosp_mirror
$ repo init -u https://android.googlesource.com/platform/manifest --mirror
$ repo sync
2. Create a project as parent in Gerrit of all other AOSP projects
2.a. In Gerrit Web UI, Browse->Repositories-> Create New
2.b. Set "Only server as parent for other repositories" to true
3. Create groups to manage access of your project
3.a. Browse->Groups->Create New
3.b. Create 2 groups, android10-admin, android10-user
4. Add your group to access Android10 project
4.a. Browse->Repository->AOSP
4.b. Click access on left tab
4.c. Modify it as you want
5. Add projects to Gerrit
5.a. Add projects to Gerrit
$ repo forall -c 'echo $REPO_PROJECT; ssh -p 29418 admin@10.10.10.10 gerrit create-project --owner android10-admin Android10/$REPO_PROJECT;'
5.b. Add parent project of added projects
$ repo forall -c 'echo $REPO_PROJECT; ssh -p 29418 admin@10.10.10.10 gerrit set-project-parent --parent AOSP Android10/$REPO_PROJECT;'
訂閱:
文章 (Atom)