docker安装mysql

  1. 拉取mysql5.7镜像

    docker pull mysql:5.7
    
  2. 创建数据挂载目录

    mkdir -p /data/mysql/data   /data/mysql/logs  /data/mysql/conf
    
  3. 创建mysql配置文件

    cd /data/mysql/conf
    touch my.cnf
    
  4. 创建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
    
  5. 参数解释

    -p:表示端口映射,冒号左面的是我们的宿主机的端口,而右侧则表示的是mysql容器内的端口
    --name:是我们给mysql容器取的名字
    -v:表示挂载路径,冒号左面的表示我们宿主机的挂载目录,冒号右边则表是的是mysql容器在容器内部的路径,
    上面的命令我分别挂载了my.cnf(mysql的配置文件),如需使用配置文件的方式启动mysql,这里则需要加上,mysql的日志,还有mysql存放数据所在的目录
    -e 设置参数,这里是设置mysql的root用户密码
    -d: 后台运行容器
    
  6. 用户授权

    先进入容器
    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没得操作数据库的权限
    

    img

    下面就是赋权成功后
    

    img

Logo

快速构建 Web 应用程序

更多推荐