Month: October 2017

[Git]讓不同的Repository使用不同的private key

有時候我們需要在不同的Repository使用不同的private key,尤其是工作和私人的Repository

目標

我們希望切換到不同的Local Repository下git pull或git push這些和remote repository的指令它就自動使用指定的private key

第一步:到~/.ssh/config新增config

如果有兩個不同的Repository使用不同的key,就需要新增兩個設定

這裡用your-repo-ayour-repo-b來表示

再把Host複製起來,下一步會用到

Host your-repo-a
HostName github.com
User git
IdentityFile /home/tony/.ssh/your_repo_a_id_rsa

Host your-repo-b
HostName github.com
User git
IdentityFile /home/tony/.ssh/your_repo_b_id_rsa

第二步:到Local Repository的.git/config

依照上面的設定host,修改remote hostname


[remote "origin"]
    url = git@your-repo-a:tonyciou/a-project.git

這樣就搞定了!

Advertisements

[MySQL] 讓mysql識別table 不分大小寫(case insensitive)

以下兩種SQL,MySQL是否會將他們識別程不同的資料表呢?

select * from users
select * from Users

答案是:可以,也不可以

一般來說資料表的名稱都會使用小寫來命名,雖然我也有遇過一些是用大寫命名,但第一次遇到有混用的,才發現我需要在開發環境的my.cnf加上一個設定,才能讓以上兩個sql查到同一張資料表,而且我有發現只有我在建立開發環境的時候碰到這個問題,因為團隊的其他人是用Mac,在預設的情況下在Mac和Windows安裝MySQL,它會將SQL的table name用(case insensitive)的方式來看,而Linux預設則會用(case sensitive)的方式,這和OS的File system有關,但有沒有方式可以讓MySQL在Linux上跑的時候也case insensitive呢?

只要在my.cnf將lower_case_table_names設1

[mysqld]
lower_case_table_names = 1

不管你的table是大寫或小寫mysql都會將他們視為小寫

參考來源:

https://dev.mysql.com/doc/refman/5.6/en/identifier-case-sensitivity.html