mysql安装到简单语句

数据库概念:文件作为数据库,数据格式千差万别

将保存数据的地方统一起来

MySQL:用于管理文件的一个软件(两个程序)  一款应用软件,用来帮你操作文件的

只要是基于网络通信,底层都是socket

    服务端:

-socket服务端通信

-收发消息(本地文件操作)

-解析命令(sql语句)

客户端:  (客户端可以有很多个,python,java,php,c++都可以编程一个客户端,用代码指定ip port连接上服务端即可操作)

-socket客户端通信

-收发消息(发送指令)

-解析命令(sql语句)

DBA:数据库管理员

sql语句优化  (不同的客户端连同一个服务器,语言不同无法实现交流,所以应该有共同的语言 》》解析指令sql语句)

RDBMS:数据库管理系统

mysql只是一种能够帮助我们管理数据的软件,还有其他类似的软件也是通过发送指令来帮你管理数据库。

关系型数据库:存储数据的时候,对于数据有条件限制

数据与数据之间有关联

通常都是以表格的方式存储

1、第一步需要创建表结构

oracle /sqlite /db2 /sql server /MySQL /access

非关系型数据库:数据存储方式是k,v键值对的形式

redis/mongodb/memcache

总结:mysql就是帮助我们远程在文件上做相应操作的

文件夹(库)

文件(表)>>>表头:字段

数据/记录(表数据)

MySQL

安装  服务端和客户端

客户端连接服务器

基本操作  学习sql语句规则,指定服务端做任何操作

cmd = input(MySQL>>>:)

1、将mysql 启动文件路径添加到环境变量

2、将mysqld(服务端)制作成系统服务(开机自启动)(制作之前一定要先把mysql关闭)

mysqld --install

3、设置(修改)密码

    第一次修改密码,没有原密码,直接输入新密码:mysqladmin -uroot -p password 123

    第一次修改完密码以后,之后再修改密码需要输入:mysqladmin -uroot -p123 password 123456

4、破解密码(忘记密码的时候使用)

    (1)先关闭服务器

    (2)以跳过用户密码认证模式(跳过授权表)重启mysqld服务器:mysqld --skip-grant-tables

      (3)客户端直接以无密码的方式登录root用户修改密码:mysql -uroot -p

    (4)修改管理员密码,修改mysql库里面的user表(尽量以密文设置密码,调用                      password=password(密码))where后面是加限制

update mysql.user set password=password(88404620) where user='root' and host='localhost';

        刷新权限:flush privileges;

    (5)先关闭跳过验证的服务器,以正常模式启动服务端

命令行杀死mysqld服务:    (a)一定要先将mysqld杀死:

【mac系统下】:ps aux | grep msqld/node【可以是任何想看的进程(根据进程名)】

sudo lsof -i :3306【查看指定端口的进程】

【mac系统下】:kill -9 <PROCESS_ID> 【杀死进程】

【win系统下】:tasklist |finstr mysqld 【找到进程号(查看mysqld进程)】

【win系统下】:tasklist /F /PID 'PID号' 【终止,杀死mysqld进程】

(b)查看计算机当前运行程序数:

【mac系统下】:launchctl list 【查看所有进程服务,一般可查看PID】

【win系统下】:services.msc

    (6)服务管理正常启动mysqld,输入用户密码正常登录

****

解决编码问题

mysql命令(查看编码):\s 或者show variables like "%char%";

            发现我们创建的数据库、数据表编码果然是latin:show create database mysql;

show create table user;

        统一字符编码:

【mac系统下】:

(1)mysql/support-files下面有my-default.cnf:

拷贝mysql安装目录下support-files下面的my-default.cnf文件到/etc目录下;

修改:

搜索找到:[client] 的default-character-set=utf-8

[mysqld] default-character-set=utf-8

                            统统修改为utf-8即可!

(2)support-files下面是没有my-default.cnf:

                    进入/etc文件夹中(注意:/etc是隐藏文件);

创建my.cnf文件

注意️:修改后重启服务器才会生效

my.cnf内容:

****

# Example MySQL config file for medium systems.

#

# This is for a system with little memory (32M - 64M) where MySQL plays

# an important part, or systems up to 128M where MySQL is used together with

# other programs (such as a web server)

#

# MySQL programs look for option files in a set of

