【全栈开发指南】Mysql8 开启远程登录(docker-compose安装 )

  为了安全考虑MySQL默认不开启远程登录。在生产环境中,MySQL通常只需要在本地主机上运行,而不需要允许远程主机连接。如果启用了远程登录,则存在潜在的安全风险。黑客或恶意用户可以利用未经授权的登录尝试来访问数据库,从而威胁数据的安全性。因此,为了保护MySQL服务器免受未经授权的访问和攻击,MySQL默认不允许远程登录,需要用户手动进行配置和授权。

一、登录并配置mysql

  1. 登录容器
docker exec -it 53e85183fdc0 /bin/bash
  1. 编辑文件
vim   /etc/mysql/conf.d/docker.cnf
  1. 增加 skip-grant-tables
skip-grant-tables
  1. 重启容器
docker-compose -f docker-compose.yml restart
  1. mysql8新增用户,已不支持GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’
create user 'admin'@'%' identified by '数据库密码';

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';

flush privileges;

ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '数据库密码';

flush privileges;

二、解决group by问题

java.sql.SQLSyntaxErrorException: Expression #14 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'yxkt.provinceDistrict.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
  1. 修改mysql配置文件 /etc/mysql/conf.d/my.cnf
vim  /etc/mysql/conf.d/my.cnf
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  1. 重启mysql
 docker restart [mysql容器名称或ID]
  开启MySQL远程访问前,需要注意以下几点:
  1. 确认MySQL已经正确安装和配置,且能够正常运行。

  2. 确认MySQL所在的主机已经开放了MySQL的端口号,一般默认是3306端口。

  3. 配置MySQL的远程登录用户,需要创建一个允许远程访问MySQL的用户,并且为该用户授权相应的数据库访问权限。

  4. 防火墙设置,需要开启服务器3306端口防火墙规则。

  5. 修改MySQL配置文件my.cnf,找到bind-address选项,将其设置为0.0.0.0或者注释掉该选项。

  6. 确认远程主机的IP地址和MySQL服务器能够互相连通。

  7. 确认远程主机的MySQL客户端已经正确安装,并且能够正确连接MySQL服务器。

  8. 防止被攻击,建议只允许指定IP地址访问MySQL。

  以上是开启MySQL远程访问的注意事项。在修改MySQL配置文件时,务必谨慎操作,一旦配置不正确,将会导致MySQL的无法启动或者无法正常工作,造成数据丢失或损坏,请务必备份好数据后再进行操作。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值