sudo docker run -p 3306:3306 --name mysql -v /docker-file/mysql/log:/var/log/mysql -v /docker-file/mysql/data:/var/lib/mysql -v /docker-file/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD="密码" -d mysql:5.7
官方的配置文件已经不放在/etc/mysql底下了,所以这底下就两个空文件夹,我的解决方案是先创建一个空的容器实例,
docker run -p 3306:3306 --name sample-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker cp sample-mysql:/etc/mysql/. /docker-file/mysql/conf
docker rm -f sample-mysql
进入容器
docker exec -it 容器id bash
mysql -u root -p
命令:use mysql;
命令:select host,user from user;
命令:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
命令:flush privileges;
把root用户的密码改成 mysql_native_password 模式,即可远程连接
个人建议创建一个账号-admin,用来进行远程访问,root还是不要给远程权限,尤其是生产环境别这么搞;
CREATE USER 'admin'@'%' IDENTIFIED BY '密码';
赋予所有权限给之前创建的账号:admin
GRANT ALL ON . TO 'admin'@'%';
确认使用密码登录此账号{admin}
密码尽量复杂,安全性更高。
ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
刷新权限
FLUSH PRIVILEGES;