Docker部署MySQL8

1.Windows 下docker部署mysql8

1.1前提条件

docker 已安装

目录:D:\Program Files\MySQL8\config\conf.d,D:\Program Files\MySQL8\data 已创建

1.2部署安装命令

docker pull mysql:8
docker run --name mysql8 --restart=always -p 3308:3306 -v "/D/Program Files/MySQL8/config/conf.d":/etc/mysql/conf.d -v "/D/Program Files/MySQL8/data":/var/lib/mysql -e TZ="Asia/Shanghai" -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8
启动过程中docker可能会提示share D盘,记得同意一下

账号:root

密码:123456

端口号:3308

配置存放位置:D:\Program Files\MySQL8\config\conf.d

数据存放位置:D:\Program Files\MySQL8\data

1.3远程登录

root账户默认开启了远程登录,容器创建好后马上连接会报错

稍等一会,初始化以后再连接就可以了

 

 

以上mysql8的部署就完成了 

 

2.Linux 下docker部署mysql8

Linux下面部署修改一下映射目录就可以了,注意映射目录一定要提前创建好,并开放读写权限,如果嫌麻烦就直接给777

mkdir /home/mysql/config/conf.d
mkdir /home/mysql/data
chmod -R 777 /home/mysql/config/conf.d
chmod -R 777 /home/mysql/data
docker run --name mysql8 --restart=always -p 3308:3306 -v /home/mysql/config/conf.d:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e TZ="Asia/Shanghai" -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8
或者
docker run \
--name mysql8 \ 
--restart=always \
-p 3308:3306 \
-v /home/mysql/config/conf.d:/etc/mysql/conf.d \
-v /home/mysql/data:/var/lib/mysql \
-e TZ="Asia/Shanghai" \
-e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:8

以上mysql8的部署就完成了 

 

3.参数说明

docker run 
--name mysql8 //容器名 
--restart=always // 自动重启
-p 3308:3306 // 端口映射 
-v "/D/Program Files/MySQL8/config/conf.d":/etc/mysql/conf.d // 配置文件
-v "/D/Program Files/MySQL8/data":/var/lib/mysql // 数据位置 
-e TZ="Asia/Shanghai" // 时区
-e MYSQL_ROOT_PASSWORD=123456 // 密码 -d mysql:8 // 后台启动

具体以官方为准:https://hub.docker.com/_/mysql/

 

4.容器内部情况

docker exec -it mysql8 bash

root@5a0866b3cd6c:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.21 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

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> select user,host,authentication_string from mysql.user;
+------------------+-----------+------------------------------------------------------------------------+
| user | host | authentication_string |
+------------------+-----------+------------------------------------------------------------------------+
| root | % | $A$005$]IxU╔CC]"(O║?:0GRzOfwdm8DrdMoIE1zhGYKGYLx6ca1OlGS4WthWQ5i8 |
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
%N7gD"
( 8~%uGfp.1DxAnbwUoirKA/xoseEUThbvN9RM6MLUan7Eh/ |
+------------------+-----------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

mysql> exit
Bye

 

root@5a0866b3cd6c:/# cat /etc/mysql/my.cnf
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

#
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL

# Custom config should go here
!includedir /etc/mysql/conf.d/
root@5a0866b3cd6c:/# exit
exit

 

 

 

 

 

 

 

 

 

可以看出root用户默认是已经开启了远程登录,数据文件放在容器的/var/lib/mysql目录,配置文件和nginx差不多都是引入目录下的配置,对应容器目录/etc/mysql/conf.d/

 

参考文档:

MySQL镜像官方地址

Docker 部署 Mysql8.0

posted @ 2020-09-26 21:36  天附近  阅读(554)  评论(0)    收藏  举报