热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Mysql的管理及使用

第1章Mysql的管理1.1连接管理mysqlmysql[options]#Linux或UNIXshell提示符(终端窗口)mysql--help#查看帮助信息mysql--v
第1章 Mysql的管理

1.1 连接管理mysql

mysql[options] #Linux或UNIX shell提示符(终端窗口)
mysql
--help #查看帮助信息
mysql
--version/-V #查看客户端程序的版本

01.常见的选项语法格式:

长格式(--

简易格式(-

02.通过指定的主机进行连接:

本地连接到在同一主机上运行的服务器

远程连接到在其他主机上运行的服务器

03.常见特定于客户机的连接选项

-u或--host=
-p
-h或--host=
--protocol= #协议
-P或--port=
-S或--socket=

1.2 数据库启动流程介绍

1 [root@db02 ~]# file /application/mysql/bin/mysqld
2
3 /application/mysql/bin/mysqld: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped

提示:单进程mysqld 其属性LSB即二进制的可执行文件,mysql.server便于我们通过SYS-V启动关闭的脚本

说明:support-files/mysql.server及mysqld_safe都是脚本文件,最后都调用mysqld二进制文件启动

1.3 mysql数据库的关闭与启动

01.数据库关闭命令

1 /etc/init.d/mysqld stop

2 mysqladmin -uroot -poldboy123 shutdown 

注意:生产环境下禁止使用下述方式关闭mysql软件

kill -9 #利用系统进程管理命令关闭MySQL
kill pid # pid即数据库服务对应的进程号
l killall mysqld #mysqld即数据库服务对应的进程名
l pkill mysqld #mysqld即数据库服务对应的进程名

02.数据库启动命令

1 /etc/init.d/mysqld start

2 application/mysql/bin/mysqld_safe [--user=mysql] & 

1.3.1 perror查看错误详细内容

在mysql使用过程中,由于操作系统引起的文件目录不存在或sql语句错误引起的报错,这些error会有相应的代码如errorN、ErrcodeN,这里"N"代表具体的错误号

1 [root@db02 ~]# perror 126 127 135
2 OS error code 126: Required key not available
3 MySQL error code 126: Index file is crashed
4 OS error code 127: Key has expired
5 MySQL error code 127: Record file is crashed
6 MySQL error code 135: No more room in record file

1.4 Mysql初始化配置文件

即在数据库启动之前通过/etc/my.cnf告诉启动程序一系列预设置的选项

配置文件功能:影响服务器进程的启动;影响到客户端程序

实例01

 1 ./mysqld_safe --basedir=/application/mysql --datadir=/application/mysql/data --socket=/tmp/mysql.sock --user=mysql #指定mysql启动参数 

注意:由于指定了socket导致无法找到该文件,此时mysql无法进行正常连接,故使用mysql -uroot -poldboy123 -S /tmp/mysql.sock即可

1.4.1 配置my.cnf的方法

使用不同的"标签/模块"明确指定影响哪部分功能,代表一类程序

实例02

1 vim /etc/my.cnf
2
3 [mysqld]
4 basedir=/application/mysql
5 datadir=/application/mysql/data
6 socket=/tmp/mysql.sock
7 log-error=/var/log/mysql.log
8 port=3307 #其中,用户无需指定
9
10 [mysql]
11 socket=/tmp/mysql.sock
12 user=root
13 password=oldboy123 #此处通过socket登录,无需配置端口
14 /etc/init.d/mysqld restart #重启生效

说明:此时检查进程信息,可以看到与我们手动配置的my.cnf一致

1 [root@db02 ~]# ps -ef |grep [my]sql
2
3 root 3411 1918 0 15:52 pts/1 00:00:00 /bin/sh /application/mysql/bin/mysqld_safe
4
5 mysql 3548 3411 0 15:52 pts/1 00:00:00 /application/mysql/bin/mysqld --basedir=/application/mysql --datadir=/application/mysql/data --plugin-dir=/application/mysql/lib/plugin --user=mysql --log-error=/var/log/mysql.log --pid-file=/application/mysql/data/db02.pid --socket=/tmp/mysql.sock --port=3307

1.4.2 配置文件读取顺序

/etc/my.cnf↓ ↓ ↓
/etc/mysql/my.cnf
$MYSQL_HOME
/my.cnf
defaults
-extra-file
~/.my.cnf

说明:假设4个配置文件都存在, 同时使用 --defaults-extra-file指定了参数文件,这时如果有一个"参数变量"在5个配置文件中都出现了,那么后面的配置文件中的参数变量值会覆盖前面配置文件中的参数变量值,就是说会使用 ~/. my.cnf中设置的值

注意&#xff1a;若使用 ./bin/mysqld_safe守护进程启动mysql数据库时&#xff0c;使用了 --defaults-file&#61;<配置文件的绝对路径>参数&#xff0c;这时只会使用这个参数指定的配置文件

1.5 Mysql多实例配置

多个mysqld&#43;多套my.cnf&#43;多套数据&#61;>生产环境无用

思路&#xff1a;

01.初始化两套数据到不同目录mysql_install_db
/data/3306
/data/330802.两套配置文件
/data/3306/my.cnf
/data/3308/my.cnf03.两个socket
socket
&#61;/data/3306/mysql.sock
socket
&#61;/data/3308/mysql.sock04.两套实例
/application/mysql/bin/mysqld_safe --defaults-file&#61;/data/3306/my.cnf
/application/mysql/bin/mysqld_safe --defaults-file&#61;/data/3306/my.cnf05.设计启动脚本

1.5.1 实例配置文件及程序脚本

注意&#xff1a;需首先关闭当前mysql服务&#xff0c;防止造成端口冲突/etc/init.d/mysqld stop

1 [root&#64;db02 ~]# vim /data/3306/my.cnf
2 [client]
3 port &#61; 3306
4 socket &#61; /data/3306/mysql.sock
5
6 [mysqld]
7 user &#61; mysql
8 port &#61; 3306
9 socket &#61; /data/3306/mysql.sock
10 basedir &#61; /application/mysql
11 datadir &#61; /data/3306/data
12 log-bin &#61; /data/3306/mysql-bin
13 server-id &#61; 6
14
15 [mysqld_safe]
16 log-error&#61;/data/3306/oldboy_3306.err
17 pid-file&#61;/data/3306/mysqld.pid

my.cnf

[root&#64;db02 ~]# vim /data/3306/mysql
#
!/bin/sh
port
&#61;3306
mysql_user
&#61;"root"
CmdPath
&#61;"/application/mysql/bin"
mysql_sock
&#61;"/data/${port}/mysql.sock"
mysqld_pid_file_path
&#61;/data/3306/3306.pid
start(){
if [ ! -e "$mysql_sock" ];thenprintf "Starting MySQL...\n"/bin/sh ${CmdPath}/mysqld_safe --defaults-file&#61;/data/${port}/my.cnf --pid-file&#61;$mysqld_pid_file_path 2>&1 > /dev/null &sleep 3elseprintf "MySQL is running...\n"exit 1fi
}
stop(){
if [ ! -e "$mysql_sock" ];thenprintf "MySQL is stopped...\n"exit 1elseprintf "Stoping MySQL...\n"mysqld_pid&#61;&#96;cat "$mysqld_pid_file_path"&#96;if (kill -0 $mysqld_pid 2>/dev/null)thenkill $mysqld_pidsleep 2fifi
}restart(){printf
"Restarting MySQL...\n"stopsleep 2start
}
case "$1" instart)start;;stop)stop;;restart)restart;;*)printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac

