docker安装mysql
-
拉取mysql5.7镜像
docker pull mysql:5.7
-
创建数据挂载目录
mkdir -p /data/mysql/data /data/mysql/logs /data/mysql/conf
-
创建mysql配置文件
cd /data/mysql/conf touch my.cnf
-
创建mysql容器,并将数据,日志,配置文件映射到服务器上
docker run -p 3306:3306 --name mysql \ -v /data/mysql/conf:/etc/mysql/conf.d \ -v /data/mysql/logs:/logs \ -v /data/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:5.7
-
参数解释
-p:表示端口映射,冒号左面的是我们的宿主机的端口,而右侧则表示的是mysql容器内的端口 --name:是我们给mysql容器取的名字 -v:表示挂载路径,冒号左面的表示我们宿主机的挂载目录,冒号右边则表是的是mysql容器在容器内部的路径, 上面的命令我分别挂载了my.cnf(mysql的配置文件),如需使用配置文件的方式启动mysql,这里则需要加上,mysql的日志,还有mysql存放数据所在的目录 -e 设置参数,这里是设置mysql的root用户密码 -d: 后台运行容器
-
用户授权
先进入容器 docker exec -it 容器名称或者id bash 在进入mysql(回车后输入密码) mysql -uroot -p 授权远程连接的修改数据库的权限 grant all privileges on *.* to '用户名'@'%' with grant option; 这里的用户名是root, grant all privileges on *.* to 'root'@'%' with grant option; 刷新权限 flush privileges; 断开全部的mysql连接,重新连接即可
查看全部用户的权限 select * from mysql.user where user='root' 下面所示的两个root用户 一个是本地连接的root 一个是远程连接的root 默认远程连接的root没得操作数据库的权限
下面就是赋权成功后