对最近 MySQL 的常用运维命令进行整理
查看使用的哪个配置文件启动的 MySQL
1. ps aux|grep MySQL|grep 'my.cnf'
如果启动的命令中选择了配置文件, 则可以查询出来, 也可能查询不到.
2. MySQL --help|grep 'my.cnf'
输出:
- order of preference, my.cnf, $MYSQL_TCP_PORT,
- /etc/my.cnf /etc/MySQL/my.cnf /opt/App/MySQL/etc/my.cnf ~/.my.cnf
启动时选择配置文件的默认顺序从前到后.
3. locate my.cnf 命令可以列出所有的 my.cnf 文件, 或者使用 find 命令也可以
账户的创建修改和设置权限
1. 查看当前已有用户
连接 MySQL 的通用方式, 可以省略其中一部分参数 :
MySQL -uroot -h 127.0.0.1 -P 3306 -p
注意: 大写 P 是端口 小写 p 是密码
2. create user 创建用户和修改密码和删除
2.1 创建用户:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
例子:
CREATE USER 'vinter'@'localhost' IDENTIFIED BY '123456';
注意
用户名和 host 必须加引号否则不能运行
create user vinter;
此种写法账户无密码, 可以在任意客户端任意 ip 下登录
2.2 修改密码:
2.2.1 最容易记住的, 就是直接 update user 表, update 成功后要使用 flush privileges; 更新
例如
- update user set password = password('111111') where user = 'vinter';
- flush privileges;
2.2.2 使用 mysqladmin 语法: mysqladmin -u 用户名 -p 旧密码 password 新密码
mysqladmin -u vinter -p 123 password 456;
2.2.3 使用 set password 语句修改
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是当前登陆用户用 SET PASSWORD = PASSWORD("newpassword");
set password forr 'vinter'@'%'=password('haojia');
2.3 删除用户:
DROP USER username@localhost;
3. 使用 grant 语句设置权限
1. 赋予权限:
格式语句:
grant 权限 1, 权限 2,... 权限 n on 数据库名称. 表名称 to 用户名 @用户地址 identified by '连接密码' [with grant option];
权限取值如下:
select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file 等
数据库名和表名可以使用通配符来表示所有, 比如 dbname. 和.
例子:
- grant all privileges on testdb.* to '''vinte'r@'127.0.0.1' identified by '111111';
- grant insert,delete,select,update on testdb.* to vinter@127.0.0.1 identified by '111111';
identified by 可以不写, 如果写会更改密码为新密码.
注: 如果带了 with grant option 则被授予权限的人, 可以把此权限再转授权 (传递) 给其他用户.
2. 撤销权限
语法: REVOKE 权限列表 ON db.table FROM 'username'@'localhost';
- REVOKE ALL PRIVILEGES ON *.* FROM 'vinter'@'%';
- revoke update on *.* from 'vinter'@'%' ;
设置远程登录
我们先说一下实现远程登录 MySQL 的条件
首先 MySQL 必须设置相关的权限, 允许该账户远程登录, 第二需要防火墙设置了 3306 端口的远程访问.
1. MySQL 设置远程访问
可以使用 grant 语句, 可以直接更新 user 表中相关项.
例子中用户为 vinter,ip 为 192.168.1.111
- // 固定 ip:
- grant all privileges on *.* to 'vinter'@'192.168.1.111' identified by '123' with grant option;
- insert into user (host,user,password) values('192.168.1.111','vinter',password('123'));
- // 不限制 ip
- grant all privileges on *.* to 'vinter'@'%' identified by '123' with grant option;
- insert into user (host,user,password) values('%','vinter',password('123'));
2. 防火墙设置(centos7)
常用的如下几个其他的见文后附录:
添加一个端口
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent 永久生效, 没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=80/tcp
查看所有打开的端口
firewall-cmd --zone=public --list-ports
附录 firewalld 基本操作
1,firewalld 的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
2.systemctl 是 CentOS7 的服务管理工具中主要的工具, 它融合之前 service 和 chkconfig 的功能于一体.
启动一个服务: systemctl start firewalld.service
关闭一个服务: systemctl stop firewalld.service
重启一个服务: systemctl restart firewalld.service
显示一个服务的状态: systemctl status firewalld.service
在开机时启用一个服务: systemctl enable firewalld.service
在开机时禁用一个服务: systemctl disable firewalld.service
查看服务是否开机启动: systemctl is-enabled firewalld.service
查看已启动的服务列表: systemctl list-unit-files|grep enabled
查看启动失败的服务列表: systemctl --failed
3. 配置 firewalld-cmd
查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包: firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
添加端口
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent 永久生效, 没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=80/tcp
删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
来源: https://www.cnblogs.com/vinter/p/10522802.html