MySQL配置管理


一、登录配置

1. 免密登录

在配置文件中添加 skip-grant-tables 配置。

which mysql                 # 查看mysql位置

vim /etc/mysql/my.cnf       # 编辑配置文件

修改完重启 MySQL 服务即可生效。

systemctl restart mysqld         # 重启服务

2. 基本操作

下面为通过命令行方式查询数据库与表等信息,除登录外每行命令都必须以 ; 分号结尾。

mysql -u root -p        # 登录

show databases;         # 查看所有数据库

use <database>;         # 进入对应数据库

show tables;            # 查看所有数据表

describe <table>;       # 查看相应表结构

3. 开放连接

其中 % 表示开放给任何 IP 地址,此方法不建议在生产环境上操作,建议对指定 IP 进行配置。

use mysql;

select host from user where user='root';

-- 开放给任何 IP 
update user set host = '%' where user ='root';

-- 开放给指定 IP
update user set host = '192.168.0.21' where user ='root';

-- 刷洗生效
flush privileges;

二、权限管理

1. 用户创建

(1) 新建用户

其中 host 表示该用户允许通过哪个 IP 地址进行连接,如果需设置放行所有 IP 则替换为 %,生产环境中应针对具体情况设置指定 IP

-- 创建用户,指定 IP 允许访问
create user '<username>'@'<host>' identified by '<password>';

-- 修改密码
set password for '<username>'@'<host>' = password('<newpassword>');
(2) 修改密码
UPDATE mysql.user 
SET authentication_string = PASSWORD ("<newpassword>") 
WHERE User = "<username>" AND Host = "<host>";

2. 用户授权

新创建的用户默认并没有任何权限,因此还需要根据需要对用户进行授权。

其中 privilege 可选项如下:

权限 描述
all 授权用户所有权限。
select 授权用户查询权限。
update 授权用户更新权限。
delete 授权用户删除权限。

其中 <databasename>.<tablename> 表示所要授权的库与表,可以指定数据库和表或者使用 *.* 授予所有的库和表。

-- 用户授权
grant <privilege> on <databasename>.<tablename> to 'username'@'host';

-- 删除授权
revoke <privilege> on <databasename>.<tablename> to 'username'@'host';

-- 查询用户权限
show grants for 'username'@'host';

3. 用户删除

当用户不再使用之后应及时删除该用户的授权或删除账号。

-- 删除用户
drop user 'username'@'host';

-- 刷新配置
flush privileges;

三、进程管理

1. 进程查看

通过 show processlist 可查看当前数据库的进程列表,并通过 kill 关键字终止进程。

-- 查看当前所有进程
show processlist

-- 终止某进程
kill <id>

文章作者: 烽火戏诸诸诸侯
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 烽火戏诸诸诸侯 !
  目录