docker安装mysql数据库及简单使用

一、docker环境检查

- 1、检查docker运行环境

bash 复制代码
[root@lyx ~]# docker version
[root@lyx ~]# systemctl status docker

二、部署mysql数据库

  • 1、拉取mysql数据库镜像
bash 复制代码
[root@lyx ~]# docker pull mysql:8.0.36
  • 2、在宿主机创建目录实现数据的持久化
bash 复制代码
[root@lyx ~]# mkdir -pv /root/data/mysql/{conf,data,log}
[root@lyx ~]# tree data
data
└── mysql
    ├── conf
    ├── data
    └── log
  • 3、部署服务
bash 复制代码
[root@lyx ~]# docker run -d --name mysql --restart=always --privileged=true -v /root/mysql/log:/var/log/mysql -v /root/mysql/data:/var/lib/mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /etc/localtime:/etc/localtime:ro -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.36-oracle 
bash 复制代码
命令行参数解释:
-d:后台运行mysql容器
--name mysql:容器的名称是mysql
--restart=always:总是和docker启动
--privileged=true:获取宿主机root权限
-v /root/mysql/log:/var/log/mysql:映射日志目录(宿主机目录:容器目录)
-v /root/mysql/data:/var/lib/mysql:映射数据目录(宿主机目录:容器目录)
-v /root/mysql/conf:/etc/mysql/conf.d:映射配置目录(宿主机目录:容器目录)
-v /etc/localtime:/etc/localtime:ro:容器时间与宿主机时间同步
-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户名密码为123456(自定义)
mysql:8.0.36-oracle:使用的镜像名称

**

  • 4、查看容器的运行状态

**

bash 复制代码
[root@lyx ~]# docker ps -a | grep mysql
0acf0b68336c   mysql:8.0.36-oracle                                           "docker-entrypoint.s..."   21 minutes ago   Up 21 minutes         3306/tcp, 33060/tcp                         mysql

**

**

  • 5、登录数据库

**

**

bash 复制代码
[root@lyx ~]# docker exec -it mysql bash
bash-4.4# mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.36 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

三、数据库简单使用

  • 1、检查当前数据库用户情况
bash 复制代码
mysql> select user,host,authentication_string from mysql.user;
  • 2、创建用户
    2.1、创建本地登录用户
bash 复制代码
mysql> create user lv@'localhost' identified by '123321';
Query OK, 0 rows affected (0.05 sec)

2.2、创建远程登录用户

bash 复制代码
mysql> create user ya@'192.168.16.%' identified by '456654';
Query OK, 0 rows affected (0.01 sec)
  • 3、用户登录
bash 复制代码
bash-4.4# mysql -u lv -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.36 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
  • 4、检查当前登录用户
bash 复制代码
mysql> select user();
+--------------+
| user()       |
+--------------+
| lv@localhost |
+--------------+
1 row in set (0.02 sec)
  • 5、删除用户
bash 复制代码
mysql> drop user ya@'192.168.16.%';
Query OK, 0 rows affected (0.01 sec)
  • 6、给用户授权
bash 复制代码
mysql> grant Alter,Create,Delete,Drop,Insert,Select,Update on mysql.* to lv@'localhost';
Query OK, 0 rows affected, 1 warning (0.08 sec)
  • 7、检查用户权限
bash 复制代码
mysql> show grants for lv@'localhost';
+--------------------------------------------------------------------------------------------+
| Grants for lv@localhost                                                                    |
+--------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `lv`@`localhost`                                                     |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON `mysql`.* TO `lv`@`localhost` |
+--------------------------------------------------------------------------------------------+
2 rows in set (0.01 sec)
  • 8、回收权限
bash 复制代码
mysql> revoke Select on mysql.* from lv@'localhost';
Query OK, 0 rows affected, 1 warning (0.01 sec)
相关推荐
小Pawn爷几秒前
4.镜像仓库
docker
·云扬·6 分钟前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德9 分钟前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫35 分钟前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i43 分钟前
完全卸载MariaDB
数据库·mariadb
纤纡.1 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
jiunian_cn1 小时前
【Redis】渐进式遍历
数据库·redis·缓存
橙露1 小时前
Spring Boot 核心原理:自动配置机制与自定义 Starter 开发
java·数据库·spring boot
冰暮流星1 小时前
sql语言之分组语句group by
java·数据库·sql
符哥20081 小时前
Ubuntu 常用指令集大全(附实操实例)
数据库·ubuntu·postgresql