如何通过命令行指定MySQL Workbench数据库连接参数并自动完成连接
结论
MySQL Workbench 官方文档未公开直接传入连接参数的命令行选项,你需要的功能可通过两种方式实现:未公开的隐藏连接URI参数,或者你猜测的动态生成配置文件的方案。
实现方案
方案1:未公开隐藏参数(仅支持8.0及以上版本)
8.0及以上版本的MySQL Workbench实际支持直接传入MySQL连接URI启动并自动完成连接,无需额外配置,命令格式参考如下:
# 通用格式 mysql-workbench "mysql://<用户名>:<密码>@<主机地址>:<端口>/<数据库名>" # 对应你的场景示例,$port为Docker容器绑定的主机端口 mysql-workbench "mysql://db:db@127.0.0.1:$port/db"
注意不同系统的Workbench可执行文件路径有差异:macOS下路径为 /Applications/MySQLWorkbench.app/Contents/MacOS/MySQLWorkbench,Windows默认路径为 C:\Program Files\MySQL\MySQL Workbench 8.0\mysqlworkbench.exe
方案2:动态生成配置文件(全版本兼容,匹配你猜测的实现思路)
该方案完全符合你提到的动态生成文件传入参数的思路,兼容所有MySQL Workbench版本,稳定性更高,适合封装为通用脚本使用:
- 提前准备连接配置XML模板,命名为
wb_conn_template.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?> <data> <value type="object" struct-name="workbench.connections.instance" id="com.mysql.wb.instance.temp_docker_conn"> <value type="string" key="hostIdentifier">Mysql@${host}:${port}</value> <value type="int" key="port">${port}</value> <value type="string" key="host">${host}</value> <value type="string" key="userName">${user}</value> <value type="string" key="password">${password}</value> <value type="string" key="schema">${database}</value> <value type="string" key="name">TempDockerConn_${port}</value> </value> </data>
- 编写脚本动态替换模板变量生成临时配置,再通过
--open参数启动Workbench即可自动连接:
# 示例脚本,可根据Docker容器动态获取port变量 port=3306 host=127.0.0.1 user=db password=db database=db # 替换模板变量生成临时配置文件 sed -e "s/\${host}/$host/" \ -e "s/\${port}/$port/" \ -e "s/\${user}/$user/" \ -e "s/\${password}/$password/" \ -e "s/\${database}/$database/" \ wb_conn_template.xml > /tmp/temp_wb_conn.xml # 启动Workbench加载临时连接 mysql-workbench --open /tmp/temp_wb_conn.xml
内容的提问来源于stack exchange,提问作者Jonas Eberle
相关产品推荐
相关产品推荐

