mysql 如何在安装时设置请求跟踪器版本rt5.0.3的数据库?

gg0vcinb  于 5个月前  发布在  Mysql
关注(0)|答案(1)|浏览(61)

在设置rt 5时有一堆鸡毛蒜皮的问题,花一个小时反复推敲,似乎对其他人来说都是有价值的。
具体有两个问题:

  • 要创建的数据库用户不存在,因此无法用于创建其自身或任何数据库
  • 如果您在mysql中手动创建用户(并授予它对rt 5数据库的权限),则它没有创建数据库初始化的ACL部分所需的用户的权限。
  • 您需要使用grant选项向用户授予对mysql.* 的INSERT权限以允许其执行此操作-但这是一个安全漏洞(尤其是如果不删除的话)。
  • /opt/rt 5/etc(缺省安装目录)中不存在用于创建数据库的模式

(note以下所有操作都是以shell中的root用户身份完成的,如果愿意,equiv可以在每个命令前面加上“sudo”)
make initialize-database不工作,因为它读取/opt/rt 5/etc/RT_SiteConfig.pm并找到数据库用户(rt_admin),然后尝试使用其权限执行所有操作(包括创建自身?)
由于make命令只是运行/opt/rt 5/sbin/rt-setup-database --action init,我们可以在自己创建用户和数据库之后,使用选项手动运行该命令:

mysql> create database rt5;
mysql> grant all on rt5.* to 'rt_admin'@'localhost' identified by 'password';
mysql> flush privileges;

字符串
然后:/opt/rt 5/sbin/rt-setup-database --操作acl,核心数据,插入
但这会引发问题:

[24841] [Thu Dec 14 23:58:59 2023] [warning]: DBD::mysql::st execute failed: You are not allowed to create a user with GRANT at /opt/rt5/sbin/../lib/RT/Handle.pm line 475, <STDIN> line 1. (/opt/rt5/sbin/../lib/RT/Handle.pm:475)


这会继续发生其他各种错误。即使使用GRANT privs,我们也会得到:

[25007] [Fri Dec 15 00:10:13 2023] [warning]: DBD::mysql::st execute failed: Access denied for user 'rt_admin'@'localhost' to database 'mysql' at /opt/rt5/sbin/../lib/RT/Handle.pm line 475, <STDIN> line 1. (/opt/rt5/sbin/../lib/RT/Handle.pm:475)


建议rt_admin需要mysql.* 访问权限以及其他超级用户级别选项。

gc0ot86w

gc0ot86w1#

第一个问题的解决方案是从/opt/rt 5/etc目录手动运行rt-setup-database(作为root):
(note:rt-setup-database的手册页在此https://docs.bestpractical.com/rt/5.0.5/rt-setup-database.html

../sbin/rt-setup-database --dba root --action acl,coredata,insert

字符串
如果你使用的是root mysql的密码(默认debian没有),那么在你的命令中添加一个--transmitt-for-dba-password)。
但是,我建议一次执行一个操作,以便在错误发生时捕获错误:

../sbin/rt-setup-database --dba root --action acl
../sbin/rt-setup-database --dba root --action coredata


这应该可以工作,并根据需要创建所有新用户(确保您的rt-admin或RT_SiteConfig.pm中的任何内容作为数据库用户创建)。
第二个问题是,rt-setup-database --action insert 命令没有默认的模式路径。因此必须提供模式的完整路径。
我不明白为什么5.0.3没有一个,我在黑暗中刺入并使用了etc/upgrade/5.0.2(这似乎是由该目录中的'content'代码片段指定的-插入操作将失败,

[critical]: Cannot open initialdata file '/opt/rt5/etc/content' for read:  at /opt/rt5/sbin/../lib/RT/Handle.pm line 872. (/opt/rt5/sbin/../lib/RT.pm:409)


否则。)
解决方案是使用此命令插入(再次从/opt/rt 5/etc目录运行):
../sbin/rt-setup-database --datadir=pwd/upgrade/5.0.2 --dba root --action insert
这解决了我的问题。

相关问题