Pull library/mysql
$ docker pull mysql
Load image
$ docker load -i mysql.tar
Save image
$ docker save -o ~/Desktop/mysql.tar mysql
run
$ docker volume create --name mysql-data
$ docker run -d -p 3306:3306 -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --restart=always --name=mysql mysql
可以指定-e MYSQL_DATABASE=mytestdb来同时创建数据库。
如果是mysql服务器版本大于8.0.4,默认使用caching_sha2_password授权插件,而不是5.6/5.7使用的mysql_native_password进行身份验证。
下面方法更改root账户的远程登录验证插件为mysql_native_password
$ docker exec -it mysql mysql -uroot -p
输入123456进入mysql提示符
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES;
SELECT User,Host,plugin FROM mysql.user;
$ docker restart mysql
view logs
$ docker logs -f mysql
stop/restart/start
$ docker stop mysql
$ docker restart mysql
$ docker start mysql
管理工具可以用Navicat Premium,数据库服务器用主机ip地址:3306,root密码是MYSQL_ROOT_PASSWORD设置的密码。
导出数据库
docker exec mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > ~/Desktop/all-databases.sql