100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > linux里docker镜像mysql运行sql脚本时出现Failed to open file ‘/home/mydatabase.sql‘ error: 2的解决

linux里docker镜像mysql运行sql脚本时出现Failed to open file ‘/home/mydatabase.sql‘ error: 2的解决

时间:2023-02-08 02:35:29

相关推荐

linux里docker镜像mysql运行sql脚本时出现Failed to open file ‘/home/mydatabase.sql‘  error: 2的解决

linux里docker镜像mysql运行sql脚本时出现Failed to open file ‘/home/mydatabase.sql’, error: 2的解决

此文章的前提是已经把sql文件复制到docker里了

今天在用CentOS7里在docker启动MySQL运行sql脚本文件时出错,错误信息如下:

mysql> source /home/mydatabase.sql;ERROR: Failed to open file '/home/mydatabase.sql', error: 2

上网查了下,错误原因应该是路径匹配的问题,默认路径是MySQL的安装路径下,所以MySQL只能访问到它源目录下的所有目录和文件,解决方式是在登录时直接指定要运行的sql脚本文件,具体步骤如下:

先登录一下MySQL,创建好要用到的数据库,我创建的数据库名称是mydatabase1

root@4994c041aa3a: mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 7Server version: 5.7.36 MySQL Community Server (GPL)Copyright (c) 2000, , Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database mydatabase1;

退出MySQL,用运行sql脚本文件的方式重新登录

# 这里的mydatabase1就是第一步创建好的数据库,'<'后面的文件就是要运行的sql脚本文件路径root@4994c041aa3a: mysql -uroot -p mydatabase1 < /home/mydatabase.sql

重新登录进去后发现文件已运行成功

root@4994c041aa3a: mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 7Server version: 5.7.36 MySQL Community Server (GPL)Copyright (c) 2000, , Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || mydatabase1 || sys|+--------------------+5 rows in set (0.00 sec)mysql> use mydatabase1;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+-----------------------------+| Tables_in_mydatabase1 |+-----------------------------+| t_disk || t_crl || t_menu || t_user |+-----------------------------+4 rows in set (0.00 sec)

补充:

# CentOS7下docker启动MySQL命令docker pull mysql:5.7docker run -tid --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7docker exec -it mysql /bin/bashmysql -uroot -pEnter password:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。