关于mysql的个人理解
这里主要说一些梗,刚安装好后,直接以空用户名进入,不用密码的,控制台输入mysql回车就好。
show databases;
进入mysql后,输入查看所有数据库,你发现是如下结果(即使你是用mysql -u root -p进入的也是一样,其实它本质还是以空用户名和空密码用户身份进入的)
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | +--------------------+ 2 rows in set (0.00 sec) ''' 发现就一个test这个测试数据库能看到, 明明在路径/usr/local/mysql-5.6.38-macos10.12-x86_64/data下能发现其他数据库 不过可以看到mysqlx显示🚫图标,就是说权限不够。 所以我们需要sudo su进入最高权限环境访问,然后在重新mysql命令进入,这样就能查看所有数据库了 并且修改密码也是在mysql数据库下修改,因为密码存在于mysql数据库下的user表中 use mysql; set password for root@localhost = password('新密码'); 或者:update user set password=password('123') where user='root' and host='localhost'; '''mysql 常用命令
# 用户名和密码登录mysql(root用户) mysql -u root -p # 退出mysql exit # 创建用户(首先进入mysql名称的数据库,因为这个下面有user表,它是用来存储用户和密码的) create user 'tedcall'@'localhost' identified by '123456'; # 查看用户名下所有数据库 show databases; # 进入数据库(databasename) use databasename # 查看数据库下的所有表 show tables; # 查看表的结构 desc tablename # 更新用户名 update user set user='ted123' where user='tedcall' # 删除用户名 delete from mysql.user where user='tedcall'; # 查看当前数据库的编码格式 show variables like '%char%'; # 查看表的字段编码 show full fields from <tableName>; # 创建数据库 create database <databasename> default character set utf8 collate utf8_general_ci; # 为某个数据库用户赋予所有权限 grant all privileges on <databasename>.* to <username>@localhost identified by '<密码>'; # 为某个数据库用户赋予部分权限 grant select,insert,update,delete,create on <databasename>.*to <username>; # 刷新权限 flush privileges;
所有权限
select,
insert,
update,
delete,
create,
drop,
references,
index,
alter,
create temporary tables,
lock tables,
execute,
create view,
show view,
create routine,
alter routine,
event,
trigger