2011-07-21 14 views
0

正直言って、これが自分のコードやデータベースの設定に問題があるのか​​どうかはわかりませんが、誰かがこの問題を解決しようとしていることを期待しています私と一緒に。Visual Basic 2010 ExpressでMySQL接続に問題がある

私は、しばらくの間、WAMPを通して設定された単純なリモートmySQLデータベースに接続し、テーブルの最初のユーザー名を印刷するだけの簡単なプログラムを持っています。

(ノート - 私はそれが最初の行が表示されているように、それはVBプログラムにハードコーディングされたため、最初の行のSQL Serverは、これがあると言う知っている)を、次のように私がいる問題は、次のとおりです。

Error while connecting to SQL Server. 

A network-related or instance-specific error occurred while establishing a connection to 
SQL Server. The server was not found or was not accessible. Verify that the instance name 
is correct and that SQLServer is configured to allow remote connections. 

(provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) 
サーバーがIPアドレスに設定されている
  • :192.168.1.14

  • 私はすでにコメントアウト "バインド・アドレスを..."

  • 私は2を作成しましたデータベースユーザー。 1つはホストとしてlocalhost用に設定され、もう1つはホストとして%用に設定されます。

  • ユーザー名とパスワードは非常に基本的です(username:// password)。

のmy.ini:

# Example MySQL config file for medium systems. 
# 
# This is for a system with little memory (32M - 64M) where MySQL plays 
# an important part, or systems up to 128M where MySQL is used together with 
# other programs (such as a web server) 
# 
# You can copy this file to 
# /etc/my.cnf to set global options, 
# mysql-data-dir/my.cnf to set server-specific options (in this 
# installation this directory is C:\mysql\data) or 
# ~/.my.cnf to set user-specific options. 
# 
# In this file, you can use all long options that a program supports. 
# If you want to know which options a program supports, run the program 
# with the "--help" option. 

# The following options will be passed to all MySQL clients 
[client] 
#password = your_password 
port  = 3306 
socket  = /tmp/mysql.sock 

# Here follows entries for some specific programs 

# The MySQL server 
[wampmysqld] 
port  = 3306 
socket  = /tmp/mysql.sock 
key_buffer = 16M 
max_allowed_packet = 1M 
table_cache = 64 
sort_buffer_size = 512K 
net_buffer_length = 8K 
read_buffer_size = 256K 
read_rnd_buffer_size = 512K 
myisam_sort_buffer_size = 8M 
basedir=c:/wamp/bin/mysql/mysql5.5.8 
log-error=c:/wamp/logs/mysql.log 
datadir=c:/wamp/bin/mysql/mysql5.5.8/data 
#bind-address=127.0.0.1 

# Don't listen on a TCP/IP port at all. This can be a security enhancement, 
# if all processes that need to connect to mysqld run on the same host. 
# All interaction with mysqld must be made via Unix sockets or named pipes. 
# Note that using this option without enabling named pipes on Windows 
# (via the "enable-named-pipe" option) will render mysqld useless! 
# 
#skip-networking 

# Disable Federated by default 
skip-federated 

# Replication Master Server (default) 
# binary logging is required for replication 
log-bin=mysql-bin 

# binary logging format - mixed recommended 
binlog_format=mixed 

# required unique id between 1 and 2^32 - 1 
# defaults to 1 if master-host is not set 
# but will not function as a master if omitted 
server-id = 1 

# Replication Slave (comment out master section to use this) 
# 
# To configure this host as a replication slave, you can choose between 
# two methods : 
# 
# 1) Use the CHANGE MASTER TO command (fully described in our manual) - 
# the syntax is: 
# 
# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>, 
# MASTER_USER=<user>, MASTER_PASSWORD=<password> ; 
# 
# where you replace <host>, <user>, <password> by quoted strings and 
# <port> by the master's port number (3306 by default). 
# 
# Example: 
# 
# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306, 
# MASTER_USER='joe', MASTER_PASSWORD='secret'; 
# 
# OR 
# 
# 2) Set the variables below. However, in case you choose this method, then 
# start replication for the first time (even unsuccessfully, for example 
# if you mistyped the password in master-password and the slave fails to 
# connect), the slave will create a master.info file, and any later 
# change in this file to the variables' values below will be ignored and 
# overridden by the content of the master.info file, unless you shutdown 
# the slave server, delete master.info and restart the slaver server. 
# For that reason, you may want to leave the lines below untouched 
# (commented) and instead use CHANGE MASTER TO (see above) 
# 
# required unique id between 2 and 2^32 - 1 
# (and different from the master) 
# defaults to 2 if master-host is set 
# but will not function as a slave if omitted 
#server-id  = 2 
# 
# The replication master for this slave - required 
#master-host  = <hostname> 
# 
# The username the slave will use for authentication when connecting 
# to the master - required 
#master-user  = <username> 
# 
# The password the slave will authenticate with when connecting to 
# the master - required 
#master-password = <password> 
# 
# The port the master is listening on. 
# optional - defaults to 3306 
#master-port  = <port> 
# 
# binary logging - not required for slaves, but recommended 
#log-bin=mysql-bin 

# Point the following paths to different dedicated disks 
#tmpdir  = /tmp/  
#log-update  = /path-to-dedicated-directory/hostname 

# Uncomment the following if you are using InnoDB tables 
#innodb_data_home_dir = C:\mysql\data/ 
#innodb_data_file_path = ibdata1:10M:autoextend 
#innodb_log_group_home_dir = C:\mysql\data/ 
#innodb_log_arch_dir = C:\mysql\data/ 
# You can set .._buffer_pool_size up to 50 - 80 % 
# of RAM but beware of setting memory usage too high 
#innodb_buffer_pool_size = 16M 
#innodb_additional_mem_pool_size = 2M 
# Set .._log_file_size to 25 % of buffer pool size 
#innodb_log_file_size = 5M 
#innodb_log_buffer_size = 8M 
#innodb_flush_log_at_trx_commit = 1 
#innodb_lock_wait_timeout = 50 

[mysqldump] 
quick 
max_allowed_packet = 16M 

[mysql] 
no-auto-rehash 
# Remove the next comment character if you are not familiar with SQL 
#safe-updates 

[isamchk] 
key_buffer = 20M 
sort_buffer_size = 20M 
read_buffer = 2M 
write_buffer = 2M 

[myisamchk] 
key_buffer = 20M 
sort_buffer_size = 20M 
read_buffer = 2M 
write_buffer = 2M 

[mysqlhotcopy] 
interactive-timeout 

[mysqld] 
port=3306 

私のVBスクリプト:

Imports System.IO 
Imports System.Data 
Imports System.Data.SqlClient 

Module SQLcon1 

    'Dim connect As New SqlConnection 

    Sub Main() 
     Dim con As String = "server=192.168.1.14;uid=username;pwd=password;database=apache_test;" 
     'Alt method   "Data Source=192.168.1.14;Initial Catalog=apache_test;Persist Security Info=True;User ID=username;Password=password" 
     Dim connect As New SqlConnection(con) 
     Try 
      connect.Open() 
      Dim command As New SqlCommand("SELECT userid from TABLE2 limit 1", connect) 
     Catch ex As Exception 
      Console.WriteLine("Error while connecting to SQL Server." & ex.Message) 
      connect.Close() 'Whether there is error or not. Close the connection. 
     End Try 
     Console.WriteLine("Press Enter to continue") 
     Console.ReadLine() 
    End Sub 
End Module 

誰が間違って起こっていることに関して、いくつかの洞察を与えることができれば、私は意志そこからあなたと一緒に働きなさい。

ありがとうございました。

Side-Note:

私は、サーバー上でローカルにそれを実行するときにSQL接続が出てFTPサーバと連携することを実現しますが、リモートコンピュータから実行した場合、それは以下のように同様の問題を与えるので、私は始めていますMySQLの設定を可能にするためには、それに向けてもっと傾けてください。


ニールのアドバイスを使用し、Odbc.OdbcConnectionへのSQLConnectionを切り替えました。それは次のエラーを生成:

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified 
+0

なぜ質問をmysqlにタグ付けしてから、SQL Serverに関するエラーを表示しますか? –

+0

@ james_bond - 私が知る限り、WAMPはMySQLを使用しているからです。私はちょうどWAMPがそれを表示したものに行きました。 また、先頭行は「SQL Server」としてハードコードされていますので、無視してください。 – Jason

答えて

1

MysqlConnectorを使用する必要があります。 SqlConnectionはSQL Server用です。

+0

ちょうどそれはリンクではなく、ハイライトであることに気づいた。しかし、私は自分のプログラムをスタンドアローンの実行可能ファイルのままにしておくことができるものが必要です。それが私が最初にこれを書いていた理由です。私のプログラムは、私のプログラムが実行されるすべてのコンピュータにダウンロード/インストールする必要がある200の他のプログラムに依存する必要がないようにしたい。 – Jason

+0

@ Jason:mySQLに接続する場合は、ドライバが必要です。 ODBCを使用する場合は、mySQL Connectorをダウンロードするよりも完全管理のADO.NETを使用する場合は、myODBC http://dev.mysql.com/downloads/connector/odbc/3.51.html が必要です。これがなければ、あなたはmySQLに接続することができます! – 2GDev

2

SqlConnectionはMS SQL Serverに接続します。 MySqlに接続するには、OdbcConnectionまたはMySqlのado.netアダプタを使用する必要があります。

+0

私はこれをスタンドアローンの実行可能ファイルとして配布できるようにしたいのですが、私はそれを済ませたら、あらかじめインストールしなければならない他のものを必要としたくない他のコンピュータではOdbcConnectionはプラグインを必要としますか? – Jason

+0

私はOdbc.OdbcConnection(con)を使用しました。エラーが発生しました:エラー[IM002] [Microsoft] [ODBCドライバマネージャ]データソース名が見つかりません。デフォルトドライバが指定されていません – Jason

+0

OdbcConnectionではなくOleDbConnectionを提案する必要がありますが、 MySQLProv'を接続文字列に追加します。これはMySqlConnectionのために行う必要はありません。 – Neil