mysql {mydbname} --host {server}.mysql.database.azure.com --user {login} --password={password} < ./{localdbbackupfile}.sql
随着托管服务、DevOps和CI/CD工作流程的普及,大多数托管服务提供商希望消除连接字符串正确性方面的人为错误。如果您正在使用Azure、AWS、GCP等服务,通常会有一个页面或终端命令显示这些字符串,以帮助您轻松集成。如果您使用类似的服务,请不要忘记查阅其文档。这些字符串是自动生成的,因此它们很可能是适用于您所使用的数据库版本的“最佳实践”,语法准确无误。
上述命令来自我Azure托管MySQL数据库服务器实例的“连接字符串”部分。
虽然没有明确要求,但需要注意的是,许多服务都会自动生成模板,用于许多常见的连接场景:
{
"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)"
}
}