mysql -uroot -p grant all on *.* to 'user1'@'127.0.0.1' identified by '1234a'; //第一个*为库,第二个*为表 quit mysql -uuser1 -p1234a -h127.0.0.1 [ctrl-d] mysql -uroot p grant all on *.* to 'user1' identified by '1234a'; exit mysql -uuser1 -p1234a -h试试看 还能够: grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.83.1' identified by 'passwd'; grant all on db1.* to 'user3'@'%' identified by 'passwd'; show grants; 查看当前用户权限 show grants for user1@127.0.0.1; show grants for user2@192.168.83.1; 两行能够用于迁移用户IP,两行改IP执行下,原密码会保留
假设你想管理下用户,只记得某个库里的某个表管理用户的登陆,你须要这么作:html
[root@ax-01 ~]# mysql -uroot -p Enter password: mysql> show databases; //查全部库的名字 +--------------------+ | Database | +--------------------+ | information_schema | | cmsdb | | discuz | | mysql | //你看到mysql库,想起来就这个库里,可是不知道该查那一个表 | performance_schema | | test | | wpdb | +--------------------+ mysql> use mysql; //选择mysql库 mysql> show tables; //查mysql里面的全部表 | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | //你看到user表,想起来应该在这里,可是不知道查那个字段 +---------------------------+ mysql> desc user; //查看全部user下的字段名(表头) +------------------------+-----------------------------------+------+-----+-----------------------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------------+-----------------------------------+------+-----+-----------------------+-------+ | Host | char(60) | NO | PRI | | | | User | char(16) | NO | PRI | | | | Password | char(41) | NO | | | | 看到这里你感受须要了解user,host,password这三个字段,由于登录的时候要用到 mysql> select user,host,password from mysql.user; //查看这三个字段的内容 +------------+-----------+-------------------------------------------+ | user | host | password | +------------+-----------+-------------------------------------------+ | root | localhost | *8E1A3402D66F8DDD8D9D19596B706C6D238C0F34 | | root | ax-01 | | | root | 127.0.0.1 | | | root | ::1 | | | | localhost | | | | ax-01 | | | wpuser | 127.0.0.1 | *E4D18EEE7AEB0071BDB1D931CD44AA9AE0D05293 | | discuzuser | 127.0.0.1 | *F47A72DB156C9E3F76410F41AC68CE966ACD6BDA | | cmsuser | 127.0.0.1 | *A9A4F564B109C6ECCF5EC6E2EB11DBD8925FEEDF | +------------+-----------+-------------------------------------------+ 看到这里,你发任意用户(空用户名)不须要密码就能够登陆。显然不行,须要删掉。 删东西前要养成备份的好习惯 [root@ax-01 ~]# mysqldump -uroot -paxianglinux mysql user > /tmp/user.sql mysql> delete from mysql.user where password=''; //删掉 mysql> select user,host,password from mysql.user; //再看 +------------+-----------+-------------------------------------------+ | user | host | password | +------------+-----------+-------------------------------------------+ | root | localhost | *8E1A3402D66F8DDD8D9D19596B706C6D238C0F34 | | wpuser | 127.0.0.1 | *E4D18EEE7AEB0071BDB1D931CD44AA9AE0D05293 | | discuzuser | 127.0.0.1 | *F47A72DB156C9E3F76410F41AC68CE966ACD6BDA | | cmsuser | 127.0.0.1 | *A9A4F564B109C6ECCF5EC6E2EB11DBD8925FEEDF | +------------+-----------+-------------------------------------------+ mysql> flush privileges; mysql> quit;
开发,DBA须要深刻掌握,可是做为系统管理员,基本的得会!mysql
select 查linux
select count(*) from mysql.user; 查mysql库的user表有多少行 select * from mysql.db; 查mysql.db全部内容 select db from mysql.db; 查mysql.db的db字段 select db,user from mysql.db; 查看mysql.db的多个字段 select * from mysql.db where host like '192.168.%'; 模糊查询
insert 插入sql
insert into db1.t1 values (1, 'abc'); 插入数据 desc db1.t1查看表字段结构,明确插入字符格式
update 修改数据库
update db1.t1 set name='aaa' where id=1;
删除,当心用centos
delete from db1.t1 where id=1 //删除id表头字段下,=1的行 truncate table db1.t1; //清空表内容,字段表头保留 drop table db1.t1; //删除表 drop database db1; //删除库
备份库 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql 恢复库 mysql -uroot -p123456 mysql < /tmp/mysql.sql 备份表 mysqldump -uroot -p123456 mysql user > /tmp/user.sql 恢复表 mysql -uroot -p123456 mysql < /tmp/user.sql 备份全部库 mysqldump -uroot -p -A >/tmp/123.sql 只备份表结构 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql