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/

浙公网安备 33010602011771号