香港vps服务器的MySQL 数据库基础维护

已关闭留言

香港vps服务器的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

LinuxUnix环境下,可使用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版本之后 , MySQLWindows系统还提供了共享内存的连接方式

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文件