情况描述:linux 和 windows相互访问对方的MySQL连接不同的一般问题
问题:远程访问失败,连接不上
解决办法:
1、Windows和Linux上都已经安装了MySQL。如果没有,请装好再来,教程移步百度
2、关闭Windows上的防火墙,否则Linux上无法ping同Windows系统,同时关闭Linux的防火墙;
// Linux终端输入:
// 1、先检查防火墙的状态
sudo service ufw status // 能看高 exited 状态,绿色表示防火墙正在运行
// 2、关闭防火墙
sudo service ufw stop // 能看高 dead 状态,绿色表示防火墙正在运行
// 防火墙其他的代码附送
// sudo service ufw restart 重启
// sudo service ufw start 启动
3、保证Linux上的MySQL是处于开启状态的,使用命令:sudo service mysql status,如果能看到running字样的就表示Linux上的MySQL是开启的,否则就使用命令:sudo sudo service mysql start 开启;
4、由于MySQL安装的时候是默认只能访问本地的MySQL,不允许远程网络访问,所以需要修改MySQL的信息:
具体的步骤:
Windows上和Linux都需要进行同样的操作,讲环回地址替换成通配符地址%,下面的mysql的语法是通用的
1)登录MySQL账户,输入:
cmd 回车;
输入:cd C:\Program Files\MySQL\MySQL Server 8.0\bin
输入:mysql -u root -p 回车
输入账户密码
账户密码在安装MySQL是会提示设置的,如果忘记了,就需要修改配置文件,另行百度,这里不展开讲解。
2)、依次输入:
选择使用mysql数据库
use mysql;
查看当前使用的数据库
select database();
查看当前数据库的标有没有user
show tables;
选择user表中的user属性
select host from user where user="root";
可以看到默认的host是本地环回地址127.0.0.1,修改这个地址
使用更新语句updata实现
update user set host="%" where user="root";
说明:%是正则表达式中的通配符,将127.0.0.1替换成%就意味着任意ip都能访问本地的MySQL数据库了
3)、修改配置文件
路径为: /etc/mysql/mysql.conf.d/mysqld.cnf
// 输入指令
// 进入超级权限账户
sudo -s
// 直接编辑该文档
vi /etc/mysql/mysql.conf.d/mysqld.cnf
// 找到bind所在的位置
/bind
键入I,然后输入#将bind语句注释掉
4)重启MySQL
sudo service mysql restart
ok!