i have two machine
PC#1 with db mysql and appache and PC#2 with a c# form try to connect to this db
here is my connection string used in PC#2: SERVER=My_public_ip;DATABASE = my_test; UID = root; PASSWORD = xxxx;"
when i try to connect locally from PC#1 it work good:
SERVER=localhost;DATABASE = my_test; UID = root; PASSWORD = xxxx;"
when i try
i did make my root user remote enabled like that:
GRANT ALL ON *.* to '%'#'%' WITH GRANT OPTION;
and all i get is an Event viewer: unable to connect to any of the specified MySQL host
If both MySql installation are similar (no port changes etc.) then you might want to check connection restriction to the port that MySQL is listening to (usually 3306) on the remote machine. A firewall or something of that sort may be preventing access.
Also if I may ask, have you used any other tool(like MySQL WorkBench or similar) to connect to the MySQL on the remote machine, from the machine which is running your c# form.
That may give you an idea as to whether it access restrictions.
Lastly, i suggest you specify the port in the connection string.
"Data Source =SomeName; Database=SomeDb; User Id=SomeUserId; Password=SomePassword; Port=3306;"
Related
I have a C# Application which would access a MySQL server on another computer. I am trying to do it via IP. Here is my Connection String :
result = "server =66.45.233.226; user id=testcampuscrm; password =Daph$5656; database=testcampuscrm; convert zero datetime=true; ";
getting error this
Access denied for user 'testcampuscrm'#'66.45.232.178' (using
password: YES)
My code is anther hosting and mysql database anther hostig please help us. Thanks
There is multiple things you have to take into consideration while accessing mysql from another machine some them are -
Assuming you did write correct code
1.Change mysql config (my.ini) to receive packets from all IP
2.Add firewall Exception for port 3306 on machine where Mysql is Hosted
3.User name password is Correct and granted proper privileges.
PS:-Do not share server credentials on public forums
I'm having trouble connecting to a SQL Server on a machine in our LAN.
i have done the following :
1.) Made the IP of the machine running the Server 10.0.0.7 and made the IP of the other machines on the LAN IP 10.0.0.X . There is no internet on the LAN(and it will stay that way), changeing IP is permitted.
2.)Enabled remote connection by doing This
3.)Used the appropriate connection string.
Now my only Question that remains is regards to the connection string of those who wish to connect on the server, here is the current Con-string:
string sConnection = #"Server=10.0.0.7\MARNUS-PC\MARNUS_HOME; User ID=MARNUS-PC\MARNUS_HOME; Password=somepassword; Initial Catalog=TestDB;";
My questions are :
1.)What do i put the Server portion? here is my Server name and instance name acording to
the management studio - Server name : MARNUS-PC\MARNUS_HOME , Instance name : MARNUS_HOME.
2.)What do i use as user ID? I wish to use Windows authentication instead of sql server authentication(i have enabled both on server), so how should the connection string change and how to do i allow a user from the server's side on the management studio(if needed)?
3.)I asume if I use Windows authentication i do not need the password part of the Con-String?
I apologize for all the questions,but i was taught MS Access and is now making the switch to SQL Server by myself.
Your connection string must be something like....
string sConnection = #"Server=MARNUS-PC\InstanceName; User ID=MARNUS-PC\MARNUS_HOME; Password=somepassword; Initial Catalog=TestDB;";
Instance name is the Sql Server Instance name.
If you are not Sure about your instance name execute the following statement in your Sql Server Management Studio
SELECT ##SERVERNAME
It will return the [ServerName\InstanceName] you can pass the whole returned string to your connection string are your Server name Server=ServerName\InstanceName;
Windows Authentication
To use windows authentication you will have to a connection string something like this..
string sConnection = #"Server=MARNUS-PC\InstanceName; Initial Catalog=TestDB; integrated security=SSPI";
The IP address identifies the computer, so you wouldn't use both the IP address and the computer name. You can use the IP address in the server setting:
Server=10.0.0.6\MARNUS_HOME;
or you can use the computer name:
Server=MARNUS-PC\MARNUS_HOME;
You are correct that you shouldn't specify any password when you are using windows authentication, and you shouldn't specify any user name either, but you need to specify that you are using it:
Trusted_Connection=Yes;
I have two .net solutions.
They both have this code:
var connectionString = "Server = ServerName; Database = DatabaseName; Trusted_Connection=True;"
var connection = new SqlConnection(connectionString);
connection.Open();
connection.Close();
And they both use complitely the same connectionString. And they connect to MSSQL Server;
And in the first solution connection.Open() succeeded and in the second one it failed.
Error message : Named Pipes Provider, error: 40 - Could not open a connection to SQL Server
And every time I create new solution it fails. So this connection only works in one specific solution. And also, my teammates tested this and didn't have such issues.
Can you help with hints why it can be so?
Check that your SQL server has the TCP/IP protocol enabled and if it is using dynamic ports, ensure that the SQL Browser service is running.
Make sure that any firewall software (windows firewall etc.) has an exception added for the particular exe (the sqlservr.exe file gets copied into the instance folder, which will be in C:\Program Files\Microsoft SQL Server\{instance name}\MSSQL\Binn, where instance name might look something like MSSQL11.SQLEXPRESS) or TCP port 1433 or UDP port 1434 (TCP 1433 for the SQL service itself assuming standard settings, UPD 1434 for the SQL Browser Service).
Check that the user account used to access the server (it should also have sufficient permissions and the login should be enabled), in this case it will be whatever windows account you are logged in as or whatever account your IIS application pool is running as because you are using Trusted_Connection=True.
Also check that you have an up-to-date SQL Client on your machine, you can get the latest version for windows here.
Open Sql Server Configuration Manager and make sure that the Named Pipes option is enabled for your Sql server instance.
Sorry for disturbing you. My problem was my inattentiveness. I created soluiton on another network machine.
I am creating desktop application in c# but i wont to use Online Database created in mysql.
String mysqlConnectionString = "Server=216.14.120.105;Database=xxx_keys;UID=xxx_root;Password=xxx;Port=3306";
MySqlConnection connection = new MySqlConnection(mysqlConnectionString);
connection.Open();
this is the code i am using but i got an error unable to access host.
where i am wrong and if you have any proper code or details then give me.
If this is a MySQL database in local server user "localhost" for server IP as georgi-it also told. But if this is an external database first try to open a telnet connection on dos-prompt to see if there is some firewall block or something like that:
telnet 216.14.120.105 3306
if you don't get an error message and see a blank page then it means you can reach mysql server
What connection string should I use if SSMS connects to it using simply machine name, without instance name?
I mean it connects using the following string: PCName
I used to connect using PCName/SQLExpress. I cannot set correct connection string in my app in order to connect app to database on this machine.
How can I check what data source I should use? I've checked in Sql Server configuration that server instance named as SQLEXPRESS.
So I tried data source as:
.\SQLEXPRESS
PCName\SQLEXPRESS
.
I'm trying to connect to a service-based database, located in my app folder. So I'm using the following connection string:
data source=PCName;attachdbfilename=|DataDirectory|\spareparts.mdf;integrated security=true;user instance=true;multipleactiveresultsets=true;App=EntityFramework;
If SSMS connects via PCName then your application should be able to use Data Source=PCName. However it depends on whether your application is on the same machine as SSMS or not. If on a different machine it might not be able to connect for a variety of reasons. We can't speculate what the problem might be if all you do to describe the issue is "It won't connect" - what does that mean? Do you get an error message? If so, what is it? Make sure:
SQL Browser service is started
TCP/IP is enabled
Add Network=DBMSSOCN; to the connection string
You've also tried the IP address in addition to PCName
Firewall isn't blocking the SQL Server port