mysql

1.5.2 创建3308端口配置文件

1 \cp /data/3306/my.cnf /data/3308/
2 \cp /data/3306/mysql /data/3308/
3 sed -i &#39;s/3306/3308/g&#39; /data/3308/my.cnf
4 sed -i &#39;s/server-id &#61; 6/server-id &#61; 8/g&#39; /data/3308/my.cnf
5 sed -i &#39;s/3306/3308/g&#39; /data/3308/mysql

1.5.3 创建数据目录授权

1 mkdir -p /data/{3306,3308}/data
2 chown -R mysql.mysql /data/
3 chmod 700 /data/{3306,3308} #增加其安全性

1.5.4 初始化数据并创建错误日志文件

1 cd /application/mysql/scripts
2 ./mysql_install_db --defaults-file&#61;/data/3306/my.cnf --basedir&#61;/application/mysql --datadir&#61;/data/3306/data --user&#61;mysql
3 ./mysql_install_db --defaults-file&#61;/data/3308/my.cnf --basedir&#61;/application/mysql --datadir&#61;/data/3308/data --user&#61;mysql
4
5
6 touch /data/3306/oldboy_3306.err
7 touch /data/3308/oldboy_3308.err

说明&#xff1a;5.6.36特殊性即不会自动创建错误日志文件

1.5.5 启动数据库并进行测试

1 /data/3306/mysql start

2 /data/3308/mysql start

3

4 sleep 5 

注意&#xff1a;由于mysql服务的默认端口为3306&#xff0c;故在启动之前需先将mysql服务停止运行并关闭开机自启动

1 [root&#64;db02 scripts]# netstat -lntup|grep 330
2 tcp 0 0 :::3306 :::* LISTEN 1793/mysqld
3 tcp 0 0 :::3308 :::* LISTEN 2001/mysqld
4
5 [root&#64;db02 ~]# ps -ef |grep [m]ysql
6 root 1217 1 0 22:40 ? 00:00:00 /bin/sh /application/mysql/bin/mysqld_safe --defaults-file&#61;/data/3306/my.cnf --pid-file&#61;/data/3306/3306.pid
7 mysql 1403 1217 0 22:40 ? 00:00:01 /application/mysql/bin/mysqld --defaults-file&#61;/data/3306/my.cnf --basedir&#61;/application/mysql --datadir&#61;/data/3306/data --plugin-dir&#61;/application/mysql/lib/plugin --user&#61;mysql --log-error&#61;/data/3306/oldboy_3306.err --pid-file&#61;/data/3306/3306.pid --socket&#61;/data/3306/mysql.sock --port&#61;3306
8
9 root 1426 1 0 22:40 ? 00:00:00 /bin/sh /application/mysql/bin/mysqld_safe --defaults-file&#61;/data/3308/my.cnf --pid-file&#61;/data/3308/3308.pid
10 mysql 1611 1426 0 22:40 ? 00:00:01 /application/mysql/bin/mysqld --defaults-file&#61;/data/3308/my.cnf --basedir&#61;/application/mysql --datadir&#61;/data/3308/data --plugin-dir&#61;/application/mysql/lib/plugin --user&#61;mysql --log-error&#61;/data/3308/oldboy_3308.err --pid-file&#61;/data/3308/3308.pid --socket&#61;/data/3308/mysql.sock --port&#61;3308

1.5.5.1  加入开机自启

1 vim /etc/rc.local

2

3 /data/3306/mysql start

4 /data/3308/mysql start 

1.5.6 mysql多实例登录

1 mysql -S /data/3306/mysql.sock

2 mysql -S /data/3308/mysql.sock #或mysql -h 10.0.0.52 -P 3306 

 

第2章 Mysql用户管理

2.1 用户的介绍

01.定义&#xff1a;用户名&#43;主机域(host指定要登陆本机的用户主机&#xff0c;而非本机)

02.功能作用&#xff1a;连接数据库、管理数据库对象及数据

03.连接数据库&#xff1a;

A.定义用户&#xff1a;用户名&#43;主机域、密码

B.定义权限&#xff1a;对不同对象进行权限(角色)定义

grant 权限 on 权限范围(对象) to 用户 identified by &#39;密码&#39;;

04.权限(角色)&#xff1a;

对数据库的读、写等操作&#xff0c;如create、select、insert、update等

数据库定义好的一组权限的定义&#xff0c;如all privileges、replication slave

05.权限范围&#xff1a;

全库级别&#xff1a;*.* (所有数据库对象)
单库级别&#xff1a;banana.
* (oldboy单库下所有对象)
单表级别&#xff1a;banana.test (单表级别)

注意&#xff1a;当在多个权限范围上设置了同一个用户的权限时&#xff0c;以综合最大权限为准。故在一般情况下不要在多个权限范围内设置权限&#xff0c;如库级别oldboy.*、表级别oldboy.test

06.用户&#xff1a;

repl&#64;localhost
repl&#64;
&#39;10.0.0.53&#39;
repl&#64;
&#39;10.0.0.%&#39;(%为通配符&#xff0c;匹配所有)或10.0.0.0/255.0.0.0
repl&#64;
&#39;10.0.0.5%&#39;

#网段带匹配符%则必须加&#39; &#39;&#xff0c;用户可加可不加

2.2 用户权限实例

查看当前所有用户(选择)

select user,password,host from mysql.user;

创建用户

语法&#xff1a;CREATE USER &#39;用户&#39;&#64;&#39;主机&#39; IDENTIFIED BY &#39;密码&#39;;
实例&#xff1a;create user
&#39;banana&#39;&#64;&#39;10.0.0.%&#39; identified by &#39;123&#39;;

授权用户

语法&#xff1a;GRANT ALL ON *.* TO &#39;用户&#39;&#64;&#39;主机&#39;;
实例&#xff1a;grant all on banana.
* to banana&#64;&#39;172.16.1.%&#39;;

  其他实例

grant all on *.* to banana&#64;&#39;172.16.1.%&#39; identified by &#39;123&#39;; #创建用户&#xff0c;同时进行授权
grant all on
*.* to banana&#64;&#39;localhost&#39; identified by &#39;123&#39; with grant option; #授权单表root一样的权限
grant
select,create,insert,update on banana.* to banana&#64;&#39;10.0.0.%&#39; identified by &#39;123&#39;; #只对banana数据库下的对象进行增insert create、改update、查select

收回用户权限

语法&#xff1a;REVOKE INSERT ON *.* FROM &#39;用户&#39;&#64;&#39;主机&#39;;
实例&#xff1a;revoke drop on banana.
* from &#39;banana&#39;&#64;&#39;10.0.0.%&#39;;

查看用户对应权限

语法&#xff1a;SHOW GRANTS FOR &#39;用户&#39;&#64;&#39;主机&#39;;
实例&#xff1a;show grants
for banana&#64;&#39;10.0.0.%&#39;;

注意&#xff1a;mysql内自带的命令可以大写&#xff0c;而自身定义的用户管理需区分大小写&#xff1b;尽量不要修改授权表

说明&#xff1a;使用数据库自带的命令无需修改授权表如drop、grant&#xff0c;而使用如delete、update等命令则需修改授权表&#xff0c;如下

删除用户

语法&#xff1a;drop user &#39;user&#39;&#64;&#39;主机域;
实例&#xff1a;drop user banana&#64;&#39;10.0.0.52&#39;;delete from mysql.user where user&#61;&#39;banana&#39; and host&#61;&#39;localhost&#39;; #强制删除用户(危险)flush privileges;

总结说明&#xff1a;可以授权的用户权限create, select, insert, update, delete, drop, reload, shutdown, process, file, references, index, alter, show databases, super, create temporary tables, lock tables, execute, replication slave, replication client, create view, show view, create routine, alter routine, create user, event, trigger, create tablespace

2.3 Mysql忘记密码的解决方法

01.停止mysql服务

 1 /etc/init.d/mysqld stop 

02.添加参数启动服务

 1 /application/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking --user&#61;mysql &  

说明&#xff1a;在此模式下启动情况为&#xff1a;无密码登陆、网络用户无法登陆(只能本地登录)、与授权有关的命令均无法执行&#xff0c;如grant,revoke,drop user,create user

03.修改密码

1 mysql
2
3 mysql> use mysql
4 mysql> update mysql.user set password&#61;PASSWORD(&#39;123&#39;) where user&#61;&#39;root&#39; and host&#61;&#39;localhost&#39;; #只针对5.6
5 mysql> flush privileges;

04.重启mysql服务

 1 /etc/init.d/mysqld restart 

05.登录验证

 1 mysql -uroot -p123 

至此&#xff0c;密码修改成功

 

第3章 MySQL客户端

3.1 Mysql客户端命令

SQL是用户用来管理及控制数据库的专用语言

mysql&#xff1a;

用于数据库连接管理&#xff1b;将用户SQL语句发送到服务器

mysqladmin&#xff1a;

命令行管理工具

mysqldump&#xff1a;

备份数据库和表的内容

3.1.1 ①mysql客户端接口自带功能

\h 或 help 或 ? #获取帮助信息&#xff0c;如help grant
\G #格式化输出(行转列)&#xff0c;如select
* from mysql.user\G
\T 或 tee #记录操作日志&#xff0c;如tee
/tmp/mysql.log 正误均记录
\c 或 CTRL
&#43;c #退出&#xff0c;如CTRL&#43;d,exit,\q,quit等
\s 或 status #查看数据库负载、版本及连接等状态信息
\. 或 source #调用SQL脚本&#xff0c;如source world.sql;
\u 或use #进入
/切换数据库&#xff0c;如use world

快捷键

上下翻页
tab 补全表名
ctrl
&#43; C 退出
ctrl
&#43; L 清屏

3.1.2 ②mysqladmin命令

命令帮助&#xff1a;mysqladmin --help
语法&#xff1a;mysqladmin
-u -p commands

实例&#xff1a;
mysqladmin version
mysqladmin processlist
mysqladmin status
mysqladmin ping
mysqladmin shutdown
mysqladmin variables

3.1.3 ③mysqldump命令

命令帮助&#xff1a;mysqldump --help基本语法&#xff1a;
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS]
--databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS]
--all-databases [OPTIONS]

