Mysql
mysql
DDL--数据定义语言(create、alter、drop、declare)sql
DML--数据操做语言(select、delete、update、insert)shell
DCL--数据控制语言(grant、revoke、commit、rollback)数据库
添加:INSERT INTO [表名] VALUES('','',......顺序排列的数据);服务器
查询: SELECT * FROM [表名] WHERE ([条件]); ide
创建索引:CREATE INDEX [索引文件名] ON [表名] ([字段名]); 测试
删除:DELETE FROM [表名] WHERE ([条件]); this
修改:UPDATE [表名] SET [修改内容如name = 'Mary'] WHERE [条件]; spa
mysqladmin ----修改密码code
首先用户登录mysql有两种方式,一种是本地登录localhost,另外一种是异地登录。
首次按 在数据库中新增三个用户wjl、jjl和wang 都只有select权限。10.68.4.58--Mysql主机,10.68.4.201--Test机器
mysql> grant select on *.* to jjl@'10.68.4.201' identified by 'jjl'; mysql> grant select on *.* to wjl@localhost identified by 'wjl'; mysql> grant select on *.* to wang@'%' identified by 'wang'; mysql> flush privileges;
每一个帐户赋权状况以下图:
下面实验mysqladmin修改帐号密码:
Mysqladmin是Mysql程序包里的命令,若是你要使用该命令,必须确保服务器上安装了Mysql程序。首先我在10.68.4.58上测试。
[root@localhost data]# mysqladmin -u wjl -h localhost -p password 'public' Enter password: ***=wjl [root@localhost data]# mysqladmin -u wang -h 10.68.4.58 -p password public Enter password: ***=wang [root@localhost data]#
能够看出,wjl和wang都只有select权限,可是均可以正常修改帐号密码。接下来咱们再去4.201上去测试。
[root@localhost bw_mysql_install]# mysqladmin -u jjl -h 10.68.4.58 -p password public Enter password: mysqladmin: Can't turn off logging; error: 'Access denied; you need (at least one of) the SUPER privilege(s) for this operation' [root@localhost bw_mysql_install]# mysqladmin -u wang -h 10.68.4.58 -p password wang Enter password: mysqladmin: Can't turn off logging; error: 'Access denied; you need (at least one of) the SUPER privilege(s) for this operation' [root@localhost bw_mysql_install]#
这里,jjl和wang 都报相同的错误,权限拒绝。都缺乏super权限。通常的只有数据库的超级管理员才有这个权限,此时,若想jjl和wang可以修改帐号密码,那么只须要给他们添加super权限便可。
mysql> grant super,select on *.* to jjl@'10.68.4.201' ; mysql> grant super,select on *.* to wang@'%';
再到10.68.4.201上去执行上面的修改密码语句,就不会报错了。
这里面 wang 帐号比较有意思,我也在找为啥Mysql帐户远程登录,就须要super权限,本地登录就不须要。若是有大神知道这点,麻烦留言交流下,不胜感谢。
其余修改Mysql密码的方法,未完待续。。。
若是Mysql帐号没有All 权限,那么该帐号,set只能修改本身帐号的密码Mysql。
超级管理员则能够修改其余人的密码
mysql> set password for 'wang'@'%' = password ('public'); ERROR 1044 (42000): Access denied for user 'long'@'%' to database 'mysql' 切换到root用户给 wjl用户赋值 mysql> grant all on *.* to 'wang'@'%' ; --root用户登录赋值 mysql> set password for 'jiulong'@'%' = password ('public');--能够执行成功。
若是是grant给用户帐号修改密码。一样set同样,普通用户只能够修改本身的密码,只有拥有ALL权限,才能够修改其余用户。
mysql> grant all on *.* to 'jiulong'@'%' identified by 'wang' ; 执行成功。 mysql> revoke all on *.* from 'jiulong'@'%' ; exit #mysql -ujiulong -h 10.68.4.58 -p wang; mysql> grant usage on *.* to 'wang'@'%' identified by 'wang'; ERROR 1044 (42000): Access denied for user 'long'@'%' to database 'mysql'
这里须要注意下,grant和revoke 帐号权限后,用户须要从新链接Mysql数据库,权限才能生效。