重置 MySQL root 密码并初始化 DataX-Web 数据库

安装 DataX-Web 时,如果 MySQL root 密码不正确,初始化数据库会失败。本文记录一次完整处理流程:先重置 MySQL root 密码,再创建并导入 DataX-Web 初始化数据库,最后启动 DataX-Web 服务。

安全提醒:本文中的 <新Root密码> 请替换为你自己的强密码。不要把真实数据库密码提交到代码仓库或发布到公开博客。

一、问题原因

安装 DataX-Web 时,输入 MySQL 密码失败:

ERROR 1045 (28000): Access denied for user 'root'@'localhost'

这通常说明当前输入的 MySQL root 密码不正确。

如果随后执行过:

systemctl stop mysqld

再连接 MySQL 时可能会出现:

ERROR 2002 (HY000): Can't connect to local MySQL server

这个错误表示 MySQL 服务已经停止,并不是密码问题。

另外,还需要确认 root 账号对应的 Host。当前环境中查到的账号是:

root | %

因此重置密码时不能修改:

'root'@'localhost'

而应该修改:

'root'@'%'

二、重置 MySQL root 密码

先停止 MySQL:

systemctl stop mysqld

设置 MySQL 跳过权限表启动:

systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"

启动 MySQL:

systemctl start mysqld

免密进入 MySQL:

mysql -uroot

进入 mysql> 后,先确认 root 用户的 Host:

SELECT User,Host,plugin FROM mysql.user WHERE User='root';

如果查询结果是:

root | %

则执行:

FLUSH PRIVILEGES;
ALTER USER 'root'@'%' IDENTIFIED BY '<新Root密码>';
FLUSH PRIVILEGES;
exit;

三、恢复 MySQL 正常启动

退出 MySQL 后执行:

systemctl stop mysqld
systemctl unset-environment MYSQLD_OPTS
systemctl start mysqld

测试新密码是否生效:

mysql -uroot -p

输入 <新Root密码> 后,如果能进入 mysql>,说明密码修改成功。

四、创建 DataX-Web 数据库

进入 MySQL:

mysql -uroot -p

输入密码后执行:

CREATE DATABASE IF NOT EXISTS datax_web DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
exit;

五、导入 DataX-Web 初始化 SQL

执行:

mysql -uroot -p datax_web < /usr/local/datax-web/bin/db/datax_web.sql

提示输入密码时,输入 <新Root密码>

六、启动 DataX-Web

进入 DataX-Web 目录:

cd /usr/local/datax-web

启动服务:

./bin/start-all.sh

查看 Java 进程:

jps

或者查看端口:

netstat -lntp | grep java

如果系统没有 netstat,可以使用:

ss -lntp | grep java

七、访问后台

DataX-Web 默认访问地址一般是:

http://服务器IP:9527

服务器IP 替换为你的实际服务器地址,例如:

192.168.x.x

浏览器访问:

http://服务器IP:9527

默认账号密码通常是:

admin
123456

登录后建议及时修改默认密码。

最终命令汇总

先以跳过权限表的方式启动 MySQL:

systemctl stop mysqld
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"
systemctl start mysqld
mysql -uroot

进入 MySQL 后执行:

FLUSH PRIVILEGES;
ALTER USER 'root'@'%' IDENTIFIED BY '<新Root密码>';
FLUSH PRIVILEGES;
exit;

恢复 MySQL 正常启动:

systemctl stop mysqld
systemctl unset-environment MYSQLD_OPTS
systemctl start mysqld

创建数据库:

mysql -uroot -p

进入 MySQL 后执行:

CREATE DATABASE IF NOT EXISTS datax_web DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
exit;

导入初始化 SQL:

mysql -uroot -p datax_web < /usr/local/datax-web/bin/db/datax_web.sql

启动 DataX-Web:

cd /usr/local/datax-web
./bin/start-all.sh