mysql > grant all on . to ‘user1‘@‘127.0.0.1‘ identified by ‘123456‘; //授权所有的权限给user1用户;.中第一个指库名,比如mysql.;指定来源IP是127.0.0.1,@后面也可以直接写%,表示通配,所有的IP都可以访问;密码是123456,这样就创建了user1用户 mysql > quit #mysql -uuser1 -p123456 //这样登录不进去,因为默认是sock连接,上面授权的是127.0.0.1 #mysql -uuser1 -p123456 -h127.0.0.1 //这时候需要指定-h为127.0.0.1就可以连接了 mysql > quit //退出可以使用quit或者exit或者Ctrl+d 如何授权localhost登录? #mysql -uroot -p123456 //登录root mysql > grant all on . to ‘user1‘@‘localhost‘ identified by ‘123456‘; //授权localhost mysql > quit //有时候打错了直接按分号;就退出来了 #mysql -uuser1 -p123456 //再次验证就可以登录了 mysql > grant SELECT,UPDATE,INSERT on db1. to ‘user2‘@‘192.168.133.1‘ identified by ‘passwd‘; //给user2用户授权对db1库有查询、更新、写的权限 mysql > grant all on db1. to ‘user3‘@‘%‘ identified by ‘passwd‘; //user3用户对db1库有所有权限针对所有的IP mysql > show grants for user1@‘127.0.0.1‘; //用来查看指定用户的授权是什么 mysql > show grants for user2@‘192.168.133.1‘ //查看user2针对192.168.133.1这个IP的授权 如果需要在192.168.133.2上面也登录,和192.158.133.1上面权限、用户名、密码都一样,需要执行下下图方框中的两行命令,修改下IP为192.168.133.2即可
二、常用sql语句
mysql > select count() from mysql.user; //查找这个表的行数,mysql.user是库和表中间有个点.作为分隔符 mysql > select from mysql.db; //表示查看所有的内容 目前常用的两种数据库引擎是myisam 和 innodb 两种,mysql库里面所有的表默认使用的都是myisam引擎,这种引擎的特点是能自动的统计有多少行 上面两个命令select count() 和select 尽量少执行,因为特别耗时和耗费资源 mysql > select db from mysql.db; //查询db字段 mysql > select db,user from mysql.db; //查询db和user两个字段,中间用逗号隔开 mysql > select from mysql.db where host like ‘192.168.%‘; //模糊查询 mysql > select * from mysql.db where host like ‘192.168.%‘\G; //显示的规整一些 mysql > insert into db1.t1 values (1, ‘abc‘); //插入一条数据 mysql > insert into db1.t1 values (1, ‘234‘); //对于字符串的操作尽量加上单引号
mysql > update db1.t1 set name=‘aaa‘ where id=1; //更改id=1的name为aaa mysql > update db1.t1 set id=2 where name=‘aaa‘; //更改name=aaa的id为2 mysql > delte from db1.t1 where id=2; //删除id=2的数据 mysql > truncate db1.t1; //清空一个表,truncate 和 delte、drop的区别是truncate仅清空表里面的内容,表结构还留着,drop的话表内容和表结构都清空了 mysql > drop database db1; //删除db1库 三、mysql数据库备份恢复
#mysqldump -uroot -p123456 mysql > /tmp/mysql.sql //备份mysql库到/tmp目录下 #mysql -uroot -p123456 mysql < /tmp/mysql.sql //恢复mysql库 #mysqldump -uroot -p123456 mysql user > /tmp/user.sql //备份mysql库里面的user表,库名和表面中间使用空格隔开 #mysql -uroot -p123456 mysql < /tmp/user.sql //恢复表不需要写表名,备份用mysqldump,恢复用mysql #mysqldump -uroot -p123456 -A > /tmp/mysql_all.sql //备份所有的库 #less /tmp/mysql_all.sql //备份完可以使用less来查看下备份的内容 #mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql //使用-d选项,只备份表结构