Docker安装mysql

  1. docker pull mysql:5.7:从Docker Hub上拉取MySQL 5.7的镜像。
  2. docker images:列出所有已下载的镜像,确认MySQL 5.7是否已经成功下载。
  3. mkdir -p /home/service/mysql/data:创建一个用于存放MySQL数据的目录。
  4. mkdir -p /home/service/mysql/conf:创建一个用于存放MySQL配置文件的目录。
  5. cd /home/service/mysql/conf:切换到MySQL配置文件目录。

         6.touch my.cnf 

[mysqld]
user=mysql                                                                       
character-set-server=utf8
default_authentication_plugin=mysql_native_password
default-time_zone = '+8:00'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

  1. [mysqld]:这个部分包含了MySQL服务器的配置。

    • user=mysql:指定了MySQL服务的运行用户为mysql。
    • character-set-server=utf8:设置了MySQL服务器默认的字符集为utf8。
    • default_authentication_plugin=mysql_native_password:指定了MySQL服务器默认的认证插件为mysql_native_password。
    • default-time_zone = '+8:00':设置了默认的时区为东八区(GMT+8)。
  2. [client]:这个部分包含了客户端的配置。

    • default-character-set=utf8:设置了客户端默认的字符集为utf8。
  3. [mysql]:这个部分包含了MySQL客户端程序的配置。default-character-set=utf8:设置了MySQL客户端程序默认的字符集为utf8。

         docker run -p 3306:3306 --name mysql -v /home/service/mysql/logs:/logs -v /home/service/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=Wing1Q2W#E -d mysql:5.7

这个命令运行了一个 MySQL 5.7 容器,并且:

  • -p 3306:3306:将容器内的 MySQL 服务端口映射到主机的端口 3306,这样可以从主机访问 MySQL 服务。
  • --name mysql:给容器取了一个名字叫做 "mysql",以便于后续管理和操作。
  • -v /home/service/mysql/logs:/logs:将主机上的 /home/service/mysql/logs 目录挂载到容器内的 /logs 目录,可能用于 MySQL 的日志记录。
  • -v /home/service/mysql/data:/mysql_data:将主机上的 /home/service/mysql/data 目录挂载到容器内的 /mysql_data 目录,用于持久化 MySQL 的数据。
  • -e MYSQL_ROOT_PASSWORD=Wing1Q2W#E:设置了 MySQL 的 root 用户的密码为 "*****"。这个环境变量会被容器内的 MySQL 镜像使用,用来设置 MySQL 数据库的 root 用户的密码。
  • -d:让容器在后台以守护进程方式运行,即使当前终端退出也不会停止容器运行。

       docker exec -it mysql bash   这个命令尝试在名为 "mysql" 的容器中执行一个交互式的 Bash shell。这个命令的含义是:

  • docker exec:在运行的容器中执行命令。
  • -it:指定交互式终端(interactive TTY),使得我们可以与 Bash shell 进行交互。
  • mysql:要执行命令的容器的名称或者ID。
  • bash:要执行的命令,这里是启动 Bash shell。

通过这个命令,你可以在 MySQL 容器中进入一个交互式的 Bash shell,从而进行一些诊断、配置或者其他操作。

       CREATE USER 'admin'@'%' IDENTIFIED BY '******';

       GRANT ALL ON *.* TO 'admin'@'%';

       flush privileges; 

这些 MySQL 命令用于创建一个名为 "admin" 的用户,允许从任何主机('%')连接,并且授予该用户对所有数据库的所有权限。下面是每个命令的解释:

  1. CREATE USER 'admin'@'%' IDENTIFIED BY 'Wing1Q2W#E';:创建一个名为 "admin" 的用户,并指定该用户可以从任何主机('%')连接,密码为 'Wing1Q2W#E'。

  2. GRANT ALL ON *.* TO 'admin'@'%';:授予用户 "admin" 对所有数据库('.')的所有权限。这包括对所有数据库的所有表进行 SELECT、INSERT、UPDATE、DELETE 等操作的权限。

  3. flush privileges;:刷新权限,使新的权限设置立即生效。

执行这些命令后,用户 "admin" 将拥有对 MySQL 服务器上的所有数据库的完全访问权限。

        

          docker ps 查看启动状态

 

 

posted @ 2024-05-06 16:36  大黄喵吖  阅读(53)  评论(0编辑  收藏  举报