基本使用

三、基本使用

1 MySQL的常见命令

# 1.查看当前所有的数据库
show databases;
# 2.切换到指定的库
use 库名
# 3.查看当前库的所有表
show tables;
# 4.查看其它库的所有表
show tables from 库名;
# 5.查看表结构
desc 表名;
# 6.查看服务器的版本
# 方式一:登录到mysql服务端
select version();
# 方式二:没有登录到mysql服务端,在bash窗口下
mysql --version
# 或
mysql --V
# 7.退出
exit
#或者
quit
# 8.查看当前mysql服务端的一些信息,比如编码、连接方式、当前用户等
\s

2 MySQL的语法规范

  • 不区分大小写,但建议关键字大写,表名、列名小写。

  • 每条命令用分号结尾

  • 每条命令根据需要,可以进行缩进或换行

  • 注释

    • 单行注释:#
    • 多行注释:/* */

3 SQL的语言分类

  • DML(Data Manipulation Language):数据操作语言,用于添加、删除、修改、查询数据库记录,并检查数据完整性。

  • DDL(Data Definition Language):数据定义语言,用于库和表的创建、修改、删除。

  • DCL(Data Control Language):数据控制语言,用于定义用户的访问权限和安全级别。

  • DQL(Data Query Language):数据查询语言

  • TCL(Transaction Control Language):事务控制语言

4 mysql的配置文件

首先先看看你的mysql在哪,通过which命令

which mysql

显示出目录比如我的是下面这个

/usr/bin/mysql

接下来就可以针对这个目录通过命令查看配置文件在哪了:

# 查看 mysql 配置文件加载顺序
/usr/bin/mysql --verbose --help | grep -A 1 'Default options'

然后在下面会出现一些信息,比如:

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
# 这个信息的意思是:
# 服务器首先读取的是 /etc/my.cnf 文件,如果前一个文件不存在则继续读 /etc/mysql/my.cnf 文件,依此类推,如若还不存在便会去读~/.my.cnf文件。

一般来说,mysql配置文件在Windows下叫my.ini或者my-default.ini,它保存在MySQL的数据目录下,可以通过命令行登录mysql,输入命令查看:

select @@basedir;  # 查看安装目录的路径
select @@datadir;  # 查看数据文件的存放目录

配置文件都在数据目录下存放。

在Linux下叫my.cnf,该文件一般位于/etc/my.cnf,可以通过以下命令查找:

find / -name my.cnf

如果以上文件都不存在,则说明在对mysql编译完成之后你没有对mysql进行配置,需要你自己复制一份mysql提供的默认配置文件到/etc目录中,然后改名为my.cnf,修改文件的属组和属组并赋予执行权限。

配置文件的内容:

