docker下安装MySQL

155 阅读1分钟

安装命令

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;

服务器配置3306的开放端口:允许外网ip访问mysql

image.png