SQLyog连接不上mysql的原因:
1、windows与ubuntu系统ping不通
2、root的host未改成%,%代表可以远程连接
3、端口3306未打开
解决办法:
1、ping不通,首先去查虚拟网卡的配置,一般来说点击虚拟机的编辑->虚拟网络编辑器->还原默认设置就可以解决问题,如果不能解决,建议百度。(ping通之后才能进行mysql的连接)
2、如果可以ping通,我们先要进入mysql数据库进行update操作。由于mysql数据库的特性,在安装的时候不再提示你设置密码,而是内置了账号和密码,所以我们需要先进行密码的修改。我们在终端中输入sudo cat /etc/mysql/debian.cnf,他会跳出下面的内容
mysql -u debian-sys-maint -p进行debian-sys-maint用户的登录操作,将上面的password复制粘贴一下,就可以进入数据库了
update user set authentication_string=' ' where user='root';
--将字段置为空
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
--将root的密码设置为123456(密码可以自行修改)
成功之后,我们输入quit退出数据库,然后进行mysql的重启
service mysql restart
重启之后我们可以重新登录一下数据库
mysql -u root -p
密码输入自己设置的密码就可以了
这样就登录成功了。(以上是mysql修改密码的操作)
下面进行修改root的host的操作
我们在数据里输入use mysql
select host,user from user;
update user set host=’%’ where user=‘root’;进行修改,修改之后,我们输入 quit 退出数据库,重新启动数据库服务service mysql restart
3、进行3306的端口开放
我们在终端中输入netstat -an | grep 3306
如果你的tcp6的3306端口前面显示的是127.0.0.1, 那么我们需要进行端口的开放
cd /etc/mysql/mysql.conf.d使用命令进入到mysql.conf.d文件夹中,然后输入sudo vim mysqld.cnf(如下图)
我们只要找到bind-address = 127.0.0.1,在前面加上一个#就可以了(如下图)
Esc,shift+:输入wq,退出保存。
最后我们在终端里面输入/etc/init.d/mysql restart,就大功告成了。
下面我们就可以通过可爱的小海豚SQLyog进行远程连接
选择文件->新连接->新建,我的SQL主机地址输入你的ubuntu的ip地址就可以了,ubuntu的ip地址获取方法:在终端输入ifconfig,密码输入你设置的密码
如果我们进入这个界面就ok了