什么是Mysql数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

mysql是什么

  1. mysql就是一个基于socket编写的C/S架构的软件
  2. 客户端软件
  3. mysql自带:如mysql命令,mysqldump命令等
  4. python模块:如pymysql

数据库管理软件分类

  1. 分两大类:
  2.  关系型:如sqllitedb2oracleaccesssql serverMySQL,注意:sql语句通用
  3.  非关系型:mongodbredismemcache
  4.  
  5. 可以简单的理解为:
  6. 关系型数据库需要有表结构
  7. 非关系型数据库是key-value存储的,没有表结构

Navicat软件

这个软件对MySQL特别友好,是一套适用于MySQL,SQLLite等多个数据库系统的图形化数据库管理,报告以及兼通的工具。

通过这个软件,我们可以演练创建/删除表,查询/删除/修改记录操作的SQL

什么是SQL?

什么是SQL?

SQL(structured query language):结构化查询语言,SQL是一种对关系型数据库中的数据进行定义和操作的语言。

SQL语句又是什么尼?

使用SQL语言编写出来的句子/代码就是SQL语言

在程序中如果想要操作(增删改查 CRUD)数据库中的数据,就必须使用SQL语言

Create ,Retrive,Updata,Delete

SQL语句的特点?

不区分大小写

每条语句都是以分号(;)结尾

数据库的相关概念

  1. age = 18
  2. 一个变量 无法描述清楚数据
  3. 1.称之为一个字段
  4. age = 18,name = Jack,genger = man
  5. 一堆变量在一起,可以描述清楚数据
  6. 2.称之为一条记录 对应着文件中的一行
  7. 文件需要分门别类 每个文件存储不同的数
  8. 3.一个文件称之为表
  9. 文件越来越多 得分文件夹
  10. 4.一个文件称之为库
  11. 数据库中包含所有内容:
  12. 字段(列)
  13. 记录

下载安装

Linux版本

  1. 1.解压tar
  2. cd /software
  3. tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
  4. mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21
  5.  
  6. 2.添加用户与组
  7. groupadd mysql
  8. useradd -r -g mysql mysql
  9. chown -R mysql:mysql mysql-5.6.21
  10.  
  11. 3.安装数据库
  12. su mysql
  13. cd mysql-5.6.21/scripts
  14. ./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data
  15.  
  16. 4.配置文件
  17. cd /software/mysql-5.6.21/support-files
  18. cp my-default.cnf /etc/my.cnf
  19. cp mysql.server /etc/init.d/mysql
  20. vim /etc/init.d/mysql #若mysql的安装目录是/usr/local/mysql,则可省略此步
  21. 修改文件中的两个变更值
  22. basedir=/software/mysql-5.6.21
  23. datadir=/software/mysql-5.6.21/data
  24.  
  25. 5.配置环境变量
  26. vim /etc/profile
  27. export MYSQL_HOME="/software/mysql-5.6.21"
  28. export PATH="$PATH:$MYSQL_HOME/bin"
  29. source /etc/profile
  30.  
  31. 6.添加自启动服务
  32. chkconfig --add mysql
  33. chkconfig mysql on
  34.  
  35. 7.启动mysql
  36. service mysql start
  37.  
  38. 8.登录mysql及改密码与配置远程访问
  39. mysqladmin -u root password 'your_password' #修改root用户密码
  40. mysql -u root -p #登录mysql,需要输入密码
  41. mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; #允许root用户远程访问
  42. mysql>FLUSH PRIVILEGES; #刷新权限

