私はここの指示に従うことを試みています https://github.com/go-sql-driver/mysql#installation および http://go-database-sql.org/ access.html でsql.dbを作成します。
私のコードの最初の行にはこれがあります
db, err := sql.Open("mysql", "username@localhost/my_db")
ターミナルでプログラムを実行すると、次のようになりました。
Default addr for network ''localhost'' unknown
どうしてこれなの? mysqlのユーザーとホストを確認すると、「username」と「localhost」と表示されます。私はこのようなパラメーターに従いました:
[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...¶mN=valueN]
tcp
の代わりに、プロトコル( 'localhost
'など)を指定することもできます。
を参照 これらの例 :
user:password@tcp(localhost:5555)/dbname
あなたの場合:
username@tcp(localhost)/my_db
デフォルトのプロトコル(tcp
)とホスト(localhost:3306
)、これは次のように書き換えられます。
user:password@/dbname
linux VMでdocker containerを実行しているときに、同様の問題に直面していました。私のアプリケーション(server.go)で、localhostの値を変更して仮想マシンのIPを使用し、コンテナーを正常にビルドして実行しました。
mysql container(3307)<-> [(application mysql :: 3307)container](expose 3000)<-> world