docker 安装 MySQL

一、下载 MySQL 镜像

查看可用版本

docker search mysql

拉取最新版本

docker pull mysql:latest

查看本地镜像

docker images

二、配置宿主机映射文件

创建映射⽬录

mkdir -p /usr/local/src/mysql/config

创建映射配置⽂件

vim /usr/local/src/mysql/config/my.cnf

写⼊配置

复制代码
[client]
default-character-set=utf8mb4

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure_file_priv=/var/lib/mysql
innodb_buffer_pool_size=2G
innodb_buffer_pool_instances=4
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

# Custom config should go here
!includedir /etc/mysql/conf.d/
复制代码

三、创建并启动容器

创建容器

复制代码
docker run \
--restart=always \
--privileged=true \
-p 3306:3306 --name mysql80 \
-v /usr/local/src/mysql/log:/var/log/mysql \
-v /usr/local/src/mysql/data:/var/lib/mysql \
-v /usr/local/src/mysql/config/my.cnf:/etc/mysql/my.cnf \
-v /usr/local/src/mysql/conf.d:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql
复制代码

查看容器

[root@VM-0-3-centos config]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS         PORTS                                                  NAMES
d158d568e2a4   mysql     "docker-entrypoint.s…"   10 seconds ago   Up 9 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql80

进⼊容器

docker exec -it mysql80 bash

四、配置 MySQL 远程访问

登录MySQL

mysql -uroot -p

切换数据库

use mysql;

查看⽤户、主机、密码

root ⽤户默认为 localhost 访问,以下是已经开启远程 Host 为 %

复制代码
mysql> select User, Host, authentication_string from mysql.user;
+------------------+-----------+------------------------------------------------------------------------+
| User             | Host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| root             | %         | $A$005$19o;AA3#vd|Xc1ExqQevtOff1Kw3qqT97yjkNvijyeH2AcjU5f9LPL9IB |
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | $A$005$L!LFTZ%UN{M    GvPw4kJm7er9QuQkf4Y/XCMh0G92eF/nqcc0mXOXCwbadB |
+------------------+-----------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)
复制代码

开启远程 root ⽤户

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

刷新

flush privileges;
posted @   维维尼~  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示