尝试过好多网上的版本,但是始终在最后一步连接数据库上失败 。
这次总算好了,来一次我自己的安装教程吧。
我选择的是这个版本,一直有更新。
然后启动-高级设置
端口和存储设置的设置
其中存储设置的文件/文件夹路径可以自己定义, 挂载路径不要换
然后打开PHPmyadmin 新建账户 lsky
然后安装,访问到 http://你的ip:1080。如果没问题到这一步就结束了。
如果出现类似SQL连接错误
SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE'
SQLSTATE[HY000] [1045] Access denied for 'root'@'localhost' (using password: YES) (SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE').
可能是这是有问题,docker容器连接不上数据库
需要打开xshell 连接上
输入
ifconfig
把数据库连接地址 127.0.0.1 修改成查询到的 172.17.0.1
如果不出意外就安装完成了 ,接着用群晖的反向代理服务器去设置外网访问。
控制面板 - 应用程序门户 - 反向代理服务器
感谢作者
在docker容器里localhost并不是指宿主机的localhost
由此原因,并不能在容器中通过localhost:3306访问到宿主机的mysql
docker在运行时就建立了虚拟网卡,并命名为docker0
我们可以在宿主机上运行ifconfig看到它,这就是宿主机建立的网桥,用于与各个容器之间通信
宿主机在与容器同一局域网的IP地址一般是docker0对应的IP地址段的首个地址(如172.0.17.1)
我们可以在容器里通过172.0.17.1:3306访问到宿主机的mysql服务器
mysql服务器默认的设置为允许127.0.0.1段的ip地址访问
所以此时用172.0.17.1:3306仍然无法访问到宿主机
此时需要在设置一下mysql
mysql>GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>flush privileges;
// 其中各字符的含义:
// . 对任意数据库任意表有效
// "root" "123456" 是数据库用户名和密码
// '%' 允许访问数据库的IP地址,%意思是任意IP,也可以指定IP
// flush privileges 刷新权限信息
作者:Exqlnet
链接:https://www.jianshu.com/p/3e1fd311ba87
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。