目录
建库
create database name; 创建数据库
drop database name; 直接删除数据库,不提醒
mysqladmin drop databasename; 删除数据库前,有提示。
mysql>show databases; 显示所有数据库
用户
新建用户
格式:create user "username"@"host" identified by "password";
1.mysql->create user 'test'@'localhost' identified by '123';
2.mysql->create user 'test'@'192.168.7.22' identified by '123';
3.mysql->create user 'test'@'%' identified by '123';
说明:host="localhost"为本地登录用户,host="ip"为ip地址登录,host="%"所有用户
删除用户
drop user 'username'@'host';
查看现有用户:
mysql> select host,user,authentication_string from mysql.user;
mysql>describe user; 显示表mysql数据库中user表的列信息;
修改密码:
shell>mysql -u root -p
mysql> update user set password=password(123456) where user=’root’;
mysql> flush privileges //刷新数据库
授权
格式:grant privileges on databasename.tablename to 'username'@'host' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
(1)GRANT命令说明:
priveleges(权限列表),可以是all priveleges, 表示所有权限,也可以是select, insert, update, delete, create,drop等权限,多个权限的名词,相互之间用逗号分开。
on用来指定权限针对哪些库和表。
*.* 中前面的*号用来指定数据库名,后面的*号用来指定表名。
to 'username'@'host' :@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方。注意:这里%有的版本不包括本地,这个和版本有关系,遇到这个问题再加一个localhost的用户就可以了。
identified by指定用户的登录密码,该项可以省略。
WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。
(2)删除授权:
mysql> revoke all privileges on *.* from root@”%”;
mysql> delete from user where user=”root” and host=”%”;
mysql> flush privileges;
2.授权原则说明:
a、只授予能满足需要的最小权限,防止用户干坏事。比如用户只是需要查询,那就只给select权限就可以了,不要给用户赋予update、insert或者delete权限。
b、创建用户的时候限制用户的登录主机,一般是限制成指定IP或者内网IP段。
c、初始化数据库的时候删除没有密码的用户。安装完数据库的时候会自动创建一些用户,这些用户默认没有密码。
d、为每个用户设置满足密码复杂度的密码。
e、定期清理不需要的用户。回收权限或者删除用户。
其它
shell>mysql -u root -p
mysql>use databasename; 选择数据库
mysql>describe tablename; 表的详细描述
mysql>select version(),current_date; 显示当前mysql版本和当前日期
mysql>show databases; 显示所有数据库
mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后
mysql>alter table t1 rename t2; 重命名表
mysqldump
备份数据库
shell> mysqldump -h host -u root -p dbname > dbname_backup.sql
恢复数据库
shell> mysqladmin -h myhost -u root -p create dbname
shell> mysqldump -h host -u root -p dbname < dbname_backup.sql
如果只想卸出建表指令,则命令如下:
shell> mysqladmin -u root -p -d databasename > a.sql
如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下:
shell> mysqladmin -u root -p -t databasename > a.sql
那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢?
mysqldump -T./ phptest driver
其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。如果不指定driver 表,则将卸出整个数据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。
问题
(1) unable to load authentication plugin 'caching_sha2_password'
处理:alter user 'mytest'@'%' identified with mysql_native_password by 'mytest';
来源:CSDN
作者:weett
链接:https://blog.csdn.net/weett/article/details/103683609