《深入浅出MySQL:数据库开发、优化与管理维护(第2版)》一一1.3 MySQL的配置

简介:

本节书摘来自异步社区出版社《深入浅出MySQL:数据库开发、优化与管理维护(第2版)》一书中的第1章,第1.3节,作者: 唐汉明 , 翟振兴 , 关宝军 , 王洪权 , 黄潇,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 MySQL的配置

深入浅出MySQL:数据库开发、优化与管理维护(第2版)
MySQL安装完毕后,大多数情况下都可以直接启动MySQL服务,而不需要设置参数。因为系统对所有的参数都有一个默认值。如果要修改默认值,则必须要配置参数文件。下面就Windows和Linux两种平台下的配置方法进行介绍。

1.3.1 Windows平台下配置MySQL

对于noinstall方式安装的MySQL,系统的参数配置、服务的启动和关闭都需要手工在命令窗口中完成。参数文件可以在多个位置进行设置,这里用一个C:my.cnf来进行操作,其他更详细的参数位置可以参考第24章中的介绍。

对于初学者来说,my.cnf并不知道该怎样配置。MySQL为用户提供了几个样例文件,位于解压后的目录下,文件名类似于my-.ini,其中“”分别代表了不同的环境特点,例如my-small.ini、my-large.ini分别代表了此文件适合于小型数据库和大型数据库。下面是一个my-small.ini的部分内容:

# 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.
…

# The following options will be passed to all MySQL clients
[client]
#password    = your_password
port         = 3306
socket       = /tmp/mysql.sock

# Here follows entries for some specific programs

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

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 8M
sort_buffer_size = 8M