3.2 SQL语句

3.2.1 DDL 数据定义语言

定义对象&#xff1a;库(名字、特性)、表(表名字、列信息)

对于库定义&#xff1a;创建、删除、修改(本身和库中的对象->表,视图,存储过程,函数,触发器)

       表定义&#xff1a;创建(定义表结构)、删除(对于表本身)、修改(只针对表结构非表内容)

3.2.1.1  库定义

查看库

show databases;
show databases like
&#39;%ban%&#39;; #模糊匹配

创建库定义

语法&#xff1a;CREATE DATABASE db_name CHARACTER SET charset_name COLLATE collation_name;
实例&#xff1a;create database banana;create database banana_tong character
set gbk collate gbk_chinese_ci; #指定字符集建库

说明&#xff1a;在一些SQL语句的结尾处要使用";"分号或者使用"\g"或"\G"来结束语句的运行

修改库字符编码

语法&#xff1a;ALTER DATABASE [db_name] CHARACTER SET charset_name COLLATE collation_name;
实例&#xff1a;alter database banana charset gbk;

删除库

drop database banana;

切库

use baanana;

3.2.1.2  表定义

表属性&#xff1a;字段、数据类型、索引 &#61;&#61;>默认&#xff1a;字符集、引擎

表定义(列->必须定义&#xff0c;至少一列)&#xff1a;

表名、列名、列属性(数据类型、列约束)

列定义的范围说明&#xff1a;

1)数据类型->字符/数字

