Mac 上使用docker 启动mysql服务器实例,并将配置文件挂载到宿主机上
【代码】Mac 上使用docker 启动mysql服务器实例,并将配置文件挂载到宿主机上。
·
Mac 上使用docker 启动mysql服务器实例,并将配置文件挂载到宿主机上
# 创建数据目录
sudo mkdir -p /usr/local/docker/data/mysql/conf
# 创建mysql的日志文件
sudo mkdir /usr/local/docker/data/mysql/logs
# 创建mysql的数据文件
sudo mkdir /usr/local/docker/data/mysql/data
# 创建配置文件
sudo vi /usr/local/docker/data/mysql/conf/my.cnf
# 文件内容,设置数据库分组
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 下载镜像
docker pull mysql:8.0
# 查看镜像
docker images -a
# 运行以下命令创建并启动MySQL容器:
docker run --restart always -p 3306:3306 --name mysql -v /usr/local/docker/data/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/docker/data/mysql/logs:/logs -v /usr/local/docker/data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql:8.0
# 参数解释说明:
–restart always
# 重启docker时自动重启相关容器
-p 3306:3306
# 将容器的3306端口映射到主机的3306端口
–name mysql
# 启动后的容器名称为mysql
-v /usr/local/docker/data/mysql/conf/my.cnf:/etc/mysql/my.cnf
# 将主机/usr/local/docker/data/mysql/conf/my.cnf文件挂载到容器的/etc/mysql/my.cnf(配置文件)
-v /usr/local/docker/data/mysql/logs:/logs
# 将主机/usr/local/docker/data/mysql/logs目录挂载到容器的/logs(日志)
-v /usr/local/docker/data/mysql/data:/var/lib/mysql
# 将主机/usr/local/docker/data/mysql/data目录挂载到容器的/var/lib/mysql(数据文件)
-e MYSQL_ROOT_PASSWORD=123456
# 初始化root用户的密码为123456
-e TZ=Asia/Shanghai
# 指定时区为亚洲-上海
-d mysql:8.0
# 后台运行
# 查看启动的容器
docker ps -a
docker exec -it mysql bash
# 在这里,-it 参数表示要使用交互式终端,mysql-container 是你启动的MySQL容器的名称,-u root 表示使用root用户登录,-p 表示需要输入密码。
# 另外,你也可以使用可视化工具如Navicat或者MySQL Workbench来连接MySQL容器,只需使用以下参数:
使用MySQL客户端工具(如MySQL Workbench或命令行)连接到MySQL容器。将IP地址设置为上一步骤中获取的MySQL容器IP地址,端口设置为3306。使用root用户和上一步骤中设置的密码进行身份验证。
这样就可以访问Docker中的MySQL容器了。请注意,如果已经在主机上安装了MySQL服务器,可能会导致端口冲突。在这种情况下,可以修改 -p 参数中的主机端口,以便将容器的MySQL端口映射到其他端口。
主机:localhost
端口:3306
用户名:root
密码:123456
# 登录mysql,设置mysql数据库的默认字符集为utf8
mysql -uroot -p --default-character-set=utf8
# 设置root用户在任何地方进行远程登录,并具有所有库的任何操作权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
# 刷新权限
FLUSH PRIVILEGES;
# 退出mysql
exit
更多推荐
已为社区贡献1条内容
所有评论(0)