Window版本

  1. #1、下载:MySQL Community Server 5.7.16
  2. http://dev.mysql.com/downloads/mysql/
  3.  
  4. #2、解压
  5. 如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.7.16-winx64
  6.  
  7. #3、添加环境变量
  8. 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQLbin目录路径追加到变值值中,用 分割】
  9.  
  10. #4、初始化
  11. mysqld --initialize-insecure
  12.  
  13. #5、启动MySQL服务
  14. mysqld # 启动MySQL服务
  15.  
  16. #6、启动MySQL客户端并连接MySQL服务
  17. mysql -u root -p # 连接MySQL服务器
  1. 上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题:
  2.  
  3. 注意:--install前,必须用mysql启动命令的绝对路径
  4. # 制作MySQL的Windows服务,在终端执行此命令:
  5. "c:\mysql-5.7.16-winx64\bin\mysqld" --install
  6.  
  7. # 移除MySQL的Windows服务,在终端执行此命令:
  8. "c:\mysql-5.7.16-winx64\bin\mysqld" --remove
  9.  
  10. 注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:
  11. # 启动MySQL服务
  12. net start mysql
  13.  
  14. # 关闭MySQL服务
  15. net stop mysql

Mysql软件基本管理

启动查看

  1. [root@egon ~]# systemctl start mariadb #启动
  2. [root@egon ~]# systemctl enable mariadb #设置开机自启动
  3. Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
  4. [root@egon ~]# ps aux |grep mysqld |grep -v grep #查看进程,mysqld_safe为启动mysql的脚本文件,内部调用mysqld命令
  5. mysql 3329 0.0 0.0 113252 1592 ? Ss 16:19 0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
  6. mysql 3488 0.0 2.3 839276 90380 ? Sl 16:19 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
  7. [root@egon ~]# netstat -an |grep 3306 #查看端口
  8. tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
  9. [root@egon ~]# ll -d /var/lib/mysql #权限不对,启动不成功,注意user和group
  10. drwxr-xr-x 5 mysql mysql 4096 Jul 20 16:28 /var/lib/mysql
  1. 安装完mysql 之后,登陆以后,不管运行任何命令,总是提示这个
  2. mac mysql error You must reset your password using ALTER USER statement before executing this statement.
  3. 解决方法:
  4. step 1: SET PASSWORD = PASSWORD('your new password');
  5. step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  6. step 3: flush privileges;

登录,设置密码

  1. 初始状态下,管理员root,密码为空,默认只允许从本机登录localhost
  2. 设置密码
  3. [root@egon ~]# mysqladmin -uroot password "123" 设置初始密码 由于原密码为空,因此-p可以不用
  4. [root@egon ~]# mysqladmin -uroot -p"123" password "456" 修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码
  5.  
  6. 命令格式:
  7. [root@egon ~]# mysql -h172.31.0.2 -uroot -p456
  8. [root@egon ~]# mysql -uroot -p
  9. [root@egon ~]# mysql root用户登录本机,密码为空

忘记密码

linux平台下,破解密码的两种方式

  1. [root@egon ~]# rm -rf /var/lib/mysql/mysql #所有授权信息全部丢失!!!
  2. [root@egon ~]# systemctl restart mariadb
  3. [root@egon ~]# mysql
  1. [root@egon ~]# vim /etc/my.cnf #mysql主配置文件
  2. [mysqld]
  3. skip-grant-table
  4. [root@egon ~]# systemctl restart mariadb
  5. [root@egon ~]# mysql
  6. MariaDB [(none)]> update mysql.user set password=password("") where user="root" and host="localhost";
  7. MariaDB [(none)]> flush privileges;
  8. MariaDB [(none)]> \q
  9. [root@egon ~]# #打开/etc/my.cnf去掉skip-grant-table,然后重启
  10. [root@egon ~]# systemctl restart mariadb
  11. [root@egon ~]# mysql -u root -p123 #以新密码登录

windows平台下,5.7版本mysql,破解密码的两种方式

  1. 1 关闭mysql
  2. 2 cmd中执行:mysqld --skip-grant-tables
  3. 3 cmd中执行:mysql
  4. 4 执行如下sql
  5. update mysql.user set authentication_string=password('') where user = 'root';
  6. flush privileges;
  7.  
  8. 5 tskill mysqld #或taskkill -f /PID 7832
  9. 6 重新启动mysql
  1. 1. 关闭mysql,可以用tskill mysqld将其杀死
  2. 2. 在解压目录下,新建mysql配置文件my.ini
  3. 3. my.ini内容,指定
  4. [mysqld]
  5. skip-grant-tables
  6.  
  7. 4.启动mysqld
  8. 5.cmd里直接输入mysql登录,然后操作
  9. update mysql.user set authentication_string=password('') where user='root and host='localhost';
  10.  
  11. flush privileges;
  12.  
  13. 6.注释my.ini中的skip-grant-tables,然后启动myqsld,然后就可以以新密码登录了

