在阿里云的ecs上安装了一个mysql,版本是5.7,linu版本是Ubuntu 5.4.0-6ubuntu1~16.04.5
安装后在本地的连接工具死活连不上。分析下原因无外乎以下几种:
- 初始化安装的mysql需要设置user表里的root用户的host,因为他默认是localhost,这个时候你需要在linux命令行进入到mysql,然后执行sql来改变这个值,步骤如下:
执行 mysql mysql -h 127.0.0.1 -P 3306 -uroot -p你的密码 执行use mysql;选择系统数据库,执行update user set host = ‘%’ where user = ‘root’; 修改host为全部
授权主机访问:GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘你的密码’ WITH GRANT OPTION;
执行FLUSH PRIVILEGES; 来刷新权限
然后执行 quit;来退出
- 这个时候你的数据库表的设置已经没问题了,但是你还是远程无法连接,这是为什么呢?这是因为安装的mysql默认是只能在127.0.0.1里使用,所以我们需要改变这个配置,改变方式是把/etc/mysql/mysql.conf.d/mysqld.cnf里的bind-address给注释掉就ok了,然后你重启下mysql ,命令如下:service mysql restart;
- 这个时候你发现你还是无法连接上,是不是很崩溃,你还只是差最后一步,你需要在阿里云的控制台上把3306端口在安全组的配置规则里给开放即可。