安装命令
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
说明:
-p 3306:3306 #将容器的3306 端口映射到主机的 3306 端口
-v $PWD/conf:/etc/mysql/conf.d
#将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf
-v $PWD/logs:/logs #将主机当前目录下的 logs 目录挂载到容器的 /logs
-v $PWD/data:/var/lib/mysql #将主机当前目录下的data目录挂载到容器的 /var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456 #初始化 root 用户的密码
由于mysql的安全策略,现在还不能使用root/123456来访问数据库,通过docker ps -a常看mysql容器id,进入容器:
docker exec -it 62349aa31687 /bin/bash
登录mysql
mysql -uroot -p123456
建立用户并授权(密码改为root)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'root' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root' WITH GRANT OPTION;
给root用户分配远程权限
GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;
刷新
FLUSH PRIVILEGES;