关于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

results matching ""

    No results matching ""