手態(tài)給啟攔表添加字段的命令如下:
成都創(chuàng)新互聯(lián)公司主營慶陽網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,重慶APP開發(fā)公司,慶陽h5小程序開發(fā)搭建,慶陽網(wǎng)站營銷推廣歡迎慶陽等地區(qū)企業(yè)咨詢
alter table tableName add newColumn varchar(8) comment '新添加的字段'
注意:
1、在這句語句中需要注意的是,comment為注釋,就像在java中//作用是一樣的。
2、comment后需要加單引號將注釋引起畢旁源來。
mysql不像 SQL Server,寫一段SQL,要go了才執(zhí)行,默認 分號就執(zhí)行了。
在網(wǎng)上找了一大堆例子,最后簡化一下把,一下會從安裝mysql開始,與大家分享一下叢缺滲如何用go鏈接服務器上扮御的mysql
我用的是ubuntu系統(tǒng)
1,安裝mysql:sudo apt-get install mysql-server (記住root的密碼假設密碼為root123)
2,進入mysql:mysql -uroot -p 然后輸入滲脊密碼
3,創(chuàng)建一個數(shù)據(jù)庫:create database people;
4,給數(shù)據(jù)庫people添加用戶:GRANT ALL PRIVILEGES ON people.* TO peo@localhost IDENTIFIED BY "peo123";
5,調(diào)整數(shù)據(jù)庫配置以便于遠程訪問:GRANT ALL PRIVILEGES ON people.* TO peo@“%” IDENTIFIED BY "peo123"; 然后推出mysql執(zhí)行:sudo nano /etc/mysql/my點吸煙 f
修改bind-address=127.0.0.1 到bind-address= 機器的IP(就是安裝mysql的機器的ip)
6,重啟mysql:sudo /etc/init.d/mysql restart
7,建表:首先進入mysql:mysql -u peo -p
進入數(shù)據(jù)庫下:use people
創(chuàng)建表:create table hello(age int, name varchar(10));
插入一條數(shù)據(jù):insert into hello(age, name) values(19, "hello world");
至此數(shù)據(jù)庫方面的工作已經(jīng)做好,接下來是go語言了
8,首先下載mysql的驅(qū)動包(應該是這樣叫)執(zhí)行 go get github點抗 /go-sql-driver/mysql代碼會下載到你的gopath下(執(zhí)行export可以查看gopath)
接著就是下面的代碼了
package main
import "database/sql"
import _ "github點抗 /go-sql-driver/mysql"
import "encoding/json"
import "fmt"
type User struct {
Age int `json:"age"`
Name string `json:"name"`
}
func main() {
fmt.Println("start")
db, err := sql.Open("mysql", "peo:peo123@tcp(192.168.0.58:3306)/people?charset=utf8")
if err != nil {
panic(err)
}
rows, err := db.Query("select age,name from hello")
if err != nil {
panic(err)
}
defer rows.Close()
for rows.Next() {
user := User{}
err = rows.Scan(user.Age, user.Name)
if err != nil {
painc(err)
}
b, _ := json.Marshal(user)
fmt.Println(string(b))
}
println("end")
}
至此結束
之前寫過了Go語言gorm框架MySQL實踐,其中對gorm框架在操作MySQL的各種基礎實踐,下面分享一下如型塌何使用gorm框架對MySQL直接進行性能測試的簡單實踐。
這里我使用了一個原始的Go語言版本的 FunTester 測試框架,現(xiàn)在只有一個基本的方法,實在是因為Go語言特性太強了??蚣茉O計的主要思路之一就是利用Go語言的閉包和方法參數(shù)特性,將一個 func() 當做性能測試的主題,通過不斷運行這個 func() 來實現(xiàn)性能測試。當然還有另外一個思路就是運行一個多線程任務類,類似 Java 版本的 com.funtester.base.constaint.ThreadBase 抽象類,這樣可以設置一些類的屬性,綁定一些測試資源,適配更多的測試場景。
下面演示select的性能測試,這里我用了隨機ID查詢的場景。
這里我使用從35開始遞增的ID進行刪除。
這里使用了select的用例部分,隨機ID,然后更新name字段,隨機10個長度的字符串。
這里用到了 FunTester 字段都是隨機生成。
到這里可以看出,性能測試框架用到的都是gorm框架的基礎API使用,這里MySQL連接池的管理工作完全交給了gorm框架完成,看資料說非常牛逼,我們只需要設置幾個參凳顫數(shù)。這個使用體現(xiàn)很像 HttpClient 設置 HTTP 連接池類似,這里我們也可以看出這些優(yōu)秀的框架使用起來都是非常卜粗圓簡單的。
PS:關于gorm的基礎使用的請參考上一期的文章Go語言gorm框架MySQL實踐。
讀辯塌桐取配置文件并啟動,在配置文件中設置的監(jiān)聽端口監(jiān)聽客戶端請求。
收到客戶端連接請求后,啟動一個goroutine單獨處理該請求。
首選進行登錄驗證,驗證過程完全兼容MySQL認證協(xié)議,由于用戶名和密碼在配置文件中已經(jīng)設置好,所以可以利用該信息驗證連接請求是否合法。
當用戶名和密碼都正確時,轉入下面的步驟,否則返回出錯信息給客戶端。
認證通過后,客戶端發(fā)送SQL語句。
kingshard對客戶端發(fā)送過來的SQL語句,進行詞法和語義分析,識別出SQL的類型和生成SQL的路由計劃。如果衫扮有必要還會改寫SQL,然后轉發(fā)到相應的DB。也有可能不做詞法和語義分析直接轉發(fā)到相應的后端DB。如果轉攜坦發(fā)SQL是分表且跨多個DB,則每個DB對應啟動一個goroutine發(fā)送SQL和接收該DB返回的結果。
接收并合并結果,然后轉發(fā)給客戶端。