由于MySql登录失败,Trac hotcopy备份失败

由于MySql登录失败,Trac hotcopy备份失败,mysql,trac,Mysql,Trac,我正在尝试将trac 1.0实例从一台机器移动到另一台机器。我使用了这里描述的Trac备份和恢复过程,它使用hotcopy命令 然后,我创建了一个新的MySql数据库,为trac分配了一个新用户,分配了适当的权限,然后运行tracadmininitenv命令来创建新的trac环境。我使用tracd部署了它,它似乎工作得很好 当我尝试用hotcopy备份的内容替换此新环境时,当我尝试连接到服务器时,会出现以下错误 我是不是错过了一步?我已经更改了MySql权限,以确保它们与我在数据库字符串中传递

我正在尝试将trac 1.0实例从一台机器移动到另一台机器。我使用了这里描述的Trac备份和恢复过程,它使用hotcopy命令

然后,我创建了一个新的MySql数据库,为trac分配了一个新用户,分配了适当的权限,然后运行tracadmininitenv命令来创建新的trac环境。我使用tracd部署了它,它似乎工作得很好

当我尝试用hotcopy备份的内容替换此新环境时,当我尝试连接到服务器时,会出现以下错误

我是不是错过了一步?我已经更改了MySql权限,以确保它们与我在数据库字符串中传递给trac的密码和用户名匹配。这是否可能是我复制新环境时覆盖的,并且trac使用错误的密码连接到MySql

非常感谢您的帮助

Traceback (most recent call last):
  File "build/bdist.linux-x86_64/egg/trac/web/api.py", line 502, in send_error
    data, 'text/html')
  File "build/bdist.linux-x86_64/egg/trac/web/chrome.py", line 955, in render_template
    message = req.session.pop('chrome.%s.%d' % (type_, i))
  File "build/bdist.linux-x86_64/egg/trac/web/api.py", line 304, in __getattr__
    value = self.callbacks[name](self)
  File "build/bdist.linux-x86_64/egg/trac/web/main.py", line 268, in _get_session
    return Session(self.env, req)
  File "build/bdist.linux-x86_64/egg/trac/web/session.py", line 206, in __init__
    self.get_session(sid)
  File "build/bdist.linux-x86_64/egg/trac/web/session.py", line 229, in get_session
    super(Session, self).get_session(sid, authenticated)
  File "build/bdist.linux-x86_64/egg/trac/web/session.py", line 76, in get_session
    with self.env.db_query as db:
  File "build/bdist.linux-x86_64/egg/trac/db/api.py", line 165, in __enter__
    db = DatabaseManager(self.env).get_connection(readonly=True)
  File "build/bdist.linux-x86_64/egg/trac/db/api.py", line 250, in get_connection
    db = self._cnx_pool.get_cnx(self.timeout or None)
  File "build/bdist.linux-x86_64/egg/trac/db/pool.py", line 213, in get_cnx
    return _backend.get_cnx(self._connector, self._kwargs, timeout)
  File "build/bdist.linux-x86_64/egg/trac/db/pool.py", line 134, in get_cnx
    raise TimeoutError(errmsg)
TimeoutError: Unable to get database connection within 0 seconds. (OperationalError: (1045, "Access denied for user 'trac_user'@'localhost' (using password: YES)"))
我永远也无法让那些“热拷贝”指令发挥作用。它们似乎是用sqlite编写的,而不是MySQL。当我将Trac实例迁移到新服务器时,我必须执行以下操作才能使数据库正常工作:

# On old server
$ mysqldump -u admin -padmin_password trac >backup.sql

# On new server
$ mysql -u admin -padmin_password
mysql> CREATE DATABASE trac DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
mysql> GRANT ALL ON trac.* TO trac_account@localhost IDENTIFIED BY 'topsecret';
mysql> exit
$ mysql -u admin -padmin_password trac <backup.sql
在旧服务器上 $mysqldump-u admin-padmin_password trac>backup.sql #在新服务器上 $mysql-u admin-padmin\u密码 mysql>创建数据库trac默认字符集utf8 COLLATE utf8\u bin; mysql>授予trac上的所有。*给trac_account@localhost由“最高机密”标识; mysql>退出
$mysql-u admin-padmin_password trac
hotcopy
只创建备份,它不会恢复PostgreSQL或mysql上的数据库转储。您应该在归档文件中找到MySQL数据库转储,但我从未在MySQL上确认过这一点。必须手动还原数据库。该命令已被记录为。欢迎添加到MySQL文档中。