0%

MySQL基础(四)

本章是整理知识内容,为强化知识长期更新。

练手项目

牛客网

准备一个mysql 5.7的数据库

配置本地数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
➜  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
  • 在将文件导入数据库
1
mysql -uroot -p -t < employees.sql

解决问题

  • employees.sql 修改内容
1
2
3
4
# 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;
  • 注意导入的时候会出现文件打不开的问题
1
2
3
4
5
6
7
8
9
10
11
12
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 命令将文件复制到容器中。在登陆到容器执行导入脚本

1
2
3
4
5
6
// 从宿主机器拷贝到容器中
docker cp ~/Downloads/employees_db laughing_black:/home
// laughing_black 是容器的名称

// 从容器中拷贝会宿主机器中
docker cp laughing_black:/employees_db.sql .