Docker安装Mysql
- 从Docker Hub拉取镜像
docker pull mysql
- 运行容器
docker run -p 3306:3306 --name mysql \ -v /usr/local/docker/mysql/data:/var/lib/mysql \ -v /usr/local/docker/mysql/conf/my.cnf:/etc/mysql/conf.d \ -v /usr/local/docker/mysql/logs:/logs \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql \ --lower_case_table_names=1
注: --lower_case_table_names=1
表示表名忽略大小写,如果不加这个,mysql8安装后默认表名区分大小写
容器运行成功
Navicat连接Mysql
使用Navicat连接Mysql,我们会发现连接不上,因为在mysql5.8从开始将caching_sha2_password作为默认的身份验证插件,而在MySQL 5.7中,默认的身份验证插件是 mysql_native_password!这个时候可以修改 user 表中的密码规则,回到mysql5.7的密码验证格式。
root 用户的验证器插件为 caching_sha2_password
修改身份验证类型(修改密码)
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.35 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.40 sec)
刷新权限
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.05 sec)
查看用户的验证器是否修改
连接成功
Docker启动时自动启动容器
在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:
docker run --restart=always
如果已经启动了则可以使用如下命令:
docker update --restart=always <CONTAINER ID>