Mysql 8.0之后,默认的加密规则使用的是 caching_sha2_password,发生了变化,导致docker安装完数据库后navicat连接报错,
网上可以通过docker exec -it 进入mysql容器后进行更改,
mysql -u root -p进入mysql
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';//password更改成自己的密码
flush privileges;
发现还有一种方式更简单,创建的时候直接指定:
docker run -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=smartcity -p 3307:3306 --name mysql2 -d
mysql --default-authentication-plugin=mysql_native_password
docker 创建的mysql可以创建新的用户
docker exec -it mysql2 /bin/bash
mysql -u root -p 123456
CREATE USER 'smartcity'@'%' IDENTIFIED BY 'smartcity'; //第一个smartcity是用户名,第二个是密码
GRANT ALL PRIVILEGES ON smartcity.* TO 'schwarzeni'@'localhost'; //这里的smartcity是创建的数据库名
FLUSH PRIVILEGES;
网友评论