2)约束条件->子健、外键、唯一

3)列属性->比较特殊的定义

定义表之前需先进入数据库

use world;

创建表

语法&#xff1a;CREATE TABLE 表名 (列名 列定义)
实例&#xff1a;create table test(id
int);create table student(idcard int ,name char(30),sex char(4)); #创建多列

查看表结构

desc student;

查看建表语句

show create table student;

修改表定义(表名)

rename table student to test1;
alter table test1 rename to people;

添加表特性

alter table people add addr char(40) NOT NULL;
alter table people add age
int(4) after name;
alter table people add tel varchar(
15) first; #同时添加多个列定义
alter table people add id
int(10) first,add sex char(4) after name;

删除表结构(列字段)

alter table people drop sex;

修改表定义/数据类型

alter table people modify name char(20);
alter table people change name people_name
char(30);

3.2.2 DCL 数据库控制语言

用户授权&#xff1a;grant

语法&#xff1a;GRANT ALL ON *.* TO &#39;user&#39;&#64;&#39;localhost&#39;;
实例&#xff1a;grant
select,create,insert,update on banana.* to &#39;banana&#39;&#64;&#39;10.0.0.%&#39; identified by &#39;123&#39;; #创建用户的同时进行授权

回收权限&#xff1a;revoke

语法&#xff1a;REVOKE INSERT ON *.* FROM sys&#64;localhost;
实例&#xff1a;revoke drop,delete on
banana.* from sys&#64;localhost;

