目录
- 1. 非root用户设置docker权限
- 2. user账号安装mysql
- 2. root账号打开防火墙
- 3. 启动mysql容器
- 3.1 在指定工作目录下建立文件夹
- 3.2 配置文件
- 3.3 开启mysql容器
- 4. 进入容器
- 4.1 通过容器进入mysql
- 4.1 设置账号
- 4.2 建立数据库
- 4.3 导入文件
- 5. windows连接数据库
- 参考文件
1. 非root用户设置docker权限
# 1.使用root权限给user账户开权限
# (1)创建名为docker的一个用户组
sudo groupadd docker
# 查看docker组的用户
cat /etc/group|grep docker
# (2)非root用户加入刚创建用户组
sudo usermod -aG docker $USER
其中,usermod是一个Linux系统命令,用于修改用户的属性和组关联;-aG是usermod命令的选项,其中-a表示追加(Append),-G表示指定用户所属的附加组;docker是要将用户添加到的用户组的名称;$USER是一个环境变量,表示当前用户的用户名。
或用:
sudo gpasswd -a ithing docker
# (3)切换当前会话的有效组
newgrp docker
# (4) 重启docker服务
systemctl restart docker
# 2.使用user账户测试是否可用
docker run hello-world
2. user账号安装mysql
# 安装docker
docker pull mysql:8.0.28
# 查看镜像中是否存在
docker images
2. root账号打开防火墙
# 查看防火墙
systemctl status firewalld
# 查看3306端口状态
firewall-cmd --zone=public --query-port=3306/tcp
# 如果是no,表示关闭,打开3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 防火墙重载
firewall-cmd --reload
# 再次查看3306状态(yes)
firewall-cmd --zone=public --query-port=3306/tcp
3. 启动mysql容器
3.1 在指定工作目录下建立文件夹
mkdir -p mydata/mysql/log mydata/mysql/data mydata/mysql/conf mydata/mysql/database_input_file_dir
3.2 配置文件
新建mydata/mysql/conf/my.cnf文件,我是从参考文件中摘取的,具体含义请导参考文件3中细读。
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
init_connect="SET collation_connection = utf8mb4_unicode_ci"
init_connect="SET NAMES utf8mb4"
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
3.3 开启mysql容器
docker run -p 3306:3306 --name mysql \
--privileged=true \
-v /user_mount/user_mount/Pipeline/mydata/mysql/log:/var/log/mysql \
-v /user_mount/user_mount/Pipeline/mydata/mysql/data:/var/lib/mysql \
-v /user_mount/user_mount/Pipeline/mydata/mysql/conf:/etc/mysql \
-v /user_mount/user_mount/Pipeline/mydata/mysql/database_input_file_dir:/var/lib/mysql-files \
-v /etc/localtime:/etc/localtime \
--restart=always -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.28
4. 进入容器
# 查看Docker运行中的容器是否有mysql
docker ps
# 常用命令,对现在的image进行停止、删除
docker stop fa0dc115171d
docker rm fa0dc115171d
4.1 通过容器进入mysql
# 进入Mysql容器内部
docker exec -it mysql /bin/bash
# 进入mysql服务
root@aa22e995c23c:/# mysql -u root -p
4.1 设置账号
见参考文件5
4.2 建立数据库
见参考文件5
4.3 导入文件
实际文件目录:/disk_win/user/Database/mysql/database_input_file_dir
sql语句中目录:/var/lib/mysql-files
原因是在3.3中进行了镜像路径设置;
具体示例:
load data infile '/var/lib/mysql-files/a.csv'
into table a character set utf8
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\n' IGNORE 1 LINES;
5. windows连接数据库
见参考文件5
参考文件
(1) docker权限设置:让非root用户可以操作docker–》附带:linux新增用户添加root权限
(2) Docker 安装 Mysql 容器 (完整详细版)
(3) Docker实操:安装MySQL5.7详解(保姆级教程)
(4) docker安装mysql 8.0.20 版本 超详细教程
(5) Linux中mysql的安装、远程访问、基础操作、文件导入