mysql6:
#使用这种方式,数据会存储到容器内部
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v $PWD/conf:/etc/mysql/conf.d -v $PWD/data:/var/lib/mysql -v $PWD/logs:/logs --name test_mysql mysql:5.6
mysql8:
#使用这种方式,数据会存储到容器外部
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /opt/mysql/conf:/etc/mysql/conf.d -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/logs:/logs --name mysql_8_002 yuexing89575/mysql8:002
以上mysql已经配置了远程访问, 不用额外配置.
下面命令可不执行:
进入容器
docker exec -it 20a04a44b734 /bin/bash
键入命令
mysql -uroot -p
回车后提示你输入密码 , mysql的提示符是:
mysql>
mysql8修改:
Client does not support authentication protocol requested by server;
mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,
use mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges;
修改远程访问
# 数据库改为mysql
use mysql;
#所有的用户都是只能本机访问,我们需要把需要远程访问的用户的host改成%,于是我们执行以下语句:
update user set host='%' where user='root';
#修改好host之后,我们要让它立即生效,还要执行这样一个语句:
flush hosts;
修改远程访问
配置Mysql远程访问 - ymworkroom - 博客园
docker安装mysql