# MySQL 数据库基础维护

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/9591.html | 发布：2022-09-02 | 更新：2022-09-02 | 分类：建站教程、投稿分享

## 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;`

 

``

 

/*建立连接使用的编码*/  
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文件

 

![MySQL 数据库基础维护](https://www.mfisp.com/wp-content/uploads/2022/01/13f2011b3ecdd68_1_post.jpg)

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
