在docker中创建mysql
docker run -p 3306:3306 -v /opt/mysql/conf:/etc/mysql/conf.d -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
然后进入mysql中
docker exec -it mysql /bin/bash
在mysql中链接数据
mysql -u root -p
输入密码,数据库可以链接成功
但是远程请求失败
可能存在的问题
第一种: 在iptables中开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent (--permanent永久生效,没有此参数重启后失效) 提示success,表示设置成功。 查看防火墙状态: systemctl status firewalld //查看防火墙状态 dead(未开启),running(已开启)。 systemctl start firewalled //开启防火墙,成功没任何提示。 systemctl stop firewalled //关闭防火墙。
第二种: 设置mysql远程访问权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION; mysql> flush privileges;
第三种: 修改mysql配置文件中的bind_address
docker exec -it mysql /bin/bash vim /etc/mysql/mysql.conf.d/mysqld.cnf 添加 vi /etc/mysql/mysql.conf.d/mysqld.cnf
保存之后重新启动mysql容器,测试远程连接
宠物免费领养小程序,欢迎来踩