我知道可以在系统级别配置 MySQL/MariaDB 以使用自定义路径而不是/var/lib/mysql
。这需要重新启动服务。
有没有办法只针对给定的数据目录运行一次性 sql 命令?我的用例是一个 shell 脚本,它在创建 Docker 容器之前初始化并设置目录,并将该目录绑定到容器的 MySQL 数据目录。我不希望这需要更改系统上运行的任何内容。
答案1
我认为您无法在运行时切换数据目录。对此深表抱歉。
您可以在命令行上使用另一个 tcp 端口启动另一个 mysqld,同时将另一个数据目录交给它:
mysqld --port 3307 --socket=/var/run/mysqld/temp-mysqld.sock --datadir /tmp/mysql-data
然后连接到该 mysqld 并在那里运行您的查询:
mysql --port 3307 --socket=/var/run/mysqld/temp-mysqld.sock