前言
操作系统是Ubuntu
Mysql版本是5.7
正确步骤
首先将正确的步骤记录下来。
- 首先安装Mysql
sudo apt-get install mysql-server
这样直接安装的就是5.7
版本的mysql。如果需要8版本的,需要更新一下。
- 创建账户
刚开始创建root账户时是没有密码的,至少系统没有自动让我设置密码,因此第一次先无密码登录,直接在shell里输入mysql,回车即可。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456789' WITH GRANT OPTION;
其中root是用户名,%表示可以在任意ip访问mysql服务。*.*表示所有数据库的所有数据表。
123456789是密码。
这样就开启了root用户在所有ip访问的权限。
如果不想使用root用户,可以使用下面的命令:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
在修改权限后,需要使用命令来使配置立即生效。
flush privileges;
之后可以查询已经有的所有的mysql用户。
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
- 配置mysql
一定要记得修改mysql的配置文件
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf +43
找到 “bind-address = 127.0.0.1” , 这一行要注释掉,只需在前面加个#,即 # bind-address = 127.0.0.1,然后,重新启动,命令如下:
/etc/init.d/mysql stop
/etc/init.d/mysql start
- 关闭防火墙
关闭防火墙也至关重要。
在Ubuntu系统中,有iptables和ufw
其中ufw比较简单,有以下命令。
sudo ufw allow 3306
sudo ufw status
这样就开启了3306端口了。
实在不行,可以直接关闭ufw防火墙。
sudo ufw disable
直接关闭后再次使用status命令查看结果,可以发现ufw的状态已经是没有生效的了。这样ufw就不会阻止所有的端口。
关于iptables,我自己个人目前还不是很懂
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 3306 -j ACCEPT
service iptables save
service iptables restart
查看已经开启的端口
iptables -L -n
刚开始我以为是我的iptables没有配置好(其实是mysql没有配置好),就直接卸载了iptables。
apt-get remove iptables
其实这样应该是不太好的,相当于自己的机器没有了保护。
感想
一定要找到好的全的教程!(比如我这篇)
这样就可以少走弯路。