Docker 安装MySQL

1、下载最新版的mysql镜像

 docker pull mysql:latest

2、启动mysql

 docker run -d --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

如果需要挂载目录

#新建conf 挂载目录
mkdir -p docker_v/mysql/conf

#在conf目录下新建my.cnf
touch my.cnf

#启动mysql
docker run -p 3306:3306 --name mysql -v /opt/docker_v/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql --restart=always

备注

-p 3306:3306:将容器的3306端口映射到主机的3306端口

-v /opt/docker_v/mysql/conf:/etc/mysql/conf.d:将主机/opt/docker_v/mysql/conf目录挂载到容器的/etc/mysql/conf.d

-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码

-d: 后台运行容器

--restart=always 设置容器开机自启

3、进入到数据库命令行模式

mysql -u root -p

4、创建新用户

CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'test';

5、创建数据库

create database test;

处理 navicat 连不上数据库 Host is not allowed to connect to this MySQL server

mysql -u root -p

alter user 'root'@'%' identified by 'password' password expire never;

alter user 'root'@'%' identified with mysql_native_password by 'password';

flush privileges

处理新建用户没权限操作数据库,版本不同,命令不一样,以下为8.0.25版本

1、进入到数据库命令行模式

mysql -u root -p

2、创建用户

create user 'test'@'%' identified by  'password';

3、赋予权限

with grant option这个选项表示该用户可以将自己拥有的权限授权给别人

指定数据库给tes用户授权
grant all privileges on 想授权的数据库.* to 'test'@'%' with grant option;

#给tset用户授予所有数据库权限
grant all privileges on *.* to 'test'@'%' with grant option;

如果权限要分的细一点all 换成 select,delete,update,create,drop,需要什么权限给什么权限

有些版本'%'不包括localhost,要单独对@'localhost'进行赋值

grant select,insert,update,delete on *.* to test@"localhost" Identified by "testpassword";

4、刷新配置

flush privileges;

5、修改mysql root账号密码

update mysql.user set authentication_string='新密码' where user='root';

你可能感兴趣的:(Docker 安装MySQL)