MySQL:
一开始用Docker安装的MySQL8,安装完成后MySQL自己能跑起来,root账户可以进去操作,但是局域网电脑用SQLyog和Navicat等工具死活连不上,报错误码2003,然后我误以为是Docker的锅,就删了MySQL8容器,删了Docker在果Ubuntu上装了MySQL8,service mysql status
检查了一下,MySQL已经跑起来了,用root账户也能上,但SQLyog还是连不上,于是在网上兜了一圈,找到了下面的解决办法:
配置文件中绑定了回环地址,所以只能本机访问数据库,别的ip连不上,找到/etc/mysql/mysql.conf.d/mysqld.cnf
(Docker安装的话找对应数据卷位置,我一开始以为Docker的锅把Docker删了直接安装的MySQL,所以配置文件在这)
把bind-address = 127.0.0.1
用#
注释掉。
到这一步之后,再用SQLyog连,还是连不上,这时候报1130错误,还是远程ip连不上,说明2003连不上的问题应该是解决了,下来找1130的解决办法:
思路:在MySQL主机上登录,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,把”localhost”改称'%' ,就是谁也可以连。
mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host' from user where user='root';
第一句:以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,有修改
最后重启Mysql服务,问题解决。
SSH:
Ubuntu16.04虚拟机,用Xshell或secureCRT等工具普通用户能连上,root连不上。
解决办法:
在配置文件 /etc/ssh/sshd_config 中找到
# Authentication:
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes
修改为
# Authentication:
LoginGraceTime 120
PermitRootLogi yes
StrictModes yes
重启下SSH,问题解决。