基于linux系统的安装,可以允许安全安装脚本来设定安全设置。
mysql_secure_installation.sh,主要的作用是设定root帐户的密码和删除匿名帐户。运行该脚本,mysqld必须处于运行状态。最终只有一个root帐户,并且只能通过localhost进行访问。可以添加其他的账户。
l 设置root帐户的密码
l 只允许localhost使用root账户登陆
l 删除匿名帐户
l 删除test数据库
不要手动的去修改mysql中的user表中的数据,使用命令管理命令去修改表中的数据。
修改MySQL的root用户的密码方式:(注意不是系统的root用户)
使用set password语句
使用root用户登录到MySQL,然后用set password 为user表中的每个root用户设定密码,注意密码要用PASSWORD()来进行加密。
Set password for ‘root’@’localhost’ = password(‘new-password’); set password for ‘root’@’%’= password(‘new-password’); |
update statement
在使用SQL的DML语句进行更新密码是,一定要使用password函数进行加密
Update user set password=password(‘newpwd’) where user=’root’; Flush privileges; 如果不使用FLUSH PRIVILEGES,只能在下次启动系统时,update的作用才会体现出来。 |
mysqladmin command-line client program
Shell>mysqladmin –u root password “newpwd”; Shell>mysqladmin –u root –h hostname password “newpwd” 注意:’root’@’127.0.0.1’不能使用mysqladmin来设定密码,用前两种方式 |
给匿名【Anonymous】用户设定密码
什么是匿名用户,就是在mysql.user中user为空,但host不为空的那些用户,也就是linux上存在的任何一个用户。
用mysql的用户root登录,执行以下的命令: 方法1) Mysql>set password for ‘’@’localhost’=password(‘newpwd’); Mysql>set password for ‘’@’%‘ = password(‘newpwd’); 方法2 Mysql>update user set password=password(‘newpwd’) where user=’’; Mysql>flush privileges; |
删除用户
Mysql> drop user ‘’@’localhost’; Mysql> drop user ‘’@’%’; Mysql> drop user ‘username’@’hostname’; |
控制数据库的安全,比如test数据库
主要是通过修改mysql.db来达到控制数据库的安全设定的。
Delete from db where db=’test\_%’;
Flush privileges;
添加数据库的用户
有两种方式来添加数据库的用户。
用create user 或者 grant 语句。
直接使用insert,update,delete语句操作mysql.user表
Mysql> create user ‘cmwin’@’%’ identified by ‘cmwin’; Mysql> grant all privileges on *.* to ‘cmwin’@’%’ with grant option;或者 Mysql> grant select,insert,update,delete,create,drop on test.* to ‘cmwin’@’%’; Show grants for ‘cmwin’@’localhost’; |