MySQL必须知道的常识

  • 前言

  书读百遍,其义自现。大家都知道,但是现在的社会真的很浮躁,又有多少人可以静下来看看书呢?!!只要一有问题就是百度,Google...实际上,书上写的很清楚,所有的解决方法都在书中,对于一个产品的了解,又有谁比编译出他的人更清楚呢!

写给自己,仅以自省!

  • 参考资料

MySQL官方手册5.1

  • MySQL程序概述:

mysqld是MySQL服务器

mysqld_safe、mysql.server是服务器启动脚本

mysql_install_db初始化数据目录和初始数据库

  • 访问服务器的客户程序

mysql是一个命令行客户程序,用于交互式或以批处理模式执行SQL语句。

mysqladmin是用于管理功能的客户程序。

mysqldump负责数据库备份。

  • 声明环境变量(编译安装)

echo ‘export PATH=/application/mysql/sbin:$PATH‘ >/etc/profile

  • mysql使用-e选项在shell命令行下执行SQL语句

shell> mysql -u root -p -e "show databases;"

shell> mysql -u root -p -e "SELECT User,Host FROM mysql.User;"

  • MySQL选项详解

/etc/my.cnf==>全局选项,就是启动选项

任何可以在运行MySQL程序时在命令行给出的长选项也可以在选项文件中给出。

在选项文件中指定选项的语法类似于命令行语法,例外的是要忽略掉两个破折号。

如果你有一个源代码分发,可以从support-file目录中找到名为my-xxxx.cnf的示例选项文件。

my-small.cnf默认配置:

[[email protected] support-files]# cat my-small.cnf
# Example MySQL config file for small systems.
#
# This is for a system with little memory (<= 64M) where MySQL is only used
# from time to time and it‘s important that the mysqld daemon
# doesn‘t use much resources.
#
# 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]
#password       = your_password
port            = 3306
socket          = /application/mysql5.1.72/tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port            = 3306
socket          = /application/mysql5.1.72/tmp/mysql.sock
skip-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K

# 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
# (using the "enable-named-pipe" option) will render mysqld useless!
# 
#skip-networking
server-id       = 1

# Uncomment the following if you want to log updates
#log-bin=mysql-bin

# binary logging format - mixed recommended
#binlog_format=mixed

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /application/mysql5.1.72/data
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /application/mysql5.1.72/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

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout

修改选项

shell> mysql --max_allowed_packet=16M 允许通信的最大长度

[mysql]

max_allowed_packet=16M

优先级:

MySQL程序首先检查环境变量-->选项文件-->命令行来确定给出了哪些选项。

如果多次指定一个选项,最后出现的选项占先。这说明环境变量具有最低的优先级,命令行选项具有最高优先级。

命令 模块
mysqld 从[mysqld]和[server]组读取选项
mysqld_safe 从[mysqld]、[server]、[mysqld_safe]和[safe_mysqld]组读取选项
mysql.server 从 [mysqld]和[mysql.server]组读取选项。
  • 服务器端脚本

--mysqld_safe

服务器启动脚本。如果mysqld-max存在,mysqld_safe试图启动它,否则启动mysqld。

mysqld_safe从选项文件的[mysqld]、[server]和[mysqld_safe]部分读取所有选项。

一般情况,你不应编辑mysqld_safe脚本。相反,应使用命令行选项或my.cnf选项文件的[mysqld_safe]部分的

选项来配置mysqld_safe。一般不需要编辑mysqld_safe来正确启动服务器。但是,如果你编辑,

将来升级MySQL后会覆盖你修改的mysqld_safe版本,因此你应对你修改的版本进行备份以便将来重装。

--mysql.server

服务器启动脚本。该脚本用于使用包含为特定级别的运行启动服务的脚本的运行目录的系统。它调用mysqld_safe来启动MySQL服务器。

mysql.server位于MySQL源码树MySQL安装目录下的support-files目录中。

如果你使用Linux 服务器RPM软件包(MySQL-server-VERSION.rpm),mysql.server脚本将安装到/etc/init.d目录下,名为mysqld。

mysql.server从 [mysql.server]和选项文件的[mysqld]部分读取选项。

--mysql_install_db

该脚本用默认权限创建MySQL授权表。通常只是在系统上首次安装MySQL时执行一次。

  • 选项修改参考

 --在线临时修改

+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| sort_buffer_size | 65536 |
+------------------+-------+
1 row in set (0.00 sec)
mysql> SET GLOBAL sort_buffer_size = 10 * 1024 * 1024;
mysql> \q
Bye
...
mysql> show variables like ‘sort_%‘;
+------------------+----------+
| Variable_name    | Value    |
+------------------+----------+
| sort_buffer_size | 10485760 |
+------------------+----------+
1 row in set (0.00 sec)

  --可写入my.conf内

[mysqld]
sort_buffer_size = 10 * 1024 * 1024
  • mysql> SHOW VARIABLES;查看系统变量及其值
