重置 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