在windows下,为mysql服务指定配置文件

强调:配置文件中的注释可以有中文,但是配置项中不能出现中文

  1. #在mysql的解压目录下,新建my.ini,然后配置
  2. #1. 在执行mysqld命令时,下列配置会生效,即mysql服务启动时生效
  3. [mysqld]
  4. ;skip-grant-tables
  5. port=3306
  6. character_set_server=utf8
  7. default-storage-engine=innodb
  8. innodb_file_per_table=1
  9.  
  10. #解压的目录
  11. basedir=E:\mysql-5.7.19-winx64
  12. #data目录
  13. datadir=E:\my_data #在mysqld --initialize时,就会将初始数据存入此处指定的目录,在初始化之后,启动mysql时,就会去这个目录里找数据
  14.  
  15. #2. 针对客户端命令的全局配置,当mysql客户端命令执行时,下列配置生效
  16. [client]
  17. port=3306
  18. default-character-set=utf8
  19. user=root
  20. password=123
  21.  
  22. #3. 只针对mysql这个客户端的配置,2中的是全局配置,而此处的则是只针对mysql这个命令的局部配置
  23. [mysql]
  24. ;port=3306
  25. ;default-character-set=utf8
  26. user=egon
  27. password=4573
  28.  
  29. #!!!如果没有[mysql],则用户在执行mysql命令时的配置以[client]为准

统一字符编码

  1. 1. 修改配置文件
  2. [mysqld]
  3. default-character-set=utf8
  4. [client]
  5. default-character-set=utf8
  6. [mysql]
  7. default-character-set=utf8
  8.  
  9. #mysql5.5以上:修改方式有所改动
  10. [mysqld]
  11. character-set-server=utf8
  12. collation-server=utf8_general_ci
  13. [client]
  14. default-character-set=utf8
  15. [mysql]
  16. default-character-set=utf8
  17.  
  18. 2. 重启服务
  19. 3. 查看修改结果:
  20. \s
  21. show variables like '%char%'

初识sql语句

有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写

mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要下载mysql的客户端,或者其他模块来连接到mysqld,然后使用mysql软件规定的语法格式去提交自己命令,实现对文件夹或文件的管理。该语法即sql(Structured Query Language 即结构化查询语言)

  1. SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:
  2. 1DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
  3. 2DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
  4. 3DCL语句 数据库控制语言: 例如控制用户的访问权限GRANTREVOKE
  1. 1. 操作文件夹
  2. 增:create database db1 charset utf8;
  3. 查:show databases;
  4. 改:alter database db1 charset latin1;
  5. 删除: drop database db1;
  6.  
  7. 2. 操作文件
  8. 先切换到文件夹下:use db1
  9. 增:create table t1(id int,name char);
  10. 查:show tables
  11. 改:alter table t1 modify name char(3);
  12. alter table t1 change name name1 char(2);
  13. 删:drop table t1;
  14.  
  15. 3. 操作文件中的内容/记录
  16. 增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');
  17. 查:select * from t1;
  18. 改:update t1 set name='sb' where id=2;
  19. 删:delete from t1 where id=1;
  20.  
  21. 清空表:
  22. delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
  23. truncate table t1;数据量大,删除速度比上一条快,且直接从零开始,
  24. auto_increment 表示:自增
  25. primary key 表示:约束(不能重复且不能为空);加速查找