mysql> show variables like ‘binlog_%‘;
+-----------------------------------------+-----------+
| Variable_name                           | Value     |
+-----------------------------------------+-----------+
| binlog_cache_size                       | 32768     |
| binlog_direct_non_transactional_updates | OFF       |
| binlog_format                           | STATEMENT |
| binlog_stmt_cache_size                  | 32768     |
+-----------------------------------------+-----------+
4 rows in set (0.00 sec)

补充:binlog_cache_size

在事务过程中容纳二进制日志SQL语句的缓存大小。二进制日志缓存是服务器支持事务存储引擎并且服务器启用了二进制日志(--log-bin选项)的前提下为每个客户端分配的内存。如果你经常使用大的,多语句事务,你可以增加该值以获得更有的性能。Binlog_cache_use和Binlog_cache_disk_use状态变量可以用来调整该变量的大小。

时间: 2024-08-08 01:16:04

MySQL必须知道的常识的相关文章

Mysql中自增字段(AUTO_INCREMENT)的一些常识

Mysql中自增字段(AUTO_INCREMENT)的一些常识 在系统开发过程中,我们经常要用到唯一编号.使用过mysql的人都应该知道,mysql有一个定义列为自增的属性:AUTO_INCREMENT. 指定了AUTO_INCREMENT的列必须要建索引,不然会报错,索引可以为主键索引,当然也可以为非主键索引.(不一定要做主键) 1 2 3 mysql> create table t4 (id int auto_increment); ERROR 1075 (42000): Incorrect

mysql常识以及存储引擎,锁和事务

常见的数据库系统: 1.甲骨文的Oracle 2.IBM的DB2 3.微软的Access和 SQL Server 4.开源PostgreSQL 5.开源MySQL mysql数据库三阶段: 初期开源数据库阶段 sun mysql阶段 oracle mysql阶段 OLTP:联机事务处理,面向基本的.日常的事务处理. OLAP:联机分析处理,数据仓库的主要应用. mysql分支版本(一些): MariaDB : Maria引擎室myisam存储引擎的升级版本,增加了对Hash join的支持和Se

Mysql常识

修改 Mysql 密码 C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqladmin -u root -p password 123456 Enter password mysql 启动错误1053:服务没有及时响应启动或者控制请求 解决方案来源: http://www.2cto.com/database/201209/153858.html my.ini文件不存在,拷贝my-small.ini文件,更名为my-ini文件,保存. MySQL执行s

mysql数据库中小常识

1.去掉mysql数据中某字段的值中间的空格 update tableName set 列名=replace(列名,空格,‘’) where 列名 like '% %' update student set sname=replace(sname,' ','') where sname like '% %' 这里用到了替换函数replace(列名,from_str,to_str),把字段名的值从from_str转换到to_str 2.去掉mysql数据库中某字段后面的空格 update tabl

阿里云centos中mysql的安装及一些常识知识

------------------------------------------------------------------- 阿里云centos中mysql的安装 工具WinSCP v5.7.0可以从windows上传文件到linux上 工具putty可以再windows上连接linux,用命令行操作很方便 将mysql以下三个包下载并上传到linux上,例如:/root/software MySQL-server-5.5.28-1.linux2.6.x86_64.rpm MySQL-

MySQL使用手册 -《狗嗨默示录》-

1.创建数据库 CREATE DATABASE database dbname 2.删除数据库 drop database dbname 3.备份sql server -- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\Mysql\MyNwind_1.dat' -- 开始 备份 BACKUP DATABASE pubs TO testBack 4.创建新表 create table tabname(

PHP扩展PDO MySQL之PDOStatement::bindParam vs bindValue

PHP扩展PDO MySQL之PDOStatement::bindParam vs bindValue技术 maybe yes 发表于2015-11-16 13:27 原文链接 : http://blog.lmlphp.com/archives/155/The_difference_of_PDOStatement_bindParam_and_bindValue_of_PHP_extension_PDO_MySQL  来自 : LMLPHP后院 前些日子将 LBlog 在线体验站点 http://

我眼中软件工程里的常识

来源:https://segmentfault.com/a/1190000006636138 作者:https://segmentfault.com/u/leftstick 背景 说起工程人员/团队应该具备的"常识",真正促使我认真思考这个问题,还是因为知乎的一篇贴跟没有常识的人聊天是一种怎样的体验?,里面笑料百出,各种由于"常识"不足导致的尴尬癌真真是忍俊不禁.但笑过之后我发现,所谓的"没常识",可能由多种原因导致,这点在知乎里多位答主都提到过

Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程

这篇文章主要介绍了Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程,需要的朋友可以参考下 准备篇 一.环境说明: 操作系统:Windows Server 2012 R2 PHP版本:php 5.5.8 MySQL版本:MySQL5.6.15 二.相关软件下载: 1.PHP下载地址: http://windows.php.net/downloads/releases/php-5.5.8-nts-Win32-VC11-x86.zip 2.MySQL下载地址: