Docker安装Mysql问题与解决方案

简介
  • 两个月前在docker安装的mysql一直没有使用,昨天晚上使用的时候发现命令行查询sql中文会显示乱码,
  • 这是一篇转载排版优化文章
说明
  • 因为在容器里面没有 vi 命令所以我们可以将 数据 和 配置 挂载在宿主机上,方便我们操作

docker安装mysql远程连接乱码问题

一、在tmp下创建文件夹

在 c o n f 文件夹内建立 h m y . c n f 文件 \color{blue}{在conf文件夹内建立hmy.cnf文件} conf文件夹内建立hmy.cnf文件

/usr/local/mysql/data
/usr/local/mysql/conf/hmy.cnf

( l i n u x 中软件应该安装在“ u s r / l o c a l ”文件夹下 ) \color{green}{(linux中软件应该安装在“usr/local”文件夹下)} (linux中软件应该安装在usr/local文件夹下)

二、将下文写入到hmy.cnf文件中
[mysqld] 
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
server-id=1000
[mysql] 
default-character-set = utf8
[mysql.server]
default-character-set = utf8
[mysqld_safe]
default-character-set = utf8
[client]
default-character-set = utf8
三、建立mysql容器
docker run -p 3306:3306 --name mysql \
-v /usr/local/mysql/conf:/etc/mysql/conf.d \
-v /usr/local/mysql/logs:/etc/mysql/logs \
-v /usr/local/mysql/data:/etc/mysql/data \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.28 --lower_case_table_names=1

这一句就是映射配置: -v /usr/local/mysql/conf:/etc/mysql/conf.d
linux下mysql表明默认是区分大小写的,这一句是忽略表名大小写(一定要放在最后面): --lower_case_table_names=1

-e TZ=Asia/Shanghai 这一句是解决时区少8小时问题
(如果你已经执行了容器命令,也可以通过下面方式解决)

docker cp /usr/share/zoneinfo/Asia/Shanghai 容器id:/etc/localtime
docker restart 容器id
最后进入mysql容器输入'date'验证是否修改成功
四、测试

1、进入mysql容器

docker exec -it mysql bash

2、连接mysql

mysql -u root -p

成功 \color{green}{成功} 成功
成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值