DbDeployer - MySQL示例-为新数据库(或root用户)赠款

yuvru6vn  于 2023-06-28  发布在  Mysql
关注(0)|答案(1)|浏览(125)

此问题与Dbdeployer有关
相关章节:
用户:
root,默认赠款由所安装的服务器版本提供。
我在port 5730 and port 5731上分别安装了一个示例。(对应于MySQL 5.7.30和5.7.31)。
我可以这样连接:

mysql -u msandbox -p -h 127.0.0.1 -P 5730
mysql -u msandbox -p -h 127.0.0.1 -P 5731
mysql -u mycustomusername -p -h 127.0.0.1 -P 5730

我创建了一个文件,如文章中所示的赠款:
使用选项--post-grants-sql-file加载指令。

> cat << EOF > orchestrator.sql

CREATE DATABASE IF NOT EXISTS orchestrator;
CREATE USER orchestrator IDENTIFIED BY 'msandbox';
GRANT ALL PRIVILEGES ON orchestrator.* TO orchestrator;
GRANT SELECT ON mysql.slave_master_info TO orchestrator;

EOF

$ dbdeployer deploy single 5.7 \
  --post-grants-sql-file=$PWD/orchestrator.sql

这对于SQL脚本(及其赠款)部署的新的空数据库很好,但我现在有一个 * 现有 * 示例,并希望从mysql示例*中创建一个新的数据库。
文章声称root应该是可用的,但是:

mysql -u root -p -h 127.0.0.1 -P 5731
Access denied for user 'root'@'localhost' (using password: YES)
  • 我在3306上安装了本地示例,但这不应该是我需要登录的用户 *。

当我这样做时:

mysql -u root -p -h localhost -P 5731

我可以登录,但是这似乎忽略了端口(当连接为localhost时),因为我看到 * 不同的数据库(端口3306上的数据库,而不是来自5730/5731的数据库)*!
这也证实了我对端口被忽略的怀疑:

SHOW GRANTS FOR mycustomusername;
ERROR 1141 (42000): There is no such grant defined for user 'mycustomusername' on host '%'

SHOW GLOBAL VARIABLES LIKE '%port%';
.... truncated ....
port   | 3306

我需要使用root@host5731root@host5730,但似乎没有办法在这里使用root?
我需要执行以下操作之一:

  • 在这些端口使用root用户,
  • 找到一种方法,让msandboxmycustomusername能够在新数据库上执行GRANT ALL PRIVILEGES

为什么?
我无法删除/重新创建一个新的MySQL示例来添加新的数据库(使用SQL文件方法)--post-grants-sql-file,因为我已经有了现有的数据库。

zd287kbt

zd287kbt1#

安装了Dbdeployer示例和安装程序,并将root的密码配置为与指定的用户名(默认用户名msandbox)相同的密码。

你不能这样做(尽管github repo上的一些答案声称你可以)

dbdeployer deploy single 5.7.31 -u root -p somepassword

相反,发生的事情(并且没有在任何容易访问的地方明确提到)是您可以执行以下操作:

dbdeployer deploy single 5.7.31 -u someuser -p somepassword

然后,Dbdeployer安装程序部署此someuserANDroot,使其具有相同的密码(somepassword)。

更多信息:

我发现我可以这样做:

cd /var/dbdeployer/instance/location/of/mysql.5.7.31/
./use -u root
  • (此处不指定密码。)* 检查./use脚本,它会从您的配置中获取密码(这是someuser的密码。

这使我们能够通过root登录以更改赠款:

mysql -u root -p -h 127.0.0.1 -P 5731

我已经从内部更改了密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password';

这可以防止您在外部使用./use -u root,因为密码现在与其他用户不同。

相关问题