前言
mysql的安装中有许多需要注意的地方,这里收集一下我的实战经验,因此记录学习。
首先docker和普通的安装MySQL方式和内容是差不多的,只不过需要注意的时安装时端口的占用,防火墙的规则,地址映射,权限有没有分配等。
我的环境:美国nerd的服务器,以安装docker,其他配置都比较低都不阐述了。
首先我们可以进行运行docker,这里没有拉取docker会自动拉取。
docker run -d \
--name mysql_db \
-p 3306:3306 \ # 将宿主机的3306映射到容器的3306,可自行更改
-e MYSQL_ROOT_PASSWORD=your_strong_password \ # 设置root密码
-e MYSQL_DATABASE=your_db \ # 可选:创建初始数据库
mysql:8.0 \
--bind-address=0.0.0.0 # 关键:允许所有IP连接
然后我们进入容器内部进行操作
docker exec -it mysql_db mysql -uroot -p #进入容器并连接mysql
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
#给root用户远程登录权限
FLUSH PRIVILEGES; #刷新权限
注:为了安全起见最好是重新创建一个MySQL用户再给远程权限
最后通过navicat等工具进行连接,基本上不会出现问题
整理思路:不管怎么样,首先本地搭建mysql或者使用docker搭建服务正常启动,端口占用正常后,使用远程软件无法登录mysql的主要原因是root没有给权限。需要配置权限,其次要注意防火墙的问题,在使用docker搭建时最好把配置文件给映射到宿主机上好修改监听网卡和端口。最后还有一种情况是使用国内服务器的用户需要在控制台上修改端口通行才能够访问。

Comments NOTHING