【发布时间】:2020-03-04 09:42:58
【问题描述】:
我无法登录我的 WordPress 网站。网站运行正常,用户凭据正确。
后来我发现users 表不知何故损坏了,现在它被删除了。
您能解释一下如何使用管理员用户登录凭据创建users 表,以便我可以重新登录到我的 WordPress?
我可以访问 phpMyAdmin。
【问题讨论】:
标签: wordpress
我无法登录我的 WordPress 网站。网站运行正常,用户凭据正确。
后来我发现users 表不知何故损坏了,现在它被删除了。
您能解释一下如何使用管理员用户登录凭据创建users 表,以便我可以重新登录到我的 WordPress?
我可以访问 phpMyAdmin。
【问题讨论】:
标签: wordpress
假设您的表名是 wp_users 调整您的前缀。
发件人:wp-admin\includes\schema.php Line 191
CREATE TABLE `wp_users` (
ID bigint(20) unsigned NOT NULL auto_increment,
user_login varchar(60) NOT NULL default '',
user_pass varchar(255) NOT NULL default '',
user_nicename varchar(50) NOT NULL default '',
user_email varchar(100) NOT NULL default '',
user_url varchar(100) NOT NULL default '',
user_registered datetime NOT NULL default '0000-00-00 00:00:00',
user_activation_key varchar(255) NOT NULL default '',
user_status int(11) NOT NULL default '0',
display_name varchar(250) NOT NULL default '',
PRIMARY KEY (ID),
KEY user_login_key (user_login),
KEY user_nicename (user_nicename),
KEY user_email (user_email)
)
您还可以通过 phpMyAdmin 界面添加主键和AUTO_INCREMENT,如下所示:
然后按照以下说明操作:
How to Create a new Admin User for A WordPress Site via MySQL (PHPMyAdmin)?
【讨论】:
wp_users 表。但就像 Gaurav 的解决方案一样,该表并未列在 phpMyAdmin 的左侧栏中。我可以在右侧看到wp_users i.imgur.com/Ze2Vayv.png 在搜索栏中,wp_users 没有显示在结果中 i.imgur.com/7L3yDRl.png 但是当我创建 wp_users 时出现左侧分页。因此,如果我从该列表中选择 2,我会看到 i.imgur.com/X3MkyCd.png 如果我点击 wp_users 表,我会看到用户,但 i.imgur.com/WQbeVhJ.png 我看不到编辑、删除选项。
你可以制作一个小的PHP文件,我们称之为make_user.php,包含以下代码:
<?php
define('ADMIN_USER', 'my_admin_user');
define('ADMIN_MAIL', 'my_admin@mail.com');
require_once('./wp-load.php');
if (! get_user_by('email', ADMIN_MAIL)) {
$passwd = wp_generate_password(20);
$user_id = wp_create_user(ADMIN_USER, $passwd, ADMIN_MAIL);
$user = get_user_by('id', $user_id);
$user->set_role('administrator');
echo "User created.".PHP_EOL;
//echo "Password is: $passwd";
} else {
echo "User already exists.";
}
将您的 ADMIN_USER(帐户名称)和 ADMIN_MAIL 更改为您想要的任何内容。
将其上传到您的 WP 安装的根文件夹并通过 http://your.host/make_user.php 调用它。 您可以决定取消注释回显密码的行并使用它,或者只是通过常规的忘记密码功能重置它(我会做后者)。
完成后删除文件。
【讨论】:
第一步:在wp根目录下创建user_reg.php文件,文件包含以下代码
/*
* Code start
*/
//Create wp_users table
include 'wp-load.php';
global $table_prefix, $wpdb;
$tblname = 'users';
$wp_track_table = $table_prefix . "$tblname ";
if($wpdb->get_var( "show tables like '$wp_track_table'" ) != $wp_track_table) {
$sql = "CREATE TABLE IF NOT EXISTS {$wp_track_table} (
`ID` bigint(20) UNSIGNED NOT NULL,
`user_login` varchar(60) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`user_pass` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`user_nicename` varchar(50) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`user_email` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`user_url` varchar(100) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`user_activation_key` varchar(255) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
`user_status` int(11) NOT NULL DEFAULT '0',
`display_name` varchar(250) COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;";
require_once( ABSPATH . '/wp-admin/includes/upgrade.php' );
dbDelta($sql);
}
//Create user
//start: Fill you details here
$user_login = 'lores';
$user_email = 'lores@gmail.com';
$user_pass = 'lores@123';
$display_name = 'mark lores';
$first_name = 'mark';
$last_name = 'lores';
//end: Fill you details here
$flag_1 = 0;
$flag_2 = 0;
$check_username_exists = username_exists( $user_login );
if ($check_username_exists) {
$flag_1 = 1;
}
$check_email_exists = email_exists($user_email);
if ($check_email_exists) {
$flag_2 = 1;
}
if ($flag_1 == 0 && $flag_2 == 0) {
$userdata = array(
'user_login' => $user_login,
'user_pass' => $user_pass,
'user_email' => $user_email,
'display_name'=> $display_name,
'first_name' => $first_name,
'last_name' => $last_name
);
$user_id = wp_insert_user($userdata);
wp_update_user( array ('ID' => $user_id, 'role' => 'administrator') );
if(is_wp_error($user_id)){
echo $user->get_error_message();
}else{
echo "User created successfully";
}
}else{
echo "User already exist";
}
/*
* Code end
*/
第 2 步:在浏览器上运行文件,例如 http://example.com/user_reg.php
第 3 步:如果用户创建成功,则尝试使用给定的用户名和密码登录
【讨论】:
wp_users 表,我可以看到用户注册成功。但该表并未列在 phpMyAdmin 的左侧栏中。我可以在右侧看到wp_users i.imgur.com/Ze2Vayv.png 在搜索栏中,wp_users 没有显示在结果中 i.imgur.com/7L3yDRl.png 但是当我创建 wp_users 时出现左侧分页。因此,如果我从该列表中选择 2,我会看到 i.imgur.com/X3MkyCd.png 如果我点击 wp_users 表,我会看到用户但 i.imgur.com/WQbeVhJ.png
wp_users。每次我这样做时,都会发生同样的错误。