docker运行mysql8.0.28
1、获取镜像
docker pull mysql:8.0.28
2、在获取镜像的时候先创建好准备挂载数据的目录
data 目录是数据存放的地址,
mkdir /home/data/mysql/data
mkdir /home/data/mysql/log
3、运行mysql镜像
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /home/data/mysql/data:/var/lib/mysql -v /home/data/mysq/log:/var/log/mysql --restart=always -d mysql:8.0.28 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --datadir=/var/lib/mysql --default-authentication-plugin=mysql_native_password
4、进入mysql容器
执行一下命令
docker exec -it mysql /bin/sh
输入 mysql -uroot -p 命令后 会提示输入密码,这里的密码就是启动时指定的123456
5、登录mysql
mysql -uroot -p
6、修改登录密码
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
7、执行第6个是会遇到以下错误
7.1 错误原因
遇到一下服务的原因是因为mysql自带的user表中root用户可以访问的host为localhost
8、 解决错误Operation ALTER USER failed for ‘root‘@‘%‘
8.1登录mysql
如果已经是mysql的链接状态请忽略此步骤
mysql -u root -p
8.2 看当前所有数据库:
show databases;
8.3、进入mysql数据库:
use mysql;
8.4、查看mysql数据库中所有的表:
show tables;
8.5、查看user表中的数据:
select Host, User from user;
8.6、修改user表中的Host
update user set Host='%' where User='root';
说明: % 代表任意的客户端,可替换成具体IP地址。
8.7、刷新一下
flush privileges;
8.8、修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';