本文选择安装的mysql版本为5.7 ,安装环境 mac
1、查看镜像是否存在
docker search mysql:5.7
2、拉取镜像
docker pull mysql:5.7
3、运行镜像
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root1234 -d mysql:5.7
--name
:指定容器名称,这里指定的名称为mysql
-e
:指定环境参数,e
是environment
的缩写
-p 3336:3306
:对外映射容器内的端口号
-d
:后台运行
mysql:5.7
:运行5.7这个版本的mysql其他:
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 设置数据库默认编码
ps:推荐将影响容器运行模式的参数放在前面,比如
-d
(detached 模式)和-it
(交互式模式)
docker ps 查看运行的容器
4、执行 sql 命令
- 进入容器内部 docker exec -it mysql bash
指定用户进入:docker exec -it mysql(容器名) mysql -uroot -p
- 创建新数据库 CREATE DATABASE newdatabase;
-
创建一个新用户,并为其指定密码
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'newpassword';
-
使用
GRANT
语句为新用户授权,允许其对新数据库进行操作
GRANT ALL PRIVILEGES ON newdatabase.* TO 'newuser'@'localhost' identified by 'root' ;
这里将授予用户 newuser
对 newdatabase
数据库的所有表的所有权限。根据您的需要,可以授予更具体的权限。
privilegesCode表示授予的权限类型
- all privileges:所有权限。
- select:读取权限。
- delete:删除权限。
- update:更新权限。
- create:创建权限。
- drop:删除数据库、数据表权限。
username@host
表示授予的用户以及允许该用户登录的IP地址。
- localhost:只允许该用户在本地登录,不能远程登录。
- %:允许在除本机之外的任何一台机器远程登录。
- 192.168.xx.xx:具体的IP表示只允许该用户从特定IP登录。
-
权限更改生效 FLUSH PRIVILEGES;
-
退出MySQL:输入
exit
命令退出MySQL命令行界面。
小贴士:
- docker 命令无法执行,首先看下环境变了配置是否正确
export PATH=/Applications/Docker.app/Contents/Resources/bin/:$PATH