Mysql数据库基础知识的更多相关文章

  1. MySQL数据库基础知识及优化

    MySQL数据库基础知识及优化必会的知识点,你掌握了多少? 推荐阅读: 这些必会的计算机网络知识点你都掌握了吗 关于数据库事务和锁的必会知识点,你掌握了多少? 关于数据库索引,必须掌握的知识点 目录 ...

  2. 阿里面试官必问的12个MySQL数据库基础知识,哪些你还不知道?

    数据库基础知识 1.为什么要使用数据库 (1)数据保存在内存 优点: 存取速度快 缺点: 数据不能永久保存 (2)数据保存在文件 优点: 数据永久保存 缺点: 1)速度比内存操作慢,频繁的IO操作. ...

  3. Java基础86 MySQL数据库基础知识

    本文知识点(目录): 1.MySQL数据库的概述    2.MySQL数据库的管理[对数据库的操作](查询.删除.创建数据库,以及查询和修改数据库的编码模式)    3.表的管理[对数据库 表的操作] ...

  4. MySQL数据库基础知识复习

    现在是2020年寒假,这也是新年写的第一篇博客,用了十几天的时间自学了数据库基础部分,想总结一下得失同时并通过写博客来复习前面学的知识点. 个人: 1.本来是计划一周学完基础部分的178p但没能完成这 ...

  5. mysql数据库基础知识和认识

    mysql 创建一个用户 hail,密码 hail,指定一个数据库 haildb 给 hail mysql -u root -ppassworduse mysql;insert into user(h ...

  6. [mysql]数据库基础知识

    数据库管理系统DBMS 软件 bin config db (保存数据) 写程序: 数据库在本地 找到目录 添加数据 数据库在远程 socket连接上远程机器 socket发送命令 需要做的事情 程序 ...

  7. python week09 Mysql 数据库基础知识

    第一篇:初识数据库 注:<基础概念,不再赘述,点开链接查看> 第二篇:库相关操作 一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些 ...

  8. Mysql数据库基础知识(全)

    前言:本博文为个人笔记,记录了Mysql的一些基本操作,一般掌握本博文就可以了解数据库.表.数据项的增删改查,希望对大家的学习有所帮助. 首先下载PHPSTUDY,将Mysql配置为系统变量. 具体操 ...

  9. Mysql之基础知识笔记

    Mysql数据库基础知识个人笔记 连接本地数据库: mysql -h localhost -u root -p 回车输入数据库密码 数据库的基础操作: 查看当前所有的数据库:show database ...

随机推荐

  1. ndk http://www.th7.cn/Program/Android/201412/334955.shtml

    http://www.th7.cn/Program/Android/201412/334955.shtml http://ruikye.com/2014/08/30/androidstudio_ndk ...

  2. css3的一个小demo(箭头hover变化)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. HDU5033 building 单调栈+计算几何

    正解:单调栈 解题报告: 哇生气辽QAQ本来打了半天feel good都快调出来了然后说换题了QAQ(所以可能那题的代码会过一阵子再放上来了QAQ 不过还是大爆手速打了一通拿到首杀了嘻嘻 美滋滋辽 然 ...

  4. python2.X编码

    1.Python文件的编码 在Python文件中,可以在第一或第二行指定文件的编码格式(以注释的形式加),这也是Python语法规定的,见http://www.python.org/peps/pep- ...

  5. python中url解析 or url的base64编码

    目录 from urllib.parse import urlparse, quote, unquote, urlencode1.解析url的组成成分:urlparse(url)2.url的base6 ...

  6. json数据处理:读取文件中的json字符串,转为python字典

    方法1: 读取文件中的json字符串, 再用json.loads转为python字典 import json str_file = './960x540/config.json' with open( ...

  7. spring boot 自定义过滤器链

    spring boot 会按照order值的大小,从大到小的顺序来依次过滤. 贴下代码: package com.osp.ucenter; import org.springframework.boo ...

  8. CentOS6.5安装RHadoop

    1.首先安装依赖包(各个节点都要安装) [root@Hadoop-NN-01 ~]$ yum install gcc-gfortran #否则报”configure: error: No F77 co ...

  9. apply、map、applymap、Dropna

    DataFrame常用易混淆方法 apply && map && applymap 1.apply():作用在一维的向量上时,可以使用apply来完成,如下所示 2.m ...

  10. Django实现cookie&session以及认证系统

    COOKIE&SESSION 知识储备 由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie的工作原理是:由服务器产生内 ...