2013-05-26 4 views
2

Я довольно новичок в использовании go и у меня проблемы с подключением к внешней базе данных mysql. Я использую go-sql-driver, который швы довольно приятный. Предложения к другим водителям приветствуются!Перейти - Подключение к внешней базе данных mysql

это целая программа:

import (
    "database/sql" 
    _ "github.com/go-sql-driver/mysql" 
    "fmt" 
) 

const (
    DB_HOST = "tcp(http://thedburl.com)" 
    DB_NAME = "nameofdatabase" 
    DB_USER = "username" 
    DB_PW = "password" 
) 

func main() { 
    dsn := DB_USER + ":" + DB_PW + "@" + DB_HOST + "/" + DB_NAME + "?charset=uf8" 
    db, err := sql.Open("mysql", dsn) 

    if err != nil { 
     fmt.Println("shiiet didn't work yo! Initialization failed") 
    } 

    defer db.Close() // go's purty cool 

    var str string 
    q := "SELECT * FROM forums" 
    err = db.QueryRow(q).Scan(&str) 

    if err != nil { 
     fmt.Println(err) 
    } 

    fmt.Println(str) 
} 

По просьбе я ПОЛУЧАТЬ следующую ошибку

"GetAddrInfoW: The specified class was not found." 

Любые идеи? Я занимаюсь часами в Интернете и не могу решить проблему. Возможно, стоит отметить, что я неоднократно использовал одну и ту же службу базы данных в java.

+0

Как вы установили драйвер? Использование 'go get'? Вы используете Go1.1? –

+0

Yeap, через подсказку с go get, и я использую Go 1.1 :) Это безумная тайна для меня ..! –

+0

Я иду к этому, это проблема с драйвером. Кажется, я не могу найти проблему. Когда я называю «go get github.com/go-sql-driver/mysql», я получаю время загрузки, но ответа нет. Список Go также является ошибкой и дает мне странный результат. –

ответ

0

Спасибо за ответы на все вопросы.

Драйверы mysql для Go в настоящее время трудны с более старыми версиями mysql. В частности, эта проблема возникла из-за несовместимости old_password mysql с 2006 года. Поэтому работать со старыми базами данных является болью. (источник: https://github.com/go-sql-driver/mysql/wiki/old_passwords). Мое образованное предположение также относится к драйверу mymysql, который вызывает ошибку «плохого соединения». Который в основном истекает после повторных попыток подключения.

Особая благодарность @Lepidosteus, который ответил, заставил меня открыть для себя настоящую проблему.

Смежные вопросы