docker mysql 8.0

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

猜你喜欢

转载自www.cnblogs.com/Bob-wei/p/8906026.html