1.创建数据目录及配置
用于将本地目录映射到docker容器
1)创建 /docker/mysql/conf /docker/mysql/data 目录
2)创建my.cnf配置文件
touch /docker/mysql/conf/my.cnf
my.cnf添加如下内容:
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
2.命令及说明
使用该命令在命令行运行(需要有docker运行权限)
权限问题可以参考:https://docs.docker.com/install/linux/docker-ce/centos/
docker run -d -p 3306:3306 --privileged=true -v /docker/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /docker/mysql/data:/var/lib/mysql -e MYSQL_USER="liuy" -e MYSQL_PASSWORD="test" -e MYSQL_ROOT_PASSWORD="root" --name mysql_tls mysql:5.7
-p 3306:3306 将容器的3306端口与本地3306端口映射
-d 后台运行
--privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
-v /docker/mysql/conf/my.cnf:/etc/my.cnf:映射配置文件
-v /docker/mysql/data:/var/lib/mysql:映射数据目录
-e MYSQL_USER="liuy":添加"liuy"用户
-e MYSQL_PASSWORD="test":设置添加的用户密码
-e MYSQL_ROOT_PASSWORD="root":设置root用户密码
--character-set-server=utf8:设置字符集为utf8
--collation-server=utf8_general_cli:设置字符比较规则为utf8_general_cli
3.启动完成之后进入容器
docker exec -it mysql_tls /bin/bash
使用该命令行可以进入终端命令行
4.数据库登录
mysql -uroot -p
5.授权
假设存在数据库 `demo`
将test数据库授权给liuy
grant all privileges on `demo`.* to 'liuy'@'%' identified by 'test';