gpt4 book ai didi

mysql - 连接到服务器,然后使用 bash 脚本 strt mysql

转载 作者:太空宇宙 更新时间:2023-11-04 05:15:57 24 4
gpt4 key购买 nike

我一天多次输入相同的命令,因此认为编写一个 shell 脚本来避免重复可能会更好。我还认为这可能是了解更多有关 shell 编码的好方法,因为我通常使用 OOP 语言。

代码应该打开到我的服务器的 ssh 连接,然后启动 mysql 并选择我想要使用的数据库。我正在努力使代码正常工作。我猜这是因为 bash 脚本位于我的本地计算机上,而我需要以某种方式在远程计算机上执行。我找不到任何如何执行此操作的示例。这是我的代码:

#!bin/bash

#Script to automate login to remote server and select specific mysql database

password="myPassword"
username="myUserName"
remoteuser="myUsername@my.se.rv.er.00"
echo "Attempting login to server.."

#attempt ssh connection to remote server...
status=$(ssh -o BatchMode=yes $remoteuser echo ok 2>&1)

#if connection is made...
if [[ $status == ok ]] ; then
echo "connection established"
echo "attempting mysql login..."

#attempt to start mysql and select my database
mysql --user=$username -p$password -Bse"USE mydatabase; show tables;"

elif [[ $status == "Permission denied"* ]] ; then
echo "Permission denied"
else
echo "other_error"
fi

当我运行这个时,我收到错误:错误2002(HY000):无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器

如何修复此代码?我正确地解释了此错误消息:我的脚本无法工作的原因是因为 mysql 命令正在我的机器上而不是服务器上运行?

代码的目的不是启动在我的服务器上运行的脚本,而是创建一个完整的脚本,连接到我的服务器,确认连接,然后将我登录到远程计算机上的 mysql,以便我可以通过自己的终端继续处理它。

最佳答案

您需要在 SSH 命令的上下文中运行这些命令。这可以通过 bash here 文档来完成。参见这里:http://www.tldp.org/LDP/abs/html/here-docs.html

示例:

ssh otherhost << EOF
./someaction.sh 'some params'
EOF

关于mysql - 连接到服务器,然后使用 bash 脚本 strt mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49468313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com