第四讲 MySQL 数据库基础维护

1 MySQL用户管理

1.1 查询用户

mysql> use mysql;
mysql> select * from user;

1.2 创建用户

#主机名可使用%表示所有的主机
mysql> create user '用户名'@'主机名' identified by '密码';

1.3 删除用户

mysql> drop user 'mytest'@'localhost';

1.4 修改用户密码

#可选下面两种写法
mysql> update user set password = password('new_password') where user = 'mytest';
mysql> set password for 'mytest'@'localhost' = password('new_password');

2 MySQL 权限管理

2.1 查看用户权限

#show grants for '用户名'@'主机名'
mysql> show grants for 'mytest'@'%';

2.2 用户授权

#grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'; (多个权限需要使用逗号隔开)
mysql> grant all on *.* to 'mytest'@'%';

2.3 取消权限

#revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
mysql> revoke select on company.account from 'mytest'@'%';

3 MySQL 四种连接方式

3.1 TCP/IP

TCP/IP连接方式是MySQL在任何平台都提供的一种连接方式,通过TCP/IP连接建立一个网络连接

mysql -uroot -h127.1 -p

远程连接的客户端连接的用户有权限才可以被连接 , 可通过查询 schema mysql 中的 user 表来得知用户是否具有连接权限

3.2 Unix Socket

在Linux与Unix环境下,可使用Unix套接字连接,只能在MySQL客户端与数据库实例在同一台服务器的情况下使用

mysql -u root -S /tmp/mysql.sock

-S 是 --socket 的简写形式 , 其值必须与服务器配置文件中指定路径相同,此类连接性能优于TCP/IP

3.3 Named Pipe

仅用于Windows下的连接,性能优于TCP/IP 30%~50%

mysql -u username -p password --protocol=pipe [ --socket=mysql ]

3.4 Shared Memory

在4.1版本之后 , MySQL对Windows系统还提供了共享内存的连接方式

mysql --protocol=memory --shared-memory-base-name=mysql

4 MySQL 字符集设置

4.1 查看当前数据库字符集

mysql> show variables like '%character%';
+--------------------------+-----------------------------------------------------+
| Variable_name            | Value                                               |
+--------------------------+-----------------------------------------------------+
| character_set_client     | utf8                                                |
| character_set_connection | utf8                                                |
| character_set_database   | utf8mb4                                             |
| character_set_filesystem | binary                                              |
| character_set_results    | utf8                                                |
| character_set_server     | utf8mb4                                             |
| character_set_system     | utf8                                                |
| character_sets_dir       | /usr/local/Percona-Server-5.7.19-17/share/charsets/ |
+--------------------------+-----------------------------------------------------+
8 rows in set (0.00 sec)

4.2 设置字符集

  • 创库时设置

    mysql> create database db default character set=utf8;
    
  • 创表时设置

    create table tb(a char(2) not null primary key)default character set=utf8mb4;
    
  • 创库后设置

    mysql> alter database db default character set gbk;
    
  • 创表后设置

    mysql> alter table tb convert to character set utf8;
    
  • 字段级设置

    mysql> alter table tb modify 备注 text character set utf8mb4;
    
  • 全局设置

    /*建立连接使用的编码*/
    mysql> set character_set_connection=utf8;
    /*数据库的编码*/
    mysql> set character_set_database=utf8;
    /*结果集的编码*/
    mysql> set character_set_results=utf8;
    /*数据库服务器的编码*/
    mysql> set character_set_server=utf8;
    mysql> set character_set_system=utf8;
    mysql> set collation_connection=utf8;
    mysql> set collation_database=utf8;
    mysql> set collation_server=utf8;
    

    set指令仅临时生效,永久生效需设置到my.cnf文件中

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴走的Mine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值