本章是整理知识内容,为强化知识长期更新。
练手项目
牛客网
准备一个mysql 5.7的数据库
配置本地数据库
https://launchpad.net/test-db/employees-db-1/1.0.6 下载文件 employees_db-full-1.0.6.tar.bz2
解压文件
➜ employees_db tree
.
├── Changelog
├── README
├── employees.sql
├── employees_partitioned.sql
├── employees_partitioned2.sql
├── employees_partitioned3.sql
├── load_departments.dump
├── load_dept_emp.dump
├── load_dept_manager.dump
├── load_employees.dump
├── load_salaries.dump
├── load_titles.dump
├── objects.sql
├── test_employees_md5.sql
└── test_employees_sha.sql
- 在将文件导入数据库
mysql -uroot -p -t < employees.sql
解决问题
- employees.sql 修改内容
# 38行 set storage_engine = InnoDB; 替换
set default_storage_engine = InnoDB;
# 44行 select CONCAT('storage engine: ', @@storage_engine) as INFO; 替换
select CONCAT('storage engine: ', @@default_storage_engine) as INFO;
- 注意导入的时候会出现文件打不开的问题
SELECT 'LOADING departments' as 'INFO';
source /home/employees_db/load_departments.dump ;
SELECT 'LOADING employees' as 'INFO';
source /home/employees_db/load_employees.dump ;
SELECT 'LOADING dept_emp' as 'INFO';
source /home/employees_db/load_dept_emp.dump ;
SELECT 'LOADING dept_manager' as 'INFO';
source /home/employees_db/load_dept_manager.dump ;
SELECT 'LOADING titles' as 'INFO';
source /home/employees_db/load_titles.dump ;
SELECT 'LOADING salaries' as 'INFO';
source /home/employees_db/load_salaries.dump ;
这里要将文件正确的路径写进去。
如果是本地的docker环境部署mysql,可以使用docker cp 命令将文件复制到容器中。在登陆到容器执行导入脚本
// 从宿主机器拷贝到容器中
docker cp ~/Downloads/employees_db laughing_black:/home
// laughing_black 是容器的名称
// 从容器中拷贝会宿主机器中
docker cp laughing_black:/employees_db.sql .