Docker运行MariaDB却显示数据库为空的问题求助
Docker MariaDB远程连接后无表的解决办法
确认当前连接的数据库是否正确
登录数据库后先执行:SELECT DATABASE();检查返回的库名是否和你预期的一致。如果不一致,用
USE your_target_db;切换后再执行SHOW TABLES;。如果库不存在,先执行CREATE DATABASE IF NOT EXISTS your_target_db;再切换。验证容器内数据库本身是否有数据
直接进入容器内部排查:docker exec -it <你的MariaDB容器名> mysql -u <用户名> -p<密码>进入后切换到目标数据库并查看表,如果这里也返回空,说明容器内的数据库本身没有数据,问题不在远程连接。
迁移原有MySQL数据到容器内
如果你的虚拟机MySQL里有数据,需要将其导入Docker的MariaDB:- 从原MySQL导出数据:
mysqldump -h <原MySQLIP> -u <用户名> -p<密码> your_target_db > db_backup.sql - 将备份文件复制到容器内:
docker cp db_backup.sql <你的MariaDB容器名>:/tmp/ - 进入容器导入数据:
docker exec -it <你的MariaDB容器名> mysql -u <用户名> -p<密码> your_target_db < /tmp/db_backup.sql
- 从原MySQL导出数据:
检查用户权限
确保你的数据库用户拥有目标数据库的权限以及远程访问权限:GRANT ALL PRIVILEGES ON your_target_db.* TO '你的用户名'@'%' IDENTIFIED BY '你的密码'; FLUSH PRIVILEGES;其中
%允许所有IP访问,若需限制可替换为你的虚拟机IP。验证容器端口映射
查看容器端口是否正确映射到宿主机:docker ps | grep mariadb确认输出包含
0.0.0.0:3306->3306/tcp类似内容,确保端口无冲突。之后尝试用宿主机IP连接,而非容器IP:mysql -h <宿主机IP> -u <用户名> -p<密码> your_target_db
内容的提问来源于stack exchange,提问作者divyashie
相关产品推荐
相关产品推荐

