此问题与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@host5731
和root@host5730
,但似乎没有办法在这里使用root?
我需要执行以下操作之一:
- 在这些端口使用
root
用户, - 找到一种方法,让
msandbox
或mycustomusername
能够在新数据库上执行GRANT ALL PRIVILEGES
。
为什么?
我无法删除/重新创建一个新的MySQL示例来添加新的数据库(使用SQL文件方法)--post-grants-sql-file
,因为我已经有了现有的数据库。
1条答案
按热度按时间zd287kbt1#
安装了Dbdeployer示例和安装程序,并将
root
的密码配置为与指定的用户名(默认用户名msandbox
)相同的密码。你不能这样做(尽管github repo上的一些答案声称你可以)
相反,发生的事情(并且没有在任何容易访问的地方明确提到)是您可以执行以下操作:
然后,Dbdeployer安装程序部署此
someuser
ANDroot
,使其具有相同的密码(somepassword
)。更多信息:
我发现我可以这样做:
./use
脚本,它会从您的配置中获取密码(这是someuser
的密码。这使我们能够通过
root
登录以更改赠款:我已经从内部更改了密码:
这可以防止您在外部使用
./use -u root
,因为密码现在与其他用户不同。