新安装的数据库只能localhost访问??是不是很苦逼

下面介绍如何允许远程访问root

1.“试一下”能否远程登录

> mysql -u root -p -h 10.0.42.180

答案是否定的。那就开始进行设置吧
2.登录数据库,默认本地访问

> mysql -u root -p

3.切换mysql数据库

mysql> use mysql

4.执行查询,查看数据库当前有访问权限的信息
只有localhost才能访问
5.设置访问权限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

其中"."代表所有资源所有权限, “'root'@%”其中root代表账户名,%代表所有的访问地址,也可以使用一个唯一的地址进行替换,只有一个地址能够访问。如果是某个网段的可以使用地址与%结合的方式,如10.0.42.%。IDENTIFIED BY 'root',这个root是指访问密码。WITH GRANT OPTION允许级联授权。
6.刷新访问权限表

mysql> FLUSH PRIVILEGES;

7.重新查看用户表

mysql> SELECT User, Password, Host FROM user;

8.验证远程访问

> mysql -u root -p -h 10.0.42.180

OK,登录成功

9.我们连接远程服务器的mysql,如果出现问题,很大问题会出在服务器的端口和授权问题

首先我们通过

netstat -an|grep 3306

来查看mysql默认的端口3306是否开启,允许哪个ip使用,如果你发现,前面有127.0.0.1,就说明,3306端口只能本机ip使用

所以,我们需要打开mysql配置文件vi /etc/mysql/mysql.conf.d/mysqld.cnf,将bind-address = 127.0.0.1注销​

进入mysql,对远程用户进行授权,

grant all privileges on *.* to 'root'@'%' identified by 'xxxxxx';

这里的root是你远程登录的用户,xxxxxx是你登录使用的密码,然后可以在mysql数据 表中查看到你这个用户已经被添加到user表中