shell脚本db2用法
时间: 2023-11-14 16:09:17 浏览: 132
根据提供的引用,这个Git存储库中的Dockerfile用于在上构建DB2 Express-C映像。而且,该存储库还包含了一个shell脚本,可以用于在Docker容器中启动DB2 Express-C。因此,您可以使用以下命令来启动DB2 Express-C:
```
docker run -itd --name db2 -p 50000:50000 -e DB2INST1_PASSWORD=<password> -e LICENSE=accept ibmcom/db2express-c:latest db2start
```
其中,`<password>`是您想要设置的DB2实例管理员密码。此命令将在Docker容器中启动DB2 Express-C,并将其绑定到主机的50000端口。您可以使用以下命令来连接到DB2 Express-C实例:
```
docker exec -it db2 bash -c "su - db2inst1; db2 connect to sample"
```
这将在Docker容器中启动一个bash shell,并将其切换到db2inst1用户。然后,它将连接到名为sample的DB2数据库。请注意,您需要将`<password>`替换为您设置的实例管理员密码。
相关问题
写一个shell脚本 脚本输入参数:mysql端口号,mysql密码,mysql所在ip,MySQL的表(多个表逗号间隔),mysql表的列名(多个列逗号间隔) 脚本要求:循环判断mysql是否可登录,当可登录删除mysql表的列,并切换到MySQL用户,重启数据库,并重建这些表
好的,我来为您编写这个脚本。
```bash
#!/bin/bash
# 检查参数是否正确
if [ $# -lt 5 ]; then
echo "Usage: $0 <mysql_port> <mysql_password> <mysql_host> <mysql_tables> <mysql_columns>"
exit 1
fi
# 获取参数
mysql_port=$1
mysql_password=$2
mysql_host=$3
mysql_tables=$4
mysql_columns=$5
# 循环判断mysql是否可登录
while ! mysqladmin ping -h$mysql_host -P$mysql_port -p$mysql_password --silent; do
echo "MySQL is not available, waiting for 5 seconds..."
sleep 5
done
# 删除mysql表的列
mysql -h$mysql_host -P$mysql_port -p$mysql_password << EOF
USE mysql;
ALTER TABLE $mysql_tables DROP COLUMN $mysql_columns;
EOF
# 切换到MySQL用户
sudo -u mysql /etc/init.d/mysql restart
# 重建这些表
mysql -h$mysql_host -P$mysql_port -p$mysql_password << EOF
USE mysql;
DROP TABLE IF EXISTS $mysql_tables;
CREATE TABLE $mysql_tables (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id));
EOF
echo "Done."
```
使用方法:
```bash
./script.sh <mysql_port> <mysql_password> <mysql_host> <mysql_tables> <mysql_columns>
```
其中,`<mysql_tables>` 和 `<mysql_columns>` 都可以使用逗号分隔多个表或列。例如:
```bash
./script.sh 3306 mypassword 127.0.0.1 db1.table1,db2.table2 column1,column2,column3
```
这个脚本会不断地检查 MySQL 是否可登录,如果不可登录,则会等待 5 秒钟后再次尝试。如果 MySQL 可登录,则会删除指定表的指定列,然后切换到 MySQL 用户,重启数据库,最后重新创建指定的表。
阅读全文