Mysql安装及经常使用命令

部份内容转载于html

https://www.linuxidc.com/Linux/2016-09/135288.htmmysql

 https://www.cnblogs.com/rays-/p/8081798.htmllinux

 

在CentOS7安装mysql5.7sql

yum源 rmp包下载地址docker

https://dev.mysql.com/downloads/repo/yum/数据库

 

下载mysql源安全

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安装mysql源app

yum localinstall mysql57-community-release-el7-8.noarch.rpm

检查mysql源url

yum repolist enabled | grep "mysql.*-community.*"

成功则有下图spa

 须要更换版本能够在 /etc/yum.repos.d/mysql-community.repo切换,把须要的版本enabled=1,原来的修改为0

 安装mysql

yum install mysql-community-server

守护进程操做

启动mysql systemctl start mysqld 关闭mysql systemctl stop mysqld 开机自启动 systemctl enable mysqld 关闭自启动 systemctl disable mysqld

 检查端口是否开启mysql,3306是mysql默认端口

 登入mysql

mysql随机生成一个密码,在/var/log/mysqld.log

grep 'temporary password' /var/log/mysqld.log

后面那串随机的字符串就是密码

 在终端输入

mysql -uroot -p

而后输入密码,进入mysql

修改密码,格式为 set password for 'root@localhost'=password('你要需改的密码');

 若是出现如下提示,是由于mysql默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,而且长度不能少于8位

 

 咱们能够把这个密码检查策略关闭,找到mysql的配置文件 /etc/my.conf,添加一下两行

[mysqld] validate_password=off

而后重启mysql服务

systemctl restart mysqld

进入mysql在修改密码

 

 

经常使用的SQL语句

数据库查询语言    专门用于查询数据 表明指令为select /show

数据操做语言       专门用于写入数据 表明指令instert update delete

事务处理语言       专门用于事务安全处理       表明指令 transaction

数据控制语言       专门用于权限管理              表明指令 grant / revoke

数据定义语言       专门用于结构管理              表明指令creat / drop

 

数据库操做

show databases     #查看所有数据库

show databases like ‘匹配模式’;   #查看指定数据库 匹配模式:   _: 匹配当前位置单个字符、   %:匹配指定位置多个字符

create database 数据库名    #建立数据库

drop database 数据库名    #删除数据库

use 数据库名字;   #选择数据库

 

 表操做

use 数据库名称     #先选择进入的数据库

show  tables    #查看当前数据库的所有表

 

create table 表名(字段名1  字段类型2  [ 字段名2 类型2 ]  )       #建立表

 

drop table 表名    #删除表

 

 

alter table 表名 add 字段名 字段类型   #增长字段

 

 

 

 

 

 

 

 

 

 

 设置远程用户访问,进入mysql的命令行且须要root权限, (其中% 表示全部主机均可以访问)

GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
FLUSH PRIVILEGES 刷新权限设置

 建立用户

CREATE USER '用户名'@'host' IDENTIFIED BY '密码';

 host能够是本地(localhost),也能够是任意主机(%),或者指定主机

 删除用户

DROP USER '用户名'@'host';

查看所有用户

select user,host from mysql.user

 修改用户名,将root修改为admin

update mysql.user set user='admin' where user='root';

 

用户受权,须要刷新权限才能生效

GRANT 权限操做 ON 数据库名.表名 TO '用户名'@'host'
FLUSH PRIVILEGES

 命令操做能够是 select create update delete等,所有权限能够输入ALL,所有的数据库的所有表名能够表示   *.*

例如   GRANT SELECT ON test_db.* TO 'test'@'localhost'; 只能本地登入的test用户拥有读取test_db数据库下面的全部表

删除权限

REVOKE 权限操做 ON 数据库名.表名 FROM '用户名'@'host';

查看用户的权限

SHOW GRANTS FOR '用户名'@'host'

 

 

一些安全策略

0、备份文件

mysqldump -uroot -p --databases student >/var/lib/mysql/data2/student.sql

还原数据库

先建立原来的数据库,进入,而后还原

create database student; use student; source student.sql;

 

一、mysql中危险的配置项,能够对文件继续操做,即读取或写入

进入mysql的命令行输入 ,查看导入导出权限

show global variables like '%secure%';

 

若是secure_file_priv那一行是空的,这说明咱们能够在任意范围进行文件导入或导出

若是是null,则说明禁止文件操做

若是是一个文件路径,则只能在该路径下面进行操做

在配置文件/etc/my.cnf下面添加,而后重启服务

secure_file_priv =null

 

二、禁止用户读取本地文件或访问操做系统上的文件

在/etc/my.cnf添加,而后重启服务

set-variable=local-infile=0

若是报错就在配置文件添加

local-infile=0

 

三、删除test库,匿名用户能够访问,存在风险

drop database test;

 

四、删除无用的用户,修改root用户的名称

参考前面的命令

 

五、删除历史记录

访问 cat ~/.mysql_history,会发现以前mysql模式下输入的命令都保存在此,将其删除

cat /dev/null > ~/.mysql_history
相关文章
相关标签/搜索