目 录CONTENT

文章目录

Docker安装mysql-8.x

zhouzz
2024-09-25 / 0 评论 / 0 点赞 / 26 阅读 / 4440 字
温馨提示:
本文最后更新于 2024-09-25,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1.准备

拉取mysql镜像(这里以8.0.20版本为例)

docker pull mysql:8.0.20

2.挂载目录

新建宿主机本地目录:用来挂载MySQL容器所产生的数据的目录

mkdir -p /app/docker/mysql/standalone/{data,logs,conf}

创建mysql配置文件 my.cnf

cd /app/docker/mysql/standalone/conf

vim my.cnf

编辑内容如下:

[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000

[client]
default-character-set=utf8

3.启动容器

启动容器,创建MySQL实例

docker run -d -p 3306:3306 --privileged=true \
-v /app/docker/mysql/standalone/logs:/var/log/mysql \
-v /app/docker/mysql/standalone/data:/var/lib/mysql \
-v /app/docker/mysql/standalone/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456  \
--name mysql \
mysql:8.0.20

参数解释:
\ :这是换行符
-d :后台运行
-p 3306:3306 :设置端口,前面端口是主机端口号,后面是容器端口
--privileged=true : 设置容器的权限。让容器拥有宿主机的root权限
-v /app/docker/mysql/standalone/logs:/var/log/mysql : 容器卷挂载(格式:-v 要挂载的主机路径:要被挂载的容器路径
-e MYSQL_ROOT_PASSWORD=123456 :设置MySQL的root密码,这里我设置的密码是123456
--name mysql :给要创建的容器起个名,不起名的话就会默认生成一个名字,不好记
mysql:8.0.20 :要运行的镜像(可以用镜像名:版本号来指定也可以用镜像id)

注意:虚拟机搭建的系统需要开放端口
开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

4.docker内连接MySQL

4.1 进入mysql容器

docker exec -it mysql /bin/bash

4.2 登录MySQL

mysql -uroot -p

4.3 查询MySQL的字符编码

show variables like 'character%';

4.4 exit退出

exit退出mysql终端,exit退出docker容器

5.mysql创建账号

5.1 创建数据库

mysql> create database zmall;
Query OK, 0 rows affected (0.09 sec)

5.2 创建用户

mysql> create user 'zmall'@'%' identified by '123456';
Query OK, 0 rows affected (0.09 sec)
  • zmall: 用户名;
  • %:host;配置'%',表示所有的IP地址都可以访问; 
  • 123456:密码

5.3 授权用户

mysql> grant all privileges on zmall.* to 'zmall'@'%';
Query OK, 0 rows affected (0.10 sec)

5.4 刷新权限

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

5.5 删除用户

drop user 'zmall'@'%' ;
flush privileges;

5.6 创建用户

create user 'blog'@'%' identified by '123456';
flush privileges;

5.7 申明权限

grant all privileges on blog.* to 'blog'@'%' with grant option;
flush privileges;
# grant select,insert,update,delete on *.* to 'test1'@'localhost';
0

评论区