MYSQL:关系型数据库

存储引擎:负责将逻辑层的概念转化为物理层机制,在物理层完成物理机制。

支持事务:transaction

必须满足的条件:ACID(一致性,持久性,原子性,隔离性)

锁:并发访问

随机访问:数据在磁盘上是随机存储的

安装:

OS Vendor使用操作系统安装:

以CentOS为例:mysql,

mysql-server:

mysql-devel:编译安装时需要

MySQL官方提供的安装:官方网站:www.mysql.com

源码编译安装

通用二进制格式程序包安装

rpm包安装

还可以通过镜像下载:http://mirrors.sohu.com/

MySQL的配置文件:my.cnf,集中式多段配置文件

MySQL服务器程序:mysqld

客户端程序:mysql, mysqldump, mysqladmin

建议在生产环境中将mysql安装在逻辑卷上,这样方便以后的管理,空间不够的话可以增大空间。

datadir: /var/lib/mysql/

datadir: /usr/local/mysql/data/

mysqld: mysql,:mysql

以mysql用户的身份操作,属主和属组都为mysql,并且对所操作的目录有读和写的权限。

安装操作

1:创建逻辑卷并挂载

创建磁盘分区

#fdisk /dev/sda

创建物理分区

#pvcreate /dev/sda{3,5}

创建卷组为myvg

#vgcreate myvg /dev/sda{3,5}

创建逻辑卷mydata

#lvcreate -L 20G -n mydata myvg

对其进行格式化

#mke2fs -t ext4 -L MYDATA -b 2048 /dev/myvg/mydata

进行挂载

#mkdir /mydata

#mount -a

要使得能够开机自动挂载,需要编辑配置文件/etc/fstab

在/mydata下创建data目录

#mkdir/mydata/data

2:解压安装

添加系统用户mysql

#useradd -r mysql

修改属主和属组

#chown -R mysql:mysql /mydata/data

下载的文件解压到/usr/local/

#tar xfmysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/local

在这里,我们还有查看是否安装启动别的mysql版本的服务器,如果有,那么我们需要将其关闭

#ss -tanl其中3306端口需要是关闭状态

在/usr/local/下

#ln -sv mysql-5.5.33-linux2.6-x86_64 mysql

#chown -R root:mysql /usr/local/mysql/*

#cd mysql/support-files有样例,我们可以根据自己的需要选择

将选择的文件复制一份到/etc/目录下并修改文件名为my.cnf

#cp my-large.cnf /etc/my.cnf

3:修改配置文件

#vim /etc/my.cnf

找到相关设置进行修改操作

thread_concurrency = 4并发核心数,如果物理核心为2,这里就可以填写4

在下面添加datadir = /mydata/data

添加

innodb_file_per_table = 1  每表一个表空间

服务脚本

#cp mysql.server /etc/rc.d/init.d/mysqld

添加mysql服务

#chkconfig --add mysqld

启动mysql

#service mysqld start

这时候显示启动失败了,分析出来我们要先初始化,因而我们安装mysql时要注意,第一次安装启动时要进行初始化,对所出现的问题我们进行处理

先将/mydata/data/下的所有文件删除掉

#rm -rf /mydata/data/*

进行初始化

#cd /usr/local/mysql/

#scripts/mysql_install_db --user=mysql --datadir=/mydata/data/初始化成功

启动服务

#service mysqld start

这时候还不能连接客户端

# vim /etc/profile.d/mysql.sh

export PATH=/usr/local/mysql/bin:$PATH

执行脚本

# . /etc/profile.d/mysql.sh

#mysql就可以进入了

4:因为我们的安装不在标准路径下,所以还要导出相关文件

导出帮助文件

#vim /etc/man.config

MANPATH /usr/local/mysql/man

导出头文件

#ln -sv /usr/local/mysql/include /usr/local/mysql

导出库文件

#vim /etc/ld.so.conf.d/mysql.conf

/usr/local/mysql/lib

至此我们的mysql配置完成。

mysql> show [global|session] variables;显示服务器参数变量

有些变量的值可以修改,能够改变mysql的工作特性

有些可以动态调整,即刻生效;

另外一些只能修改配置文件后,重启生效;

mysql> show [global|session] status;显示服务器状态变量,记录了当前包括过去的时间内mysql的运行统计数据

MySQL用户名:USERNAME@HOST

mysql客户端执行命令:

客户端命令:不需语句结束符

mysql> help

服务器端命令:特指SQL语句,必须有语句结束符,默认为分号;

mysql> help COMMAND

用户管理:

创建用户:

CREATE USER username@host [IDENTIFIED BY 'password'];

用户或主机可以使用通配符:

%:匹配任意长度的任意字符;

_: 匹配任意单个字符;

例如:CREATE USER‘wpuser’@‘172.16.%.%’IDENTIFIED BY 'wppass'

允许172.16.网段的主机连接创建wpuser用户  密码为wppass

