MySQL 5.6以上解压版的服务配置和使用

2017-01-07 10:40:38来源:oschina作者:HappyBKs人点击


下载mysql的5.7.1的zip版mysql-5.7.16-winx64.zip。本机就用windows作为server了。



注意:5.6以上版本的安装与之前的略有不同。


我的解压路径:D:/IDE/MySQL Workbench 6.3.8 CE (winx64)

1. 自己写一个配置文件。

默认mysql都有一个默认启动的配置文件my-default.ini。如果你在启动服务时不在命令参数里指定其他配置文件,那么默认使用的就是这个。这个配置文件中可以需要且可以定义许多配置项。


但是,默认配置文件my-default.ini中没有定义几个关键的配置,这些配置项,my-default.ini里将其注释了,需要你自行完成配置。


其中比较关键的是:


[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....

basedir配置mysql的根目录;datadir配置用于存放数据的目录;port用于配置mysql的服务端口,默认是3306。


这里需要注意的是,在mysql5.6之前,你只需要自己建个data文件夹就可以了,但是,5.6之后的安全机制,需要我们用命令生成初始化的data目录,后一步会说。


另外,还有一些比较重要的配置如mysql的引擎、服务端默认的字符集等。


因此,我们需要对mysql进行必要配置。


凡是配置有一个约定俗称的好习惯就是,永远保留默认的配置文件或其模板,以防止在配置损坏时恢复。


这里我们自己定义一个my.ini文件。


[client]
#port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
basedir = D:/IDE/mysql-5.7.16-winx64
datadir = D:/IDE/mysql-5.7.16-winx64/data
#解压目录下data目录
default-storage-engine = INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#[WinMySQLAdmin]
#D:/IDE/mysql-5.7.16-winx64/bin/mysqld.exe

这里附上一份比较详细的配置项说明:


A 服务端配置项:

[mysqld] port=3306 # mysql服务端默认监听(listen on)的TCP/IP端口


basedir="C:/Program Files/MySQL/MySQL Server 5.5/" # 基准路径,其他路径都相对于这个路径


datadir="C:/Program Files/MySQL/MySQL Server 5.5/Data" # mysql数据库文件所在目录


character-set-server=latin1 # 服务端使用的字符集默认为8比特编码的latin1字符集


default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎


sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" # SQL模式为strict模式


max_connections=100 # mysql服务器支持的最大并发连接数(用户数)。但总会预留其中的一个连接给管理员使用超级权限登录,即使连接数目达到最大限制。如果设置得过小而用户比较多,会经常出现“Too many connections”错误。


query_cache_size=0 # 查询缓存大小,用于缓存SELECT查询结果。如果有许多返回相同查询结果的SELECT查询,并且很少改变表,可以设置query_cache_size大于0,可以极大改善查询效率。而如果表数据频繁变化,就不要使用这个,会适得其反


table_cache=256 # 这个参数在5.1.3之后的版本中叫做table_open_cache,用于设置table高速缓存的数量。由于每个客户端连接都会至少访问一个表,因此此参数的值与max_connections有关。当某一连接访问一个表时,MySQL会检查当前已缓存表的数量。如果该表已经在缓存中打开,则会直接访问缓存中的表已加快查询速度;如果该表未被缓存,则会将当前的表添加进缓存并进行查询。在执行缓存操作之前,table_cache用于限制缓存表的最大数目:如果当前已经缓存的表未达到table_cache,则会将新表添加进来;若已经达到此值,MySQL将根据缓存表的最后查询时间、查询率等规则释放之前的缓存。


tmp_table_size=34M # 内存中的每个临时表允许的最大大小。如果临时表大小超过该值,临时表将自动转为基于磁盘的表(Disk Based Table)。


thread_cache_size=8 # 缓存的最大线程数。当客户端连接断开时,如果客户端总连接数小于该值,则处理客户端任务的线程放回缓存。在高并发情况下,如果该值设置得太小,就会有很多线程频繁创建,线程创建的开销会变大,查询效率也会下降。一般来说如果在应用端有良好的多线程处理,这个参数对性能不会有太大的提高。


# MyISAM相关参数 myisam_max_sort_file_size=100G # mysql重建索引时允许使用的临时文件最大大小


myisam_sort_buffer_size=68M


key_buffer_size=54M # Key Buffer大小,用于缓存MyISAM表的索引块。决定数据库索引处理的速度(尤其是索引读)


read_buffer_size=64K # 用于对MyISAM表全表扫描时使用的缓冲区大小。针对每个线程进行分配(前提是进行了全表扫描)。进行排序查询时,MySql会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。但MySql会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大。


read_rnd_buffer_size=256K


sort_buffer_size=256K # connection级参数(为每个线程配置),500个线程将消耗500*256K的sort_buffer_size。


# InnoDB相关参数 innodb_additional_mem_pool_size=3M # InnoDB用于存储元数据信息的内存池大小,一般不需修改


innodb_flush_log_at_trx_commit =1 # 事务相关参数,如果值为1,则InnoDB在每次commit都会将事务日志写入磁盘(磁盘IO消耗较大),这样保证了完全的ACID特性。而如果设置为0,则表示事务日志写入内存log和内存log写入磁盘的频率都为1次/秒。如果设为2则表示事务日志在每次commit都写入内存log,但内存log写入磁盘的频率为1次/秒。


innodb_log_buffer_size=2M # InnoDB日志数据缓冲大小,如果缓冲满了,就会将缓冲中的日志数据写入磁盘(flush)。由于一般至少都1秒钟会写一次磁盘,所以没必要设置过大,即使是长事务。


innodb_buffer_pool_size=105M # InnoDB使用缓冲池来缓存索引和行数据。该值设置的越大,则磁盘IO越少。一般将该值设为物理内存的80%。


innodb_log_file_size=53M # 每一个InnoDB事务日志的大小。一般设为innodb_buffer_pool_size的25%到100% innodb_thread_concurrency=9 # InnoDB内核最大并发线程数


B 客户端配置项

[client] port = 3306 # 设置mysql客户端连接服务端时默认使用的端口 [mysql] default-character-set=utf8 # 设置mysql客户端默认字符集


2. 安装msyql系统服务:

请用管理员权限运行cmd。


可以看到我们在参数里指定了默认配置文件为我们自己定义的my.ini。


D:/IDE/mysql-5.7.16-winx64/bin>mysqld --install MySQL --defaults-file=D:/IDE/mysql-5.7.16-winx64/my.ini
Service successfully installed. 3. 完成对mysql的初始化(生成有效的data文件夹)

注意:这就是5.6以上版本在正式启动mysq服务之前必须要要做的。否则启动mysql服务无法成功!


D:/IDE/mysql-5.7.16-winx64/bin>mysqld --initialize-insecure
D:/IDE/mysql-5.7.16-winx64/bin>

成功了,bash没有什么提示。但是你发现data文件已经出现,并且里面已经有了许多初始化文件。




(本文出自:https://my.oschina.net/happyBKs/blog/820252)


4. 启动mysql服务。
D:/IDE/mysql-5.7.16-winx64/bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。

或者也可以用windows的【服务】里,启动我们安装的名为MySQL的服务。


5. 关闭服务
D:/IDE/mysql-5.7.16-winx64/bin>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台