[client] # 客户端默认的连接参数
# socket=MYSQL
port=3306 # 客户端连接服务器端时使用的端口号,默认的端口号为 3306
default-character-set=utf8  # 默认编码
[mysql]  # 客户端启动立刻加载下面的配置
no-beep  # 发生错误时不要发出蜂鸣声
default-character-set=utf8  # 客户端默认编码
[mysqld] # 服务端启动立刻加载下面的配置
port=3306 # 表示 MySQL 服务器的端口号
character_set_server=utf8  #服务端默认编码(数据库级别)
# basedir="C:/Program Files/MySQL/MySQL Server 5.7/"  # 表示 MySQL 的安装路径
datadir=C:/ProgramData/MySQL/MySQL Server 5.7/Data  # 表示 MySQL 数据文件的存储位置,也是数据表的存放位置
default-storage-engine=INNODB  # 创建数据表时,默认使用的存储引擎
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"  # 表示 SQL 模式的参数,通过这个参数可以设置检验 SQL 语句的严格程度
log-output=FILE # 日志选择文件类型
general-log=0  # 是否启用一般查询日志
general_log_file="QCFA-CL6GV5.log"  # 一般查询日志文件的名称。
slow-query-log=1  # 是否启用慢查询日志
slow_query_log_file="QCFA-CL6GV5-slow.log"  # 慢查询日志文件的名称。
long_query_time=10  # 慢查询日志包含执行时间超过long_query_time秒的SQL语句
log-error="QCFA-CL6GV5.err"  # 错误记录。
server-id=1  #服务器ID。
lower_case_table_names=1
secure-file-priv="C:/ProgramData/MySQL/MySQL Server 5.7/Uploads"
max_connections=151  # 表示允许同时访问 MySQL 服务器的最大连接数。其中一个连接是保留的,留给管理员专用的
table_open_cache=2000  # 表示所有进程打开表的总数
tmp_table_size=81M  # 表示内存中每个临时表允许的最大大小
thread_cache_size=10  # 表示缓存的最大线程数
myisam_max_sort_file_size=100G  # 表示 MySQL 重建索引时所允许的最大临时文件的大小
myisam_sort_buffer_size=152M  # 表示重建索引时的缓存大小
key_buffer_size=8M  # 表示关键词的缓存大小
read_buffer_size=64K  # 表示 MyISAM 表全表扫描的缓存大小
read_rnd_buffer_size=256K  # 表示将排序好的数据存入该缓存中
innodb_flush_log_at_trx_commit=1 #每次commit 日志缓存中的数据刷到磁盘中。通常设置为 1,意味着在事务提交前“日志已被写入磁盘”, 事务可以运行更长以及服务崩溃后的修复能力。如果你愿意减弱这个安全,或你运行的是比较小的事务处理,可以将它设置为 0 ,以减少写日志文件的磁盘 I/O。
innodb_log_buffer_size=1M # InnoDB 将日志写入日志磁盘文件前的缓冲大小。理想值为 1M 至 8M。大的日志缓冲允许事务运行时不需要将日志保存入磁盘而只到事务被提交(commit)。因此,如果有大的事务处理,设置大的日志缓冲可以减少磁盘I/O。
innodb_buffer_pool_size=8M #InnoDB 用来高速缓冲数据和索引内存缓冲大小。 更大的设置可以使访问数据时减少磁盘 I/O。
innodb_log_file_size=48M #日志组中的每个日志文件的大小(单位 MB)。可以减少刷新缓冲池的次数,从而减少磁盘 I/O。但是大的日志文件意味着在崩溃时需要更长的时间来恢复数据。
innodb_thread_concurrency=25 # InnoDB尝试将InnoDB内并发的操作系统线程数小于或等于此变量给出的限制(InnoDB使用操作系统线程来处理用户事务)。一旦线程数达到此限制,就会在“先进先出”(FIFO)队列中将其他线程置于等待状态以供执行。等待锁的线程不计入并发执行线程的数量。
innodb_autoextend_increment=64 # 增量大小(以MB为单位),用于在自动扩展的InnoDB系统表空间文件变满时扩展其大小。
innodb_buffer_pool_instances=8 #InnoDB缓冲池分区的区域数。对于具有数千兆字节范围的缓冲池的系统,将缓冲池划分为单独的实例可以提高并发性,通过减少争用,因为不同的线程读写缓存页面。
innodb_concurrency_tickets=5000 #确定可以同时进入InnoDB的线程数。
innodb_old_blocks_time=1000 #指定插入旧子列表的块在第一次访问后必须保留的长度(以毫秒为单位),然后才能将其移动到新的子列表。
innodb_open_files=300 # 它指定MySQL可以一次打开的最大.ibd文件数。最小值为10。
innodb_stats_on_metadata=0 # 启用此变量后,InnoDB会在元数据语句期间更新统计信息。
innodb_file_per_table=1 # 当启用时,InnoDB会为每个新创建的表存储数据和索引.在单独的.ibd文件中,而不是在系统表空间中。
innodb_checksum_algorithm=0 #指定如何生成和验证存储在InnoDB表空间的磁盘块中的校验和。使用以下值列表:0表示crc32,1表示strict_crc32,2表示innodb,3表示strict_innodb,4表示无,5表示strict_none。
back_log=80  # back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。
flush_time=0  # 如果将此值设置为非零值,则每个flush_time秒都会关闭所有表以释放资源。将未刷新的数据同步到磁盘。此选项最适用于资源最少的系统。
join_buffer_size=256K # 用于普通索引扫描,范围索引扫描和不使用的连接的缓冲区的最小大小索引,从而执行全表扫描。
max_allowed_packet=4M  # 一个数据包或任何生成/中间字符串的最大大小
max_connect_errors=100 # 如果来自主机的多个连续连接请求在没有成功连接的情况下中断,则服务器会阻止该主机执行进一步的连接。
open_files_limit=4161  # #更改mysqld可用的文件描述符的数量。如果mysqld为您提供错误“打开太多文件”,则应尝试增加此选项的值。
sort_buffer_size=256K  # 表示用于排序的缓存大小
table_definition_cache=1400  #可以存储在定义高速缓存中的表定义(来自.frm文件)的数量。如果使用大量表,则可以创建大型表定义高速缓存以加快表的打开。表定义高速缓存占用较少与普通表缓存不同,它不使用文件描述符。
binlog_row_event_max_size=8K  # 指定基于行的二进制日志事件的最大大小(以字节为单位)。如果可能,将行分组为小于此大小的事件。该值应为256的倍数。
sync_master_info=10000  # #如果此变量的值大于0,则复制从站将其master.info文件同步到磁盘。
sync_relay_log=10000  #如果此变量的值大于0,则MySQL服务器将其中继日志同步到磁盘
sync_relay_log_info=10000  #如果此变量的值大于0,则复制从站将其relay-log.info文件同步到磁盘

以上内容根据自己的需要对配置文件进行配置,一般来说除了字符集更改一下之外,其它的可以保持默认,以后有需求再更改。注意修改配置文件后一定要重启服务才能生效。

上一篇:MyISAM中的索引方案


下一篇:MySQL-进阶知识