docker搭建mysql

shell脚本

/usr/local/docker/mysql/conf/start.sh

#!/bin/bash
cur_dir=`pwd`
docker stop mysql_5_7
docker rm mysql_5_7
docker run -p 3307:3306 --name mysql_5_7 -v /usr/local/docker/mysql/conf:/etc/mysql -v /usr/local/docker/mysql/logs:/var/log/mysql -v /usr/local/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ="Asia/Shanghai" -d mysql:5.7

编码配置

/usr/local/docker/mysql/conf/my.cnf

[mysqld]
character-set-server=utf8mb4

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

远程连接mysql

  • 首先确认是否是用户权限问题导致,如果是则按以下方式修改登录用户权限
docker exec -it mysql_5_7 bash
mysql -uroot -p
use mysql 
grant all privileges on *.* to root@'%' identified by "password";
flush privileges;
  • 如果以上修改后还无法连接,可能是主机路由转发功能未开启
    Linux默认是禁止路由转发功能

路由转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。

vim /etc/sysctl.conf
添加一行配置:net.ipv4.ip_forward=1
service network restart

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容