Ubuntu 下的 mysql 安装教程很多,但是有不少讲得过于简单,没有考虑到安全问题。比如说,一些教程里,只设置一个 root 用户,并且对外网公开,一来容易被破解密码(用户名固定,破解难度自然降了一大截,而且总有很多用户设置的密码不算复杂),二来,一旦密码被破解,所有使用该数据库的网站都遭殃。
既安全又容易的做法是,安装完 mysql 之后,立马创建小号,给小号只分配特定 db 上的权限。以后,网站连接、自己远程都通过小号进行。
2.1 安装 mysql,一条语句就够了,在伪 GUI 里按照提示设置 root 密码。
- sudo apt - get install mysql - server
2.2 修改 mysql 配置文件,使得 Mysql 监听来自外网的请求。注,只是监听请求,不代表现在任何账号都可以从外网登录,因为不是所有账号都有从外网访问的权限的。
- sudo vim / etc / mysql / my.cnf#注释掉这行:bind - address = 127.0.0.1
2.3 用 root 账号登录 mysql。输入密码,登录成功后,进入 mysql 控制台,在 mysql 控制台下,命令都以 "mysql>" 开头,接下来的步骤都是在 mysql 控制台中进行的。
- mysql - u root - p
2.3 创建小号。例子里,用户名 user1,密码 user1pwd。注意,[] 里的 % 表示,任意 ip 地址的客户端都可以使用 user1 登录。
- mysql > create user 'user1'@'%'identified by 'user1pwd'mysql > flush privileges;#使操作立即生效
2.4 给小号分配权限。注意,[web1_db.*] 表示小号拥有 web1_db 数据库的全部权限。
- mysql > grant all privileges on web1_db. * to 'user1'@'%'identified by 'user1pwd';
- mysql > flush privileges;#使操作立即生效
2.5 最后,重启 mysql,尝试一下用小号远程登录吧~
- sduo service mysql restart
来源: http://www.cnblogs.com/beynol/p/initialize-mysql-in-a-secure-way.html