[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout

上面样例中的粗体代表了不同方面的参数,通常我们配置最多的是[mysqld],也就是mysql服务器参数。如果将选择的my-*.ini文件另存为C:my.cnf文件,则MySQL实例启动的时候就会读取此配置文件。

对于图形化的安装方式,MySQL提供了一个图形化的实例配置向导,可以引导用户逐步进行实例参数的设置,具体操作步骤如下。

(1)单击“开始”→“所有程序”→“MySQL”→“MySQL Server 5.0”→“MySQL Server Instance Configuration Wizard”菜单,进入欢迎界面,如图1-12所示。
image

(2)单击“Next”按钮,进入选择配置类型界面,如图1-13所示。

image

界面中显示了MySQL提供的详细配置(Detailed Configuration)和标准配置(Standard Configuration)两种配置类型。它们的区别在于详细配置列出了更详细的个性化配置向导,配置过程相对复杂而且较慢;标准配置是一个通用的配置,配置过程简单快速。这里用详细配置为例来进行介绍。

(3)选择“Detailed Configuration”单选按钮,单击“Next”按钮,进入如图1-14所示的界面。
image

此界面中列出了MySQL的3种应用方式。

boll Developer Machine(开发机),使用最小数量的内存。

boll Server Machine(服务器),使用中等大小的内存。

boll Dedicated MySQL Server Machine(专用服务器),使用当前可用的最大内存。

(4)这里选择“Developer Machine”单选按钮,单击“Next”按钮,进入数据库用途选择界面,如图1-15所示。

image

该界面中列出了3种数据库用途选项。

boll Multifunctional Database(多功能数据库),此选项对事务性存储引擎(InnoDB)和非事务性(MyISAM)存储引擎的存取速度都很快。

boll Transactional Database Only(事务性数据库),此选项主要优化了事务性(InnoDB)存储引擎,但是非事务性存储引擎(MyISAM)也可以使用。

boll Non-Transactional Database Only(非事务型数据库),此选项主要优化了非事务性(MyISAM)存储引擎,注意事务性存储引擎(InnoDB)不能使用。

存储引擎在后面的章节中将会专门介绍,读者可以理解为不同的表类型。

(5)这里选择“Multifunctional Database”单选按钮。单击“Next”按钮,进入InnoDB数据文件目录配置界面,如图1-16所示。

InnoDB的数据文件会在数据库第一次启动的时候创建,默认会创建在MySQL的安装目录下。用户可以根据实际的空间状况进行路径的选择。这里保留默认值。

(6)单击“Next”按钮,进入并发连接设置界面,如图1-17所示,其中有3个选项,其含义分别如下。

boll Decision Support(DSS)/OLAP(决策支持系统),设置连接数为20。

boll Online Transaction Processing(OLTP)(在线事务系统),设置连接数为500。

boll Manual Setting(手工设置),手工输入并发连接数。

image

(7)选择“Decision Support(DSS)/OLAP”单选按钮后,单击“Next”按钮,进入网络选项设置,如果1-18所示。

image

本界面中主要设置MySQL服务的端口号,选项“Enable TCP/IP Networking”表示是否运行TCP/IP连接,而选项“Enable Strict Mode”表示是否采用严格模式来启动服务。至于什么是MySQL的模式,将在本书的第16章中详细介绍。

(8)选择“Enable TCP/IP Networking”和“Enable Strict Mode”复选框后,单击“Next”按钮,进入默认字符集选择界面,如图1-19所示。

image

该界面上的3种选项分别表示如下。

boll Standard Character Set(标准字符集),默认是Latin1。

boll Best Support For Multilingualism(对多语言支持最好的字符集),是指UTF-8。

boll Manual Selected Default Character Set/Collation(手工选择字符集)。

字符集将会在第9章中详细介绍。

(9)选择“Standard Character Set”单选按钮后,单击“Next”按钮,进入Windows选项设置界面,如图1-20所示。

image

这个界面上部是设置MySQL是否作为Windows的一个服务,如果是,设置一个服务名称并设置是否Windows重启的时候自动装载。这里保留默认选项,将服务名称改为“MySQL5”。下面的“Include Bin Directory in Windows PATH”复选框表示MySQL的Bin目录是否写入Windows的PATH中,这里选中该复选框。

(10)单击“Next”按钮,进入MySQL的安全选项配置界面,如图1-21所示。

image

图1-21中显示了MySQL的两个安全设置复选框,“Modify Security Settings”复选框确定是否修改默认root密码,因为默认的root密码是空,所以建议用户一定要修改;“Create An Anonymous Account”复选框确定是否创建一个匿名用户,建议用户不要创建,因为这样会给系统带来安全漏洞。这里为了简便起见,将root口令改为123(正式的生产环境中一定要采用更为复杂的密码)。

(11)单击“Next”按钮,进入准备执行界面,如图1-22所示。
image

(12)确认设置没有问题后,单击“Execute”按钮,开始执行。执行成功后的界面如图1-23所示。
image

单击“Finish”按钮后,安装过程全部完成。这时可以发现,Windows的服务列表中已经增加了“MySQL5”这一项,如图1-24所示,可以通过启动、停止这个服务来启动和关闭MySQL。

image

1.3.2 Linux平台下配置MySQL

在Linux下配置MySQL和在Windows下以noinstall方式配置非常类似,区别在于参数文件的位置和文件名不同。Linux下也可以在多个位置部署配置文件,大多数情况下都放在/etc下,文件名称只能是my.cnf(在Windows下文件名称可以是my.ini)。

对于初学者来说,和Windows下类似,还是建议用MySQL自带的多个样例参数文件来代替实际的参数文件。在Linux下,如果安装方式是RPM包,则自带的参数文件会放到/usr/share/mysql下,如下所示:

[root@localhost mysql]# pwd
/usr/share/mysql
[root@localhost mysql]# ls *.cnf
my-huge.cnf  my-innodb-heavy-4G.cnf  my-large.cnf  my-medium.cnf  my-small.cnf

用户可以根据实际需求选择不同的配置文件复制到/etc下,改名为my.cnf,并根据实际需要做一些配置的改动。MySQL启动的时候会读取此文件中的配置选项。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1991 152
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1389 156
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
1097 2
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
767 158
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
897 156
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
928 161
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。

推荐镜像

更多