一、登录配置
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>