Discuz! 论坛迁移后数据库错误

部分用户在虚拟主机间迁移 Discuz! 论坛系统时遇到问题。在简单地复制、粘贴文件之后,访问论坛首页和 Ucenter 会出现如下错误:

UCenter info: MySQL Query Error 
SQL:SELECT value FROM [Table]vars WHERE name='noteexists2′ 
Error:SELECT command denied to user ‘数据库‘@'IP地址' for table ‘pre_ucenter_vars' 
Errno:1142

这个问题出现的原因,是迁移之后没有正确配置数据库信息。

解决方案

需要在3个配置文件中修改数据库信息:

在本文中,标注有星号的地方是您需要留意修改的。星号之前是示例内容,请根据实际填写。

1、Discuz 论坛配置

位置在 网站目录/config/config_global.php

// ----------------------------  CONFIG DB  ----------------------------- //
$_config['db'][1]['dbhost'] = '127.0.0.1***数据库地址,一般为127本地***';
$_config['db'][1]['dbuser'] = 'runyun***数据库用户名***';
$_config['db'][1]['dbpw'] = '114514***数据库密码***';
$_config['db'][1]['dbcharset'] = 'utf8mb4';
$_config['db'][1]['pconnect'] = 0;
$_config['db'][1]['dbname'] = 'runyundiscuz***数据库名***';
$_config['db'][1]['tablepre'] = 'discuz_***数据表前缀,带下划线***';
$_config['db']['slave'] = '';
$_config['db']['common']['slave_except_table'] = '';
$_config['db']['common']['engine'] = 'innodb';

2、Discuz Ucenter 配置

位置在 网站目录/config/config_ucenter.php

define('UC_DBHOST', '127.0.0.1***数据库地址,一般为127本地***');
define('UC_DBUSER', 'runyun***数据库用户名***');
define('UC_DBPW', '114514***数据库密码***');
define('UC_DBNAME', 'runyundiscuz***数据库名***');
define('UC_DBCHARSET', 'utf8mb4');
define('UC_DBTABLEPRE', '`runyundiscuz***数据库名***`.discuz_ucenter_***数据表前缀,带下划线和ucenter***');
define('UC_DBCONNECT', 0);

请额外留意:UC_DBTABLEPRE 要同时修改数据库名和数据表前缀,例如下面这样。

define('UC_DBTABLEPRE', '`runyundiscuz`.discuz_ucenter_');

3、Ucenter Server 配置

位置在 网站目录/uc_server/data/config.inc.php

define('UC_DBHOST', '127.0.0.1***数据库地址,一般为127本地***');
define('UC_DBUSER', 'runyun***数据库用户名***');
define('UC_DBPW', '114514***数据库密码***');
define('UC_DBNAME', 'runyundiscuz***数据库名***');
define('UC_DBCHARSET', 'utf8mb4');
define('UC_DBTABLEPRE', 'discuz_ucenter_***数据表前缀,带下划线和ucenter***');

完成上述三个文件的修改后,即可完成迁移。

0 0 投票数
文章评分
0 评论
内联反馈
查看所有评论
0
本文贡献者正期待您发表意见x
滚动至顶部