mysql-2

1,远程连接Linux下的MySQL

确认网络没有问题

  1. 在远程机器上使用ping ip地址 保证网络畅通

  2. 在远程机器上使用telnet命令 保证端口号开放 访问

telnet ip地址 端口号

  1. 启动windows下的Telnet

MySQL2_1

  1. 关闭防火墙

    systemctl stop firewalld.service

  2. 修改MySQL下的ip访问限制 (让所有ip都能访问)生产环境下禁止这种情况,要根据安全规则进行配置ip

    1
    2
    3
    update user set host = '%' where user ='root';

    flush privileges;

    ###2,mysql5.7或之前版本中字符编码问题

    Linux下的mysql5.7字符编码默认使用’latin1’,在新建库,表时导致无法插入中文。

    1
    2
    3
    show variables like 'character%';
    # 或者
    show variables like '%char%';

    解决方法,一步到位

    vim /etc/my.cnf

    character_set_server=utf8

    systemctl restart mysqld

    不会影响之前已建库,表,需要手动更改

    1
    2
    3
    alter database dbtest1 character set 'utf8';
    alter table t_emp convert to character set 'utf8';

用户和权限管理

DESCRIBE ‘表名’; 查看某个表基本结构

引入角色的目的是方便管理拥有相同权限的用户 。恰当的权限设定,可以确保数据的安全性,这是至关重要的。

MySQL2_2

创建角色使用 CREATE ROLE 语句,语法如下:

1
CREATE ROLE 'role_name'[@'host_name'] [,'role_name'[@'host_name']]...

角色名称的命名规则和用户名类似。如果 host_name省略,默认为% , role_name不可省略 ,不可为空。

练习:我们现在需要创建一个经理的角色,就可以用下面的代码:

1
CREATE ROLE 'manager'@'localhost';

​ 给角色赋予权限
创建角色之后,默认这个角色是没有任何权限的,我们需要给角色授权。给角色授权的语法结构是:

1
GRANT privileges ON table_name TO 'role_name'[@'host_name'];

上述语句中privileges代表权限的名称,多个权限以逗号隔开。可使用SHOW语句查询权限名称,列出了部分权限列表。

1
SHOW PRIVILEGES\G

MySQL索引的数据结构

​ 内容比较难和复杂,这里引用了尚硅谷-宋红康老师文档,可以仔细阅读!

尚硅谷-宋红康