MYSQL安装和配置
解压到路径不带中文的目录下
设置环境变量
将bin文件夹添加到环境变量中
以管理员方式打开cmd或者powershell
输入mysqld命令
再输入mysqld –install mysql8.0,因为我的是mysql-8.0.25-winx64,所以是mysql8.0,需要根据你们情况修改
再输入net start mysql8.0
MYSQL初始化:mysqld –initialize –console,初始化会产生一个随机密码,需要记住
登录MYSQL:mysql -u root -p,输入刚刚随机产生的密码
修改密码:alter user ‘root’@’localhost’ identified by ‘root’; 然后root账户的密码就是root了
连接MYSQL数据库
# mysql -h主机地址 -u用户名 -p密码
mysql -u root -p # 回车输入密码
# 刚开始安装后超级用户root没有密码,直接回车即可进入到MYSQL中
# 退出MYSQL命令
exit
修改MYSQL数据库
# mysqladmin -u用户名 -p旧密码 password 新密码
mysqladmin -u root -password 123456 # 因为一开始root没有密码
mysqladmin -u root -p 123456 password 654321
# 也可以这样修改
alter user 'root'@'localhost' identified by '123'; # 修改密码为123
增加新用户并且修改权限
# grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
# 增加一个用户user1密码为password,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to "user1"@"localhost" Identified by "password";
# 如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"
# 如果你不想user1有密码,可以再打一个命令将密码去掉
grant select,insert,update,delete on mydb.* to "user1"@"localhost" identified by "";
grant all on *.* to "user"@"localhost" identified by "password";
# ALL PRIVILEGES 表示所有权限,你也可以使用select、update等权限。
# ON 用来指定权限针对哪些库和表。
# *.* 中前面的号用来指定数据库名,后面的号用来指定表名。
# TO 表示将权限赋予某个用户。
# @ 前面表示用户,@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方。
# IDENTIFIED BY 指定用户的登录密码。
# WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。
# 收回权限
# revoke [权限] on [库.表] from [用户名]@[ip]
revoke select on dyl.student from DYL@'%'
# 修改权限之后记得刷新用户权限表
flush privileges;
备份数据库
# 导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
# 导出一个表
mysqldump -u 用户名 -p 数据库名 表名 > 导出的文件名
# 导出一个数据库结构
删除用户
# drop user 用户名
drop user 'jack'@'localhost';
# DROP USER 语句可用于删除一个或多个 MySQL 账户,并撤销其原有权限
# 使用 DROP USER 语句必须拥有 MySQL 中的 MySQL 数据库的 DELETE 权限或全局 CREATE USER 权限
# 在 DROP USER 语句的使用中,若没有明确地给出账户的主机名,则该主机名默认为“%”
# 注意:用户的删除不会影响他们之前所创建的表、索引或其他数据库对象,因为 MySQL 并不会记录是谁创建了这些对象。
查看用户
SELECT user,host FROM mysql.user;
# 查看单个用户所有情况
SELECT * FROM mysql.user WHERE user='root'\G
# Select_priv:确定用户是否可以通过SELECT命令选择数据
# Insert_priv:确定用户是否可以通过INSERT命令插入数据
# Update_priv:确定用户是否可以通过UPDATE命令修改现有数据
# Delete_priv:确定用户是否可以通过DELETE命令删除现有数据
# Create_priv:确定用户是否可以创建新的数据库和表
# Drop_priv:确定用户是否可以删除现有数据库和表
# Reload_priv:确定用户是否可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包括日志、权限、主机、查询和表
# Shutdown_priv:确定用户是否可以关闭MySQL服务器,将此权限提供给root账户之外的任何用户时,都应当非常谨慎
# Process_priv:确定用户是否可以通过SHOW
# File_priv:确定用户是否可以执行SELECT INTO OUTFILE和LOAD DATA INFILE命令
# Grant_priv:确定用户是否可以将已经授予给该用户自己的权限再授予其他用户,例如,如果用户可以插入、选择和删除foo数据库中的信息,并且授予了GRANT权限,则该用户就可以将其任何或全部权限授予系统中的任何其他用户
# References_priv:目前只是某些未来功能的占位符,现在没有作用
# Alter_priv:确定用户是否可以重命名和修改表结构
# Show_db_priv:确定用户是否可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库,可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因
# Super_priv:确定用户是否可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令
# Create_tmp_table_priv:确定用户是否可以创建临时表
# Lock_tables_priv:确定用户是否可以使用LOCK
# Execute_priv:确定用户是否可以执行存储过程,此权限只在MySQL 5.0及更高版本中有意义
# Repl_slave_priv:确定用户是否可以读取用于维护复制数据库环境的二进制日志文件,此用户位于主系统中,有利于主机和客户机之间的通信
# Repl_client_priv:确定用户是否可以确定复制从服务器和主服务器的位置
# Show_view_priv:确定用户是否可以查看视图或了解视图如何执行,此权限只在MySQL 5.0及更高版本中有意义 Create_routine_priv:确定用户是否可以更改或放弃存储过程和函数,此权限是在MySQL 5.0中引入的 Alter_routine_priv:确定用户是否可以修改或删除存储函数及函数,此权限是在MySQL 5.0中引入的 Create_user_priv:确定用户是否可以执行CREATE
# Event_priv:确定用户能否创建、修改和删除事件,这个权限是MySQL 5.1.6新增的
# Trigger_priv:确定用户能否创建和删除触发器,这个权限是MySQL 5.1.6新增的
# Create_tablespace_priv: 创建表的空间