3.2.3 DML 数据操作语言

插入数据

语法&#xff1a;insert into <表名> [(<字段名1>[,..<字段名n > ])] values (值1 )[,(值n )]
实例&#xff1a;insert into banana values(
1,&#39;boy&#39;); #插入一行数据insert into banana values(1,&#39;boy&#39;), (2,&#39;girl&#39;); #插入多行数据#只针对某一列插入数据
insert into test(id,name) values(
1,&#39;boy&#39;);

更新/修改表(切记要有where条件)

update test2 set name&#61;&#39;haha&#39; where name&#61;&#39;girl&#39;;

删除表内容(切记要有where条件)

delete from test where id&#61;1; # 逻辑删除&#xff0c;一行一行删。
truncate table test; # 物理删除&#xff0c;pages(block) &#xff0c;效率高insert into &#96;test&#96; values(
1,&#39;apple&#39;),(2,&#39;pear&#39;),(3,&#39;banana&#39;), (4,&#39;lemon&#39;), (5,&#39;orange&#39;)

3.2.3.1  [企业案例]生产环境中d伪删除

01.为表添加一个state

TINYINT说明&#xff1a;即字段类型&#xff0c;若设置为UNSIGNED类型&#xff0c;只能存储从0到255的整数&#xff0c;不能用来储存负数

1 mysql> alter table test2 add state tinyint(2) not null default 1;
2 mysql> desc test2;
3
4 &#43;-------&#43;----------&#43;------&#43;-----&#43;---------&#43;-------&#43;
5 | Field | Type | Null | Key | Default | Extra |
6 &#43;-------&#43;------------&#43;------&#43;-----&#43;---------&#43;-------&#43;
7 | id | int(11) | YES| | NULL | |
8 | name | varchar(20)| YES| | NULL | |
9 | state | tinyint(2) | NO | | 1 | |
10 &#43;-------&#43;-------------&#43;------&#43;-----&#43;------&#43;---&#43;

02.查看当前的state状态

1 mysql> select * from test2;
2
3 &#43;----&#43;---------&#43;-------&#43;
4 | id | name | state |
5 &#43;----&#43;---------&#43;-------&#43;
6 | 1 | boy | 1 |
7 | 2 | girl | 1 |
8 | 3 | inca | 1 |
9 | 4 | zuma | 1 |

03.更新并修改state数据为0

1 mysql> update test2 set state&#61;0 where name&#61;&#39;boy&#39;;
2 mysql> select * from test2;
3
4 &#43;----&#43;---------&#43;-------&#43;
5 | id | name | state |
6 &#43;----&#43;---------&#43;-------&#43;
7 | 1 | boy | 0 |
8 | 2 | girl | 1 |
9 | 3 | inca | 1 |
10 | 4 | zuma | 1 |

04.当查询时使用where条件&#xff0c;此时只会显示state&#61;1的记录&#xff0c;其效果与删除类似

1 mysql> select * from test2 where state&#61;1;
2
3 &#43;----&#43;---------&#43;-------&#43;
4 | id | name | state |
5 &#43;----&#43;---------&#43;-------&#43;
6 | 2 | girl | 1 |
7 | 3 | inca | 1 |
8 | 4 | zuma | 1 |

3.2.3.2  mysql安全模式(防止不加条件误删)

1 [root&#64;db02 ~]# mysql -uroot -p123 -U
2
3 mysql> update test2 set name&#61;&#39;oldgirl&#39;;
4
5 ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column

说明&#xff1a;mysql命令加上选项-U后&#xff0c;当发出没有where或limit关键字的update或delete时&#xff0c;mysql程序拒绝执行

3.2.4 DQL数据查询语言

语法&#xff1a;SELECT <字段1,字段2,...> FROM <表名> WHERE <表达式>

其中&#xff0c;select、from、where是不能随便改的&#xff0c;是关键字&#xff0c;支持大小写

查看用户的连接信息

select user,password,host from mysql.user;#模糊查询数据
select user,password,host from mysql.user where user like &#39;sy%&#39;;

查看test2表中的信息

select * from sys.test2; #查看所有信息
select id,name from sys.test2;

特殊信息查询

select id,name from test2 where id&#61;2;
select id,name from test2 where id>2 and id<4; #查看id大于2且小于4的记录
select id,name from test2 where name&#61;&#39;sys&#39;;
select id,name from test2 order by id asc; #提取记录排序select id,name from test2 order by limit 1,3; #显示跳过第一行后的三行(需要与排序配合使用)

注意&#xff1a;select必须同from搭配使用

 

此笔记是本人学习摘记整理而成&#xff0c;此为初稿(尚有诸多不完善之处)&#xff0c;原创作品允许转载&#xff0c;转载时请务必以超链接形式标明文章原始出处&#xff0c;作者信息和本声明&#xff0c;否则将追究法律责任。http://www.cnblogs.com/bananaaa/

 

转:https://www.cnblogs.com/bananaaa/p/8066827.html



推荐阅读
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 本文详细介绍了在MySQL中如何高效利用EXPLAIN命令进行查询优化。通过实例解析和步骤说明,文章旨在帮助读者深入理解EXPLAIN命令的工作原理及其在性能调优中的应用,内容通俗易懂且结构清晰,适合各水平的数据库管理员和技术人员参考学习。 ... [详细]
  • 在配置Nginx的SSL证书后,虽然HTTPS访问能够正常工作,但HTTP请求却会遇到400错误。本文详细解析了这一问题,并提供了Nginx配置的具体示例。此外,还深入探讨了DNS服务器证书、SSL证书的申请与安装流程,以及域名注册、查询方法和CDN加速技术的应用,帮助读者全面了解相关技术细节。 ... [详细]
  • 如何优化MySQL数据库性能以提升查询效率和系统稳定性 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 如何有效防御网站中的SQL注入攻击
    本期文章将深入探讨网站如何有效防御SQL注入攻击。我们将从技术层面详细解析防范措施,并结合实际案例进行阐述,旨在帮助读者全面了解并掌握有效的防护策略。希望本文能为您的网络安全提供有益参考。 ... [详细]
  • 在重新安装Ubuntu并配置Django和PyCharm后,忘记测试MySQL连接,导致在后续配置过程中遇到错误:ERROR 2003 (HY000) - 无法连接到本地服务器 ‘127.0.0.1’ (111)。本文将详细介绍该错误的原因及解决步骤,帮助用户快速恢复MySQL服务的正常运行。我们将从检查网络配置、验证MySQL服务状态、配置防火墙规则等方面入手,提供全面的故障排除指南。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 【Linux】CentOS 7 远程连接指南:高效安全的远程管理方法
    在 CentOS 7 中实现高效且安全的远程管理,本文详细介绍了如何检查和安装配置 OpenSSH。首先,通过 `yum list installed` 命令检查系统是否已安装 OpenSSH,若未安装,则使用 `yum install openssh-server` 进行安装。随后,配置 SSH 服务以确保其安全性和稳定性,包括修改默认端口、禁用 root 登录等关键步骤。此外,还提供了常见问题的解决方案,帮助用户顺利进行远程连接。 ... [详细]
author-avatar
淡漠初夏0_176
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有