1,出现这个情况,首先检查Ubuntu的防火墙是否关闭,
我安装的ubuntu 16,本身是不带有防火墙的,
2,除了上述情况外,应该是3306的这个端口是否开启,默认是没有开启。
执行命令 netstat -an|grep 3306
此图为开启3306端口的截图,之前显示为. . . 127.0.0.1:3306 . .
3,编辑mysql配置文件,把其中bind-address = 127.0.0.1注释了
vi /etc/mysql/mysql.conf.d/mysqld.cnf
截图最下面一行注销
4,重启动ubuntu
再次查看端口是否打开 netstat -an|grep 3306 ,如下图,表示OK
此时端口3306已经打开
然后可以授权 进入mysql 使用sudo
命令:sudo mysql -u root -p
5,使用root进入mysql命令行,执行如下2个命令,示例中mysql的root账号密码:root
root@ubuntu:~# mysql -uroot -proot
mysql>grant all on *.* to root@'%' identified by 'root' with grand option;
*.*:第一个*代表数据库名;第二个*代表表名。这里的意思是所有数据库里的所有表都授权给用户。root:授予root账号。“%”:表示授 权的用户IP可以指定,这里代表任意的IP地址都能访问MySQL数据库。“password”:分配账号对应的密码,这里密码自己替换成你的 mysql root帐号密码。
mysql>flush privileges;
刷新权限信息,也即是让我们所作的设置马上生效。
6,重启mysql
/etc/init.d/mysql restart