一、登录配置
1. 免密登录
在 .cnf 配置文件末尾添加 skip-grant-tables 配置跳过登录。
which mysql # 查看mysql位置
vim /etc/mysql/my.cnf # 编辑配置文件
保存修改后重启 MySQL 服务即可生效。
systemctl restart mysqld # 重启服务
2. 基本操作
常用的数据库及数据表命令如下:
| 命令 | 描述 |
|---|---|
| mysql -u root -p | 登录 |
| show databases; | 进入对应数据库 |
| show tables; | 查看所有数据表 |
| describe table_name; | 查看相应表结构 |
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>