MySQL 常用语句以及基础知识

RHEL7安装MariaDB
Yum install –y mariadb mariadb-server
Mysql_installdb //初始化数据库
• 可以为root帐户设置密码。
• 可以删除root可从本地主机以外访问的帐户。
• 可以删除匿名用户帐户。
• 可以删除test数据库(默认情况下,所有用户甚至匿名用户都可以访问该数据库)以及允许任何人访问以名称开头的数据库的权限 test

如果不初始化数据库,mysql可以匿名登陆,会生成test数据库
.
.
.
.
.
Mysqld_safe & //平滑启动数据库 &是后台运行的意思
Systemctl start mariadb //启动数据库
Mysqladmin shutdown //关闭数据库
Systemctl stop mariadb //停止数据库
.
.
.
.
.
.
Mysql –uusername –ppassword //指定用户和密码登陆数据库 密码可不输入(单独输入)
Mysql –uusername –ppassword –D mysql //-D 指定进入数据库
Mysql –S /var/lib/mysql/mysql.sock //sock套接字文件 指定套接字文件sock来连接数据库
Mysql –h (ip地址) //指定登陆一台主机上的数据库 前提是指定的主机开启并运行你连接
Mysql –e “use mysql;select user,host,password from user;” //-e 通过shell进行直接控制连接数据库
-P 指定服务端端口
-C 压缩数据传输
-E 查询结果纵向显示 (库外操作)
.
.
.
.
.
数据库的创建:
Use mysql //切换数据库
Select user,host,password from user; //查询user表中user,host,password列
Create user ‘xiaoquan’@’localhost’ identified by ‘123’
Create database if not exists testdb; //如果testdb库存在就不创建
.
.
.
密码管理
在库外设置数据库密码
mysqladmin –uroot password 123 //设置密码
Mysqladmin –uroot –p123 password linux
在库内设置密码
Set password for ‘root’@’localhost’=password(‘123’J)’
.
.
.
MariaDB [(none)]> use mysql
MariaDB [mysql]> Insert into mysql.user(user,host,password) values(‘zhang’,’localhost’,password(‘123’)); //在mysql库中的user表中的user,host,password字段中插入数据(必须在库内!)
Grant all on mysql.* to ‘zhangsan’@’localhost’ identified by ‘123’; //授权数据库 如果用户不存在将会自动建立用户
.
.
删除用户:
1)Delete from mysql.user where user=’zhangsan’ and password=’123’;
Flush privileges //删除和创建后都需要刷新!!!
2)drop user ‘zhang’@’localhost’;
重命名:
Rename user ‘xiaoquan’@’localhost’ to ‘zhang’@’localhost’;
3)5.7版本不可以使用!
Update mysql.user set password = password(‘xiaoquan’) where user=’root’ and host=’localhost’;
.
.
.
Mysql 密码破解

  1. 停止mysql
    Mysqladmin shutdown
  2. 使用—skip-grant-tables启动mysql
    Mysqld_safe –skip-grant-tables &
  3. Update mysql.user set password=password(‘123’) where user=’root’ and host=’localhost’;
    重启数据库
    .
    .
    .
    .
    .
    授权管理
    授权语法:grant all [privileges] on db.tbl ‘username’@’host’ identified by ‘password’;
    Grant all on . to ‘xiaoquan’@’localhost’ identified by ‘xiaoquan’; //将本地所有库和表的权限授权给xiaoquan
    Grant all on . to ‘xiaoquan’@’%’ identified by ‘xiaoquan’; //给所有主机上有用户xiaoquan的授权
    Grant select on mysql.user to ‘zhang’@’localhost’ identified by ‘123’; //指定授权用户可以查询库中的表
    Show grants for ‘zhang’@’localhost’\G //查看权限
    Revoke select on mysql.user from ‘zhang’@’localhost’; //删除权限
    .
    .
    .
    .
    .
    .
    数据库变量:
    Show global variables\G //查看所有全局变量
    Show global variables like ‘%version%\G //查看与版本version有关的全局变量
    Like 关键字匹配 % 通配符相当于*
    Show global variables where variable_name like ‘charavter%’; //global 全局 variables 变量 where 指定条件 variable_name 变量名 like 匹配 //查看全局与字符集相关的变量
    Show global variables where variable_name like ‘%log%’ and value=’off’; //查看日志关闭的全局参数
    Show session variables\G //查看回话参数
    Show variables \G //不知名变量参数 默认的为session 回话参数
    .
    .
    Select @@[global.|session.] system_var_name //查看单个变量的语法
    Select @@global.pid_file; //查看pid_file变量参数
    .
    .
    MariaDB [(none)]> select @@session.autocommit; //查询autocommit变量
    修改语法:(不指定类型,默认修改会话变量)
    MariaDB [(none)]> SET GLOBAL var_name = value;
    MariaDB [(none)]> SET @@GLOBAL.var_name = value;
    MariaDB [(none)]> SET SESSION var_name = value;
    MariaDB [(none)]> SET @@SESSIO.var_name = value;
    Set @@session.autoconmmit=0; //修改autocommint参数
    运行时修改的变量并非永久有效,重启后将会失效;
    运行时修改global级别的变量:对修改之前建立的会话没有影响,仅对修改后新建立的会话有效;
    运行时修改session级别的变量:仅对当前会话有效,且立即生效;
    如果想要使设定永久有效,需要设置配置文件。
    但是在不确定的情况下,不要随便修改配置文件,否则将可能会出现无法预计的问题
    .
    .
    .
    MYSQL help参数:
    清除(\c)清除当前输入语句。
    连接(\r)重新连接到服务器。可选的参数是DB和主机。
    定界符(\d)SET语句定界符。
    用编辑器编辑(\e)编辑命令。
    (\g)向MySQL服务器发送命令,垂直显示结果。
    退出(\q)退出mysql。与退出相同。
    转到(\g)发送命令到MySQL服务器。
    打印(\p)打印当前命令。
    提示(\r)更改MySQL提示符。
    退出(\q)退出mysql。
    源代码(.)执行SQL脚本文件。将文件名作为参数。
    状态(S)从服务器获取状态信息。
    系统(!)执行系统外壳命令。
    使用(\u)使用另一个数据库。将数据库名称作为参数。
    字符集(\c)切换到另一字符集。可能需要用多字节字符集来处理BILCONG。
    警告(\w)在每个语句之后显示警告。
    (\W)在每个语句之后不显示警告。
    .
    .
    .
    .
    .
    MySQL的概念
    1)什么是数据库
    按照数据的关系,组织、管理、存储的系统
    2)数据库的分类
    关系型:Oracle 、 MySQL 、 SQL-server
    数据都是按照表状结构存储,二维关系,表与表之间可以建立联系,多表查询,可以跨越版本、跨越不同软件,将数据导入导出
    都是基于SQL(结构化查询语句)
    非关系型:Redis memache mongodb
    NoSQL = not only SQL ,对关系型数据库的一个补充,大大提高的查询检索效率,把所有数据都同意存储,都有自己的,不存在数据的链接
    当前企业使用MySQL的版本分布:
    5.1 ----- 20%
    5.5 ----- 60%
    5.6或以上 ----- 20%
    Oracle 和 MySQL
    Oracle: 应用传统行业(金融、证券、大学等),臃肿,闭源(收费)
    MySQL: 应用于互联网行业(BAT 58 jd等等),我们都是根据系统进行二次开发使用,开源的(RHEL6.x 默认5.1系统 -- RHEL7.x 默认mariadb5.5)
    2008年左右 MySQL被SUN公司收购,2012年SUN公司又被Oracle收购(JDK也是Oracle),MySQL很有可能闭源
    MySQL公司有开发一款和MySQL完全相同的数据库MariaDB
    a)安装方式:
    yum/rpm 安装
    源码安装(cmake安装) --- 运维,针对设备少时
    二进制安装 --- 开发,针对集群架构较大时
    b)MySQL版本:
    商业版: 收取lisence费用 服务费用 -- 针对大公司
    社区版: 免费版,个人用、小公司
    四大发行版本:
    Alpha---预览版(内部测试版本),开发人员使用,完全不对外,测试大的bug
    Beta---测试版(公开测试版),加入很多新功能,邀请比较不错的用户尝试使用---BAT公司使用
    RC----发行版本,可能会有小bug ,但是能满足较大的需求
    GA----稳定发行版本(没有任何的后缀,就是这个版本)

数据库总结:
create 创建
delete | drop删除
grant 授权
revoke 删除权限
select 查询
set 修改
show 显示
rename 重命名

猜你喜欢

转载自blog.51cto.com/13735335/2159104