9月 08

go语言连接mysql成功

  go语言取mysql数据。之前的测试并没有成功,也没有找到原因,但是今天编译了一下又成功了,具体修改了哪里我也忘了。赶紧做个记录。敏感信息已经隐藏

  获得go语言的mysql驱动
go get code.google.com/p/go-mysql-driver/mysql
也可以
驱动安装
go get github.com/go-sql-driver/mysql
go install github.com/go-sql-driver/mysql

2013-5-27修正:该mysql驱动被移到git以后使用“$ go get github.com/go-sql-driver/mysql”
项目里调用为“import _ “github.com/go-sql-driver/mysql””

源码如下:

package main

import ("database/sql"
         _ "code.google.com/p/go-mysql-driver/mysql"
        "fmt")

func main() {
    db, e := sql.Open("mysql", "simon:zhang@tcp(127.0.0.1:3306)/simonzhang?charset=utf8")
    if e != nil {
        print("ERROR")
        return
    }
    println("Conn DB OK")
    rows, e := db.Query("select user,passwd from user")
    if e != nil {
        fmt.Print("error:%v\n", e)
        return
    }
    if rows == nil {
        print("Rows is nil")   
        return
    }
    for rows.Next() {
        var u,p string
        err := rows.Scan(&u,&p)
        if err != nil {
            print("Row error!")
            return
        }
        fmt.Println(u," ",p)
    }
    println("WIN!")
}

运行结果

7月 03

linux iptables 我的例子

[整理人:张子萌 2010-7]
  服务器为内网服务器,对外提供web服务器需要解析DNS,所以对外开通80、53端口。服务器登陆需要连接连接到VPN服务器后,才能连接服务器。服务器使用eth0网卡.
  打开iptables文件
#vi /etc/sysconf/iptables
添加如下内容:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
[0:0] -A INPUT -s 192.168.1.0/255.255.255.0 -p icmp -m icmp –icmp-type any -j ACCEPT
[0:0] -A INPUT -p icmp -m icmp –icmp-type any -j DROP
[0:0] -A INPUT -p udp -m udp –sport 53 -j ACCEPT
[0:0] -A INPUT -p udp -m udp –dport 53 -j ACCEPT
[0:0] -A INPUT -p tcp -m tcp –sport 80 -j ACCEPT
[0:0] -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
[0:0] -A INPUT -p tcp -m tcp –sport 25 -j ACCEPT
[0:0] -A INPUT -s ! 192.168.1.0/255.255.255.0 -p udp -j ACCEPT
[0:0] -A INPUT -s ! 192.168.1.0/255.255.255.0 -p tcp -j ACCEPT
[0:0] -A INPUT -p tcp -m tcp –dport 110 -j DROP
[0:0] -A FORWARD -p tcp -m tcp –tcp-flags SYN,RST,ACK SYN -m limit –limit 1/sec -j ACCEPT
[0:0] -A FORWARD -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK RST -m limit –limit 1/sec -j ACCEPT
[0:0] -A FORWARD -p icmp -m icmp –icmp-type 8 -m limit –limit 1/sec -j ACCEPT
[0:0] -N syn-flood
[0:0] -A syn-flood -m limit –limit 1/s –limit-burst 4 -j RETURN
[0:0] -A syn-flood -j DROP
[0:0] -A OUTPUT -d 192.168.1.0/255.255.255.0 -p udp -j ACCEPT
[0:0] -A OUTPUT -d 192.168.1.0/255.255.255.0 -p tcp -j ACCEPT
[0:0] -A OUTPUT -p udp -m udp –sport 53 -j ACCEPT
[0:0] -A OUTPUT -p udp -m udp –dport 53 -j ACCEPT
[0:0] -A OUTPUT -p tcp -m tcp –sport 80 -j ACCEPT
[0:0] -A OUTPUT -p tcp -m tcp –dport 80 -j ACCEPT
[0:0] -A OUTPUT -p tcp -m tcp –dport 25 -j ACCEPT
[0:0] -A OUTPUT -d ! 192.168.1.0/255.255.255.0 -o eth0 -p udp -j DROP
[0:0] -A OUTPUT -d ! 192.168.1.0/255.255.255.0 -o eth0 -p tcp -j DROP
COMMIT
  保存内容,重启防火墙。
# /etc/init.d/iptables restart
注:在远程调试防火墙时,为了避免调试失败,自己都进不去,最好把防火墙设置为不随操作系统启动。命令如下:

# chkconfig –level 0123456 iptables off

个人配置仅供参考
参考网站:http://www.hudong.com/wiki/iptables%E5%AE%9E%E4%BE%8B