用户授权:GRANT ALL PRIVILEGES ON dbname.tablename TO username@host [IDENTIFIED BY 'password'];

dbname.tablename  dbname表示库名

tablename表示表名

修改用户密码:

1、mysql> SET PASSWORD FOR username@host=PASSWORD('password');

2、# mysqladmin -uusername password 'password' -p

-p 后面跟以前的密码

删除用户:DROP USER username@host;

授权

GRANT ALL ON *.* TO 'root'@'172.16.%.%' IDENTIFIED BY 'mypass';有特殊符号需要用引号引起来

mysql>SELECT VERSION();    显示版本号

mysql>SHOW DATABASES;      显示数据库

mysql>SELECT user,host,password FROM user; 从user表查询user,host,password 相关信息

mysql>FLUSH PRIVILEGES;   重读授权表

加密码:

mysql>SET PASSWORD FOR‘root‘@host=PASSWORD('password');

创建表:

mysql>CREATE TABLE tb_name (col1 defination, col2 defination, ..., key defination);

删除表:

mysql>DROP TABLE tb_name;

INSERT INTO  :插入内容

SELECT 字段FROM表WHERE ;

字段:

col1, col2

*

col1 AS NEWNAME, col2,

比较运算:>, =, <=, =, !=

NULL: IS NULL, IS NOT NULL

LIKE :

%: 任意长度的任意字符

_:任意单个字符

IN (LIST)

RLIKE: 正则表达式书写模式

UPDATE 表名SET字段名=值WHERE;

DELETE FROM 表名WHERE ;

mysql>

quit, \q退出

delimiter, \d变换语句结束符,定义使用的结束符

go, \g不知道结束符而把语句送到服务器端去执行

use, \u设定默认数据库

ego, \G不知道结束符而把语句送到服务器端去执行,并且将每一行的结果纵向显示

system, \!不退出当前mysql客户端程序而执行系统命令

status, \s显示当前mysql服务器的状态信息

mysql:执行方式有两种

交互式方式:

-h, --host=指定要连接的远程主机

-u, --user=指定用户名

-p, --password=密码

-D db_name, --database=可以直接将某个指定的数据库设定为数据库

-e 'SQL_Statement;'不会连接到主机,而是将命令送到对方主机后直接将结果取回来

批处理模式:(使用sql脚本)

mysql OPTIONS < script.sql

mysql> source /path/to/script.sql

#vim test.sql

create database wpdb;

Create user‘wpuser’@’172.16.%.%’identified by‘wppass’;

Create user‘wpuser’@’localhost’identified by‘wppass’;

Grant all wpdb.*‘wpuser’@’172.16.%.%’;

Grant all wpdb.*‘wpuser’@’localhost’;

#mysql -uroot -pmypass < test.sql

mysqld, mysql: /etc/my.cnf配置文件

/etc/my.cnf, /etc/mysql/my.cnf, $MYSQL_BASE/my.cnf, ~/.my.cnf

#vim .my.cnf

[client]

user=root

host=localhost

password=mypass

#chmod 600 .my.cnf 修改权限对当前用户有效

这样本机用户就不用每次都指定用户名、主机名、密码了,而其他用户不会有权限,

显示所支持的所有字符集:

mysql> SHOW CHARACTER SET;

显示所有字符集的排序规则:

mysql> SHOW COLLATION;

关系型数据库:

Constraint:

主键:primary key

不能为空,惟一;

惟一键:uniq key

可以为空,惟一;

外键:foreign key

引用性约束

检查性约束:

0

MySQL基础操作练习(所属的库叫做testdb):

新建如下表(包括结构和内容):

ID    Name          Age     Gender     Course

1     Ling Huchong   24      Male       Huashan

2     Huang Rong    19      FemaleEmen

3     Lu Wushaung   18      FemaleHengshan

4     Zhu Ziliu52      MaleKongdong

5     Chen Jialuo22      MaleShaolin

创建库:

mysql>create database testdb

启用testdb库

mysql>use testdb

创建表tb1

mysql>CREATE TABLE tb1 (ID TINYINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, Name CHAR(30) NOT NULL UNIQUE KEY, Age TINYINTUNSIGNED, Gender CHAR(1) DEFAULT 'M', Course VARCHAR(50) NOT NULL);

查看数据库

mysql> show databases;

DESCRIPTION tb1 查看有几个字节

插入内容

mysql> insert into tb1 values (1,'Ling Huchong',24,'Male','Huashan');

mysql> insert into tb1 values (2,'Huang Rong',19,'Female','Emen');

mysql> insert into tb1 values (3,'Lu Wushaung',18,'Female','Hengshan');

mysql> insert into tb1 values (4,'Zhu Ziliu',52,'Male','Kongdong');

mysql> insert into tb1 values (5,'Chen Jialuo',22,'Male','Shaolin');

至此tb1表所有内容都存在了,可以查看一下:

2、完成如下操作

(1)找出性别为女性的所有人;

