登陆数据库
mysql -uroot -p*** -h127.0.0.1 #指定host,用户名和密码是必须的
mysql -h 172.16.16.45 -P 3306 -u root -p123 #指定要访问的数据库的IP和端口,如果是本机可以是localhost和127.0.0.1。
mysql -h localhost -u root -p #隐藏密码输入
修改密码(root登陆)
grant all on *.* to 'test_1'@'localhost' identified by '123456'; 修改test_1密码,测试有效
SET PASSWORD FOR 'test_1'@'localhost' = PASSWORD('123456789'); 修改密码命令2,测试有效
alter user 'test_1'@'localhost' identified by '123456'; 修改密码命令3,测试有效
授权
普通用户授权
grant select, insert, update, delete on testdb.* to common_user@’%’ 查询、插入、更新、删除 数据库中所有表数据的权利
某些高权限授权
grant create on testdb.* to developer@‘192.168.0.%’; 创建数据表结构权限
grant alter on testdb.* to developer@‘192.168.0.%’; 修改数据表结构权限(可删除列,增加列,重命名列,修改字段类型,修改表名,索引)
grant drop on testdb.* to developer@‘192.168.0.%’; 删除数据表结构权限
数据库里的操作
show datatbases; 显示库
use database; 使用一个库
show tables; 显示所有表
desc test; 查询表的字段信息,了解后可以读取想要的信息
select * from user; 读取所有表的内容,*可改成某些字段,逗号分隔
create table test(id int,name varchar(20)); 创建一个表
insert into test value(3,‘tany’); 往表内插入信息
update test set name=‘jing’ where id=3; 修改信息
delete from test where id = 3; 删除一行
drop table test; 删除表
用户情况查询
show grants for ‘zab’@‘127.0.0.1’; 查看一个用户的权限
show grants; 查看当前用户权限;
select Host,User from user; 查看mysql数据库的user表,显示了用户名和用户应连接的Host
用户操作
drop user ‘yangxin’@‘localhost’; 删除用户
rename user ‘test3’@’%’ to ‘test1’@’%’; 修改帐户和host
grant all on blog.* to ‘blog’@‘127.0.0.1’ identified by ‘password’ #命令可新建用户和设置密码,修改密码也可以;
mysql容易混淆的信息
- root@localhost的密码是最要紧的,比root@127.0.0.1更重要;
- root@127.0.0.1的密码跟root@localhost是一样的,修改密码要修改localhost的密码,修改后127.0.0.1的密码跟着变;修改127.0.0.1的密码,不生效;
- 新建用户@127.0.0.1可能更方便,字符式localhost做接口(使用的socket), 可能也会产生一些问题;
- grant user@127.0.0.1 是授权user从本机127.0.0.1访问数据库,同样代表访问目标是127.0.0.1;
-
改成grant user@192.168.87.141,就是授权user从141的机器上访问数据库;
-
mysql -uuser -h192.168.87.133 是以user帐号访问133机器上的mysql,此时对于目标数据库来源是 本机IP(假设是192.168.87.141),要使用上面的语句在133数据库上授权,grant user@192.168.87.141; 这样才对应得上;
-
grant user@localhost 是授权user从本机的socket访问数据库,同样代表访问目标是socket;另外socket只能本机使用;
- grant user1@127.0.0.1 登陆是不能使用mysql -uuser1 直接登陆,因为这样登陆目的地是socket, 入口也要是socket, 但是user1没有被授权socket的登陆权限;
- grant user2@localhost 登陆是不能使用mysql -uuser2 -h127.0.0.1, 因为这样登陆目的地是IP, 入口也要是IP,但是user2没有被授权IP的登陆权限;
https://www.jb51.net/article/141702.htm