# locations which depend on the deployment platform.

# You can copy this option file to one of those

# locations. For information about these locations, see:

# http://dev.mysql.com/doc/mysql/en/option-files.html

#

# In this file, you can use all long options that a program supports.

# If you want to know which options a program supports, run the program

# with the "--help" option.

# The following options will be passed to all MySQL clients

[client]

default-character-set=utf8

#password = your_password

port = 3306

socket = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server

[mysqld]

character-set-server=utf8

init_connect='SET NAMES utf8

port = 3306

socket = /tmp/mysql.sock

skip-external-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

character-set-server=utf8

init_connect='SET NAMES utf8'

# Don't listen on a TCP/IP port at all. This can be a security enhancement,

# if all processes that need to connect to mysqld run on the same host.

# All interaction with mysqld must be made via Unix sockets or named pipes.

# Note that using this option without enabling named pipes on Windows

# (via the "enable-named-pipe" option) will render mysqld useless!

#

#skip-networking

# Replication Master Server (default)

# binary logging is required for replication

log-bin=mysql-bin

# binary logging format - mixed recommended

binlog_format=mixed

# required unique id between 1 and 2^32 - 1

# defaults to 1 if master-host is not set

# but will not function as a master if omitted

server-id = 1

# Replication Slave (comment out master section to use this)

#

# To configure this host as a replication slave, you can choose between

# two methods :

#

# 1) Use the CHANGE MASTER TO command (fully described in our manual) -

# the syntax is:

#

# CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,

# MASTER_USER=, MASTER_PASSWORD= ;

#

# where you replace , ,  by quoted strings and

#  by the master's port number (3306 by default).

#

# Example:

#

# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,

# MASTER_USER='joe', MASTER_PASSWORD='secret';

#

# OR

#

# 2) Set the variables below. However, in case you choose this method, then

# start replication for the first time (even unsuccessfully, for example

# if you mistyped the password in master-password and the slave fails to

# connect), the slave will create a master.info file, and any later

# change in this file to the variables' values below will be ignored and

# overridden by the content of the master.info file, unless you shutdown

# the slave server, delete master.info and restart the slaver server.

# For that reason, you may want to leave the lines below untouched

# (commented) and instead use CHANGE MASTER TO (see above)

#

# required unique id between 2 and 2^32 - 1

# (and different from the master)

# defaults to 2 if master-host is set

# but will not function as a slave if omitted

#server-id = 2

#

# The replication master for this slave - required

#master-host =

#

# The username the slave will use for authentication when connecting

# to the master - required

#master-user =

#

# The password the slave will authenticate with when connecting to

# the master - required

#master-password =

#

# The port the master is listening on.

# optional - defaults to 3306

#master-port =

#

# binary logging - not required for slaves, but recommended

#log-bin=mysql-bin

# Uncomment the following if you are using InnoDB tables

#innodb_data_home_dir = /usr/local/mysql/data

#innodb_data_file_path = ibdata1:10M:autoextend

#innodb_log_group_home_dir = /usr/local/mysql/data

# You can set .._buffer_pool_size up to 50 - 80 %

# of RAM but beware of setting memory usage too high

#innodb_buffer_pool_size = 16M

#innodb_additional_mem_pool_size = 2M

# Set .._log_file_size to 25 % of buffer pool size

#innodb_log_file_size = 5M

#innodb_log_buffer_size = 8M

#innodb_flush_log_at_trx_commit = 1

#innodb_lock_wait_timeout = 50

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

# Remove the next comment character if you are not familiar with SQL

#safe-updates

default-character-set=utf8

[myisamchk]

key_buffer_size = 20M

sort_buffer_size = 20M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

---------------------------------------------------------------------------------------------------------

还有一种方式是在终端插入:

                        进入cd /ect

                        编辑sudo vim my.cnf

                        粘贴上面my.cnf内容,esc ==> :wq! ️有冒号

注意,这里一定要sudo,因为etc是重要目录,创建的文件不用sudo试没法保存的!

【windows系统下】:

mysql命令:\s  查看编码

修改配置文件,执行时会自动查找my.ini文件

mysql不输用户名和密码,会默认以游客模式登陆,不好!

# my.ini配置文件特点

[mysql]

            # 终端输入mysql打头的命令就会加载下面的配置

username='root'  # 演示确实加载该文件,但是username叫user才正确

password = '123'

[mysqld]

            通用配置:

[mysqld]

character-set-server=utf8

collation-server=utf8_general_ci

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

    ️重新启动mysql服务端,配置才会生效

----------------------------------------------------------------

启动

服务端(最好用管理员登录)

mysqld

    客户端(要新开一个窗口)

mysql -h 127.0.0.1 -P 3306 -uroot -p

        也支持简写(在本机登录mysql服务端):mysql -uroot -p

        回车后输入密码,不用管直接敲回车

sql语句第一条命令:

注意️:输入sql语句的时候,一定要用英文分号结束

查看所有数据库(诠释文件夹和库概念):show databases;

        如果输入的sql语句出错,不想执行的话可以在后面跟上\c取消该命令的执行

退出客户端:exit,quit

----------------------------------------------------------------

基本sql语句操作——对数据的增删改查

️sql书写错误,只要没加分号,可以加\c使前面的sql语句失效

针对文件夹的【库】

增:create databases db1 charset utf-8;

        查:show create database db1;(查创建的指定数据库)

          show databases;(查看所有数据库)

        改:alter database db1 charset gbk;

        删:drop database db1;

    针对文件的【表】

文件首先需要在文件夹下面,所以在操作文件之前,应该先确定操作的是哪个文件夹下面的文件

(1)切换到指定的库内

use 库名;

            select database();  # 查看当前所在的库

(2)操作

增:create table userinfo(id int,name char);  # 必须指定类型char(16)最好规定好长度,不然默认是1

            多个文件,解耦管理

查:show tables;

show create table userinfo;

              desc userinfo  相当于describe userinfo;

            改:alter table userinfo modify name char(16);

                提醒:在创建char类型字段的时候,建议加上数字char(16)

                更改stu表中sex字段名为char(5)的gender新字段: alter table stu change gender sex char(5);

            删:drop table userinfo;

    针对数据的【记录】

增:insert into db1.t1 values(1,'egon'),(2,'kevin'),(3,'jason');  # into可加可不加,db1可以不指定,默认就是在当前库下

查:select id,name from db1.t1;  # db1可不指定,默认当前库下

select * from t1;

        改:update db1.t1 set name='wpp' where id>1;

            update db1.t1 set name='wpr' where id =2 or id =3;  # 判断条件多时,最好加上括号

删:delete from db1.t1 where id=3;

          delete from t1 where name='wpp';  # 这里注意如果少了一个引号,后面无论敲什么都没有用了,需要将引号补全

表操作

----------------------------------------------------------------

存储引擎

存储引擎的作用就是规定了数据存储时的存储结构,由实际业务决定。

文件格式有很多种,对应的软件也有很多种txt,pdf等

针对不同类型的文件,需要对应有不同的软件帮助我们去操作

查看所有的存储引擎:show engines;

    mysql存储引擎介绍:

#InnoDB 存储引擎

支持事务,其设计目标主要面向联机事务处理(OLTP)的应用。其

特点是行锁设计、支持外键,并支持类似Oracle 的非锁定读,即默认读取操作不会产生锁。 从MySQL 5.5.8 版本开始是默认的存储引擎。

InnoDB 存储引擎将数据放在一个逻辑的表空间中,这个表空间就像黑盒一样由InnoDB 存储引擎自身来管理。从MySQL 4.1(包括4.1)版本开始,可以将每个InnoDB 存储引擎的 表单独存放到一个独立的ibd 文件中。此外,InnoDB 存储引擎支持将裸设备(row disk)用 于建立其表空间。

InnoDB 通过使用多版本并发控制(MVCC)来获得高并发性,并且实现了SQL 标准 的4 种隔离级别,默认为REPEATABLE 级别,同时使用一种称为netx-key locking 的策略来 避免幻读(phantom)现象的产生。除此之外,InnoDB 存储引擎还提供了插入缓冲(insert buffer)、二次写(double write)、自适应哈希索引(adaptive hash index)、预读(read ahead) 等高性能和高可用的功能。

对于表中数据的存储,InnoDB 存储引擎采用了聚集(clustered)的方式,每张表都是按 主键的顺序进行存储的,如果没有显式地在表定义时指定主键,InnoDB 存储引擎会为每一 行生成一个6 字节的ROWID,并以此作为主键。

InnoDB 存储引擎是MySQL 数据库最为常用的一种引擎,Facebook、Google、Yahoo 等 公司的成功应用已经证明了InnoDB 存储引擎具备高可用性、高性能以及高可扩展性。对其 底层实现的掌握和理解也需要时间和技术的积累。如果想深入了解InnoDB 存储引擎的工作 原理、实现和应用,可以参考《MySQL 技术内幕:InnoDB 存储引擎》一书。

#MyISAM 存储引擎

不支持事务、表锁设计、支持全文索引,主要面向一些OLAP 数 据库应用,在MySQL 5.5.8 版本之前是默认的存储引擎(除Windows 版本外)。数据库系统 与文件系统一个很大的不同在于对事务的支持,MyISAM 存储引擎是不支持事务的。究其根 本,这也并不难理解。用户在所有的应用中是否都需要事务呢?在数据仓库中,如果没有ETL 这些操作,只是简单地通过报表查询还需要事务的支持吗?此外,MyISAM 存储引擎的 另一个与众不同的地方是,它的缓冲池只缓存(cache)索引文件,而不缓存数据文件,这与 大多数的数据库都不相同。

#NDB 存储引擎

年,MySQL AB 公司从Sony Ericsson 公司收购了NDB 存储引擎。NDB 存储引擎是一个集群存储引擎,类似于Oracle 的RAC 集群,不过与Oracle RAC 的share everything 结构不同的是,其结构是share nothing 的集群架构,因此能提供更高级别的 高可用性。NDB 存储引擎的特点是数据全部放在内存中(从5.1 版本开始,可以将非索引数 据放在磁盘上),因此主键查找(primary key lookups)的速度极快,并且能够在线添加NDB 数据存储节点(data node)以便线性地提高数据库性能。由此可见,NDB 存储引擎是高可用、 高性能、高可扩展性的数据库集群系统,其面向的也是OLTP 的数据库应用类型。

#Memory 存储引擎

正如其名,Memory 存储引擎中的数据都存放在内存中,数据库重 启或发生崩溃,表中的数据都将消失。它非常适合于存储OLTP 数据库应用中临时数据的临时表,也可以作为OLAP 数据库应用中数据仓库的维度表。Memory 存储引擎默认使用哈希 索引,而不是通常熟悉的B+ 树索引。

#Infobright 存储引擎

第三方的存储引擎。其特点是存储是按照列而非行的,因此非常 适合OLAP 的数据库应用。其官方网站是http://www.infobright.org/,上面有不少成功的数据 仓库案例可供分析。

#NTSE 存储引擎

网易公司开发的面向其内部使用的存储引擎。目前的版本不支持事务, 但提供压缩、行级缓存等特性,不久的将来会实现面向内存的事务支持。

#BLACKHOLE

        黑洞存储引擎,可以应用于主备复制中的分发主库。

查看不同存储引擎存储表结构文件特点:create table t1(id int)engine=innodb;

create table t2(id int)engine=myisam;

                                create table t3(id int)engine=blackhole;  # 往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录

create table t4(id int)engine=memory;  # 在重启mysql或者重启机器后,表内数据清空

insert into t1 values(1);

insert into t2 values(1);

insert into t3 values(1);

insert into t4 values(1);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,527评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,314评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,535评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,006评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,961评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,220评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,664评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,351评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,481评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,397评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,443评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,123评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,713评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,801评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,010评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,494评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,075评论 2 341

推荐阅读更多精彩内容

  • 刚开始读<向着光亮那方>,不知道是自己理解有障碍,还是经历的还不够多,之前读的和现在读的都明白的并不透彻。在这里你...
    yongyongyong阅读 201评论 0 0
  • 看到了完整的大西北的日出,这里的日出比北方要晚很多,道路上只有我们一辆车,总是能让人想起电影里的场景,于是对自驾去...
    秋风里的记忆阅读 286评论 0 2
  • 现在的任务一直都是搞h5,导致ios写的不顺手了,毕竟ios才是老本行,搞了个卡片效果。 卡片效果,主要需要注意的...
    butterflyer阅读 4,542评论 2 25
  • 我家娃又出去玩了 欢迎来做客
    Nancycycycy阅读 127评论 0 1