mysql> SELECT name FROM tb1 WHERE Gender='Female';

(2)找出年龄大于20的所有人;

mysql> SELECT name FROMtb1WHERE Age>20;

(3)修改Zhu Ziliu的Course为Wudang;

mysql> UPDATEtb1SET Course='Wudang' WHERE name='Zhu Ziliu';

(4)删除年龄小于等于19岁的所有人;

mysql> DELETE FROMtb1WHERE Age<=19;

(5)创建此表及所属的库;

(6)授权给testuser对testdb库有所有访问权限;

mysql> GRANT ALL ON testdb.* TO 'testuser'@'%';

mysql>DROP TABLE tb1;删除表tb1

mysql的安装和基本命令_MySQL安装以及简单命令用法相关推荐

  1. mysql 表引擎无法更新_Mysql安装archive引擎更新表引擎

    1,在mysql命令行中安装Archive引擎 1,查找mysql plugins lib目录,看目录中是否存在Archive的so; mysql > show variables like'p ...

  2. mysql安装文档_mysql安装文档

    linux下使用yum安装mysql --安装的mysql版本为mysql55-mysql-server.x86_64 1.安装 查看有没有安装过: yum list installed mysql* ...

  3. mysql安装主从配置_MySQL安装与主从配置

    我是ssh远程 配置的:略微有些不同,大家自己斟酌.1.安装MySQLsudo yum install mysql mysql-server sudo chgrp -R mysql /var/ 我是s ...

  4. 安装mysql第三步卡死_Mysql 安装服务无法启动解决方案与使用的一般使用指令

    问题描述: 在安装mysql 时,如果第一次没安装成功,第二次重装可能出现莫名奇妙的情况.通过一番尝试,发现,安装往上的教程还是无法成功安装的主要原因是第一次安装虽然未成功,但是mysql 默认的33 ...

  5. 安装MYSQL的思考与分析_mysql安装和基本使用

    mysql AB sun oracle/mysql/SQL/DB2/sybase sql    --结构化查询语句 ANSI 2003    --国际标准化的结构化查询 mysql        my ...

  6. mysql典型安装和完全安装的区别_MySQL安装详解(安装版本mysql-5.5.25)

    步骤1:选择安装类型 有3种安装类型:Typical(典型安装).Complete(完全安装)和Custom(定制安装). Typical(典型安装)安装:只安装MySQL服务器.mysql命令行客户 ...

  7. mysql的安装胚子_Mysql安装

    此次在官网下载了mysql-5.7.30-winx64 配置环境变量 增加系统环境变量: MYSQL_HOME ,值是MySQL目录:F:\Mysql\mysql-5.7.30-winx64 在pat ...

  8. mysql安装的根目录_MySql安装及基础配置(一)

    [mysql] default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=D:\mysql-5. ...

  9. mysql默认几个库_MySQL 安装初始化mysql后,默认几个库介绍

    背景介绍: 当我们安装初始化mysql后,默认建了几个数据库,那么这些数据库有什么作用呢? mysql> show databases; +--------------------+ | Dat ...

最新文章

  1. Spacebuilder在Mono上运行修改备忘
  2. python中map函数的用法
  3. Oracle基本概念与数据导入
  4. jsp 或 php 等view之中使用javascript简单处理的使用技巧
  5. botstrap-栅格布局与栅格偏移
  6. 如何使用 vSphere Certificate Manager 替换 SSL 证书 (2097936)
  7. 为什么从事软件开发测试?
  8. 如何简单形象又有趣地讲解神经网络是什么
  9. python knn预测双色球_用KNN和回归分析进行预测(python)
  10. 2008 r2 server sql 中文版补丁_SQL Server各版本代号、补丁汇总(非官方)
  11. Gmail被逐出中国客户端也不能收邮件肿么破?
  12. inkscape推荐插件安装
  13. 微信开发者工具最新版本无法上传腾讯云代码(找不到腾讯云图标)
  14. hadoop 3.3.1 安装笔记
  15. 计算机组成原理:中央处理器(2)
  16. 读书笔记 摘自:《跟任何人都聊得来》
  17. 移动硬盘和电脑内置硬盘使用时的区别
  18. 【Python入门教程】第49篇 集合的子集
  19. 香港金融中心谁与争锋
  20. Intel Xeon E5-4650 VS AMD Opteron 6380

热门文章

  1. java短视频上传阿里云流程_短视频上传
  2. java io中断_JDK源码阅读:InterruptibleChannel 与可中断 IO
  3. ①你真的学会Java了吗?来自《卷Ⅰ》的灵魂提问
  4. Java并发篇_乐观锁与悲观锁
  5. Angular实现图片点击缩放组件
  6. CSS属性(display)
  7. WSFC真实场景仲裁处理
  8. OpenBSD基金会收到锤子科技约140万捐赠款
  9. Sybase常见问题
  10. if语句写阶跃函数C语言,C语言第四章分支语句.ppt