Thanks for looking into my post. I am facing issue while connecting SQL Server on Linux using windows authentication account if I use local account then things are working fine without any issue. Please let me know what changes are required here.
ERROR
/opt/mssql-tools/bin/sqlcmd -S aaa.com -U aaa -d master
Password:
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Login failed for user 'aaa'..
/opt/mssql-tools/bin/sqlcmd -S aaa.com -U 'test' -d master -P Hello1234
1> select ##servername
2> go
Running this from my SQL Server Management Studuio (SSMS) connecting to Azure sql database. I am using SQLCMD mode of SSMS.
:Connect -S taiobdemo1.database.windows.net -d taiobcustomer -U sqlusername -P strongpw
Getting this error:
A fatal scripting error occurred. Incorrect syntax was encountered
while parsing :Connect.
The :connnect SqlCmd command does not allow you to specify a target database. You'll always connect to your default database. So it's pretty useless in Azure SQL Database, as you'll be connected to Master and won't be able to switch.
eg
:Connect xxxx.database.windows.net -U someuser -P xxxx
select db_name()
Will always output master
I have a connection between my localhost and a remote server using putty SSH tunnel.
Thats fine.
Now I need a command to get the sql file on my local machine i.e. c:\folder\test.sql and import it into mysql on the remote server
I thought maybe...
mysql -u prefix_username -p testpass -h localhost -P 3307 prefix_testdb
then do a command like
mysql -p testpass -u prefix_username prefix_testdb < c:\folder\test.sql
this command did not work.
How can I acheive this?
You should run this command
mysql -h host -u user_name -pPassword database < file.sql > output.log
file.sql contains the sql queries to run and output.log makes sense only when you have a query that returns something (like a select)
The only thing different I can see in your code is the blank space between the -p option and the password. If you use the -p option, you must write the password without leaving any blank space. Or you just can user the option --password=Password
I hope you can solve the problem
You will need to ssh to the remote machine with the mysql command appended:
ssh remote_user#remote_server mysql -p testpass -u username testdb < c:\folder\test.sql
1. mysql -h xxx -uxxx -pxxx . //login to the remote mysql
2. use DATABASE. //assign which db to import
3. source path/to/file.sql //the path can be your local sql file path.
Reference: Import SQL file into mysql
Use 'scp' to copy and mysql to insert to you local machine.
Syntax:
scp remote_user#remove_server:/path/to/sql/file.sql ~/path/to/local/directory
after you transfered the file use:
mysql -uYouUserName -p name_of_database_to_import_to < ~/path/to/local/directory/file.sql
mysql {mydbname} --host {server}.mysql.database.azure.com --user {login} --password={password} < ./{localdbbackupfile}.sql
As managed services, DevOps, and CI/CD workflows have become more popular by this point, most providers of those managed services want to remove the human error part of getting the connection strings correct. If you happen to be using Azure, AWS, GCP, etc, There usually is a page or terminal command that shows you these strings to help you easily integrate. Don't forget to check their docs if you're using something like that. They are auto generated, so they are most likely 'best practice' with spot-on correct syntax for the db version you may be using.
The above command is from "connection strings" on the product details page of my Azure Managed Mysql DB Server instance.
Not necessarily asked, but an fyi, a lot of those services auto generate templates for use in a lot of common connection scenarios:
{
"connectionStrings": {
"ado.net": "Server={server}.mysql.database.azure.com; Port=3306; Database=mytestdb; Uid={login}; Pwd={password};",
"jdbc": "jdbc:mysql://{server}.mysql.database.azure.com:3306/mytestdb?user={login}&password={password}",
"jdbc Spring": "spring.datasource.url=jdbc:mysql://{server}.mysql.database.azure.com:3306/mytestdb spring.datasource.username={login} spring.datasource.password={password}",
"mysql_cmd": "mysql mytestdb --host {server}.mysql.database.azure.com --user {login} --password={password}",
"node.js": "var conn = mysql.createConnection({host: '{server}.mysql.database.azure.com', user: '{login}', password: {password}, database: mytestdb, port: 3306});",
"php": "$con=mysqli_init(); [mysqli_ssl_set($con, NULL, NULL, {ca-cert filename}, NULL, NULL);] mysqli_real_connect($con, '{server}.mysql.database.azure.com', '{login}', '{password}', 'mytestdb', 3306);",
"python": "cnx = mysql.connector.connect(user='{login}', password='{password}', host='{server}.mysql.database.azure.com', port=3306, database='mytestdb')",
"ruby": "client = Mysql2::Client.new(username: '{login}', password: '{password}', database: 'mytestdb', host: '{server}.mysql.database.azure.com', port: 3306)"
}
}
You can use pscp to upload file to the server. Go to your command line and type this
pscp.exe c:\folder\test.sql usernameoftheserver#websitename.com:/serverpath
When I try to connect to the sql server using the sqlcmd utility, I use the following syntax:
sqlcmd -q "SELECT * FROM AdventureWorks2008R2.Person.Person"
I get this following error, can anyone pleae help on this.
HResult 0x2, Level 16, State 1
Named Pipes Provider: Could not open a connection to SQL Server [2].
Sqlcmd: Error: Microsoft SQL Native Client : An error has occurred while establi
shing a connection to the server. When connecting to SQL Server 2005, this failu
re may be caused by the fact that under the default settings SQL Server does not
allow remote connections..
Sqlcmd: Error: Microsoft SQL Native Client : Login timeout expired.
Supply the server you wish to connect to:
sqlcmd -S <server> -q "SELECT * FROM AdventureWorks2008R2.Person.Person"
For instance if you use SQL Server Express <server> would be .\SQLEXPRESS
For further options of sqlcmd use sqlcmd -?
sqlcmd -S <server> -d <database> -q "query"
this syntax worked perfectly for me...
First connect to SQL Server, as:
C:\>sqlcmd -U sa -P your_password
Then enter queries:
SELECT * FROM AdventureWorks2008R2.Person.Person;
When you want to exit out of sqlcmd, just type:
quit
and enter.
I am running the following command in a batch file:
osql -S dbname -U username -P password -i C:\inputSQL.sql -o C:\postMigration.log -n
The dbname, username, and password have all been set correctly.
However , when I run the batch file I get this output to the "C:\postMigration.log" log
[SQL Native Client]Shared Memory Provider: No process is on the other
end of the pipe.
[SQL Native Client]Communication link failure
My question is: what can cause SQL Server 2005 to throw this error? Is it a login issue?
Thanks!
Looks like you miss -H (host) param. Also note -o would work relative server's disk C: