MySQL本身就支持安装使用,本文只是对自己使用免安装版MySQL的经历记录下来,以便以后查看。

  首先是获取Windows下的MySQL免安装版本,这个需要去到MySQL官网进行下载。我一般喜欢把首页页面拖动到最下方,点击MySQL Server进入下载。

  

  我下载了MySQL5.5.33版本(zip包)。

  得到的文件就是mysql-5.5.33-win32.zip,解压出来后我把名字改成了mysql。

  

  我们保留文件夹bin、data和share,其余的文件夹可以删除。

  还需要一个my.ini作为配置文件,zip包中的几个ini是根据你物理机硬件水平进行选择的,从<=64M到4G的内存。

  我一般都直接删除,然后沿用以前的ini文件,你也可以选择适合自己的my-*.ini进行配置然后改名为my.ini。我使用的旧配置文件:

  1. # MySQL Server Instance Configuration File
  2. # ----------------------------------------------------------------------
  3. # Generated by the MySQL Server Instance Configuration Wizard
  4. #
  5. #
  6. # Installation Instructions
  7. # ----------------------------------------------------------------------
  8. #
  9. # On Linux you can copy this file to /etc/my.cnf to set global options,
  10. # mysql-data-dir/my.cnf to set server-specific options
  11. # (@localstatedir@ for this installation) or to
  12. # ~/.my.cnf to set user-specific options.
  13. #
  14. # On Windows you should keep this file in the installation directory
  15. # of your server (e.g. C:\Program Files\MySQL\MySQL Server X.Y). To
  16. # make sure the server reads the config file use the startup option
  17. # "--defaults-file".
  18. #
  19. # To run run the server from the command line, execute this in a
  20. # command line shell, e.g.
  21. # mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"
  22. #
  23. # To install the server as a Windows service manually, execute this in a
  24. # command line shell, e.g.
  25. # mysqld --install MySQLXY --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"
  26. #
  27. # And then execute this in a command line shell to start the server, e.g.
  28. # net start MySQLXY
  29. #
  30. #
  31. # Guildlines for editing this file
  32. # ----------------------------------------------------------------------
  33. #
  34. # In this file, you can use all long options that the program supports.
  35. # If you want to know the options a program supports, start the program
  36. # with the "--help" option.
  37. #
  38. # More detailed information about the individual options can also be
  39. # found in the manual.
  40. #
  41. #
  42. # CLIENT SECTION
  43. # ----------------------------------------------------------------------
  44. #
  45. # The following options will be read by MySQL client applications.
  46. # Note that only client applications shipped by MySQL are guaranteed
  47. # to read this section. If you want your own MySQL client program to
  48. # honor these values, you need to specify it as an option during the
  49. # MySQL client library initialization.
  50. #
  51. [client]
  52.  
  53. port=3306
  54.  
  55. [mysql]
  56.  
  57. default-character-set=utf8
  58.  
  59. # SERVER SECTION
  60. # ----------------------------------------------------------------------
  61. #
  62. # The following options will be read by the MySQL Server. Make sure that
  63. # you have installed the server correctly (see above) so it reads this
  64. # file.
  65. #
  66. [mysqld]
  67.  
  68. # The TCP/IP Port the MySQL Server will listen on
  69. port=3306
  70.  
  71. #Path to installation directory. All paths are usually resolved relative to this.
  72. basedir="./mysql"
  73.  
  74. #Path to the database root
  75. datadir="./mysql/data/"
  76.  
  77. # The default character set that will be used when a new schema or table is
  78. # created and no character set is defined
  79. character-set-server=utf8
  80.  
  81. # The default storage engine that will be used when create new tables when
  82. default-storage-engine=INNODB
  83.  
  84. # Set the SQL mode to strict
  85. sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
  86.  
  87. # The maximum amount of concurrent sessions the MySQL server will
  88. # allow. One of these connections will be reserved for a user with
  89. # SUPER privileges to allow the administrator to login even if the
  90. # connection limit has been reached.
  91. max_connections=100
  92.  
  93. # Query cache is used to cache SELECT results and later return them
  94. # without actual executing the same query once again. Having the query
  95. # cache enabled may result in significant speed improvements, if your
  96. # have a lot of identical queries and rarely changing tables. See the
  97. # "Qcache_lowmem_prunes" status variable to check if the current value
  98. # is high enough for your load.
  99. # Note: In case your tables change very often or if your queries are
  100. # textually different every time, the query cache may result in a
  101. # slowdown instead of a performance improvement.
  102. query_cache_size=0
  103.  
  104. # The number of open tables for all threads. Increasing this value
  105. # increases the number of file descriptors that mysqld requires.
  106. # Therefore you have to make sure to set the amount of open files
  107. # allowed to at least 4096 in the variable "open-files-limit" in
  108. # section [mysqld_safe]
  109. table_cache=256
  110.  
  111. # Maximum size for internal (in-memory) temporary tables. If a table
  112. # grows larger than this value, it is automatically converted to disk
  113. # based table This limitation is for a single table. There can be many
  114. # of them.
  115. tmp_table_size=35M
  116.  
  117. # How many threads we should keep in a cache for reuse. When a client
  118. # disconnects, the client's threads are put in the cache if there aren't
  119. # more than thread_cache_size threads from before. This greatly reduces
  120. # the amount of thread creations needed if you have a lot of new
  121. # connections. (Normally this doesn't give a notable performance
  122. # improvement if you have a good thread implementation.)
  123. thread_cache_size=8
  124.  
  125. #*** MyISAM Specific options
  126.  
  127. # The maximum size of the temporary file MySQL is allowed to use while
  128. # recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
  129. # If the file-size would be bigger than this, the index will be created
  130. # through the key cache (which is slower).
  131. myisam_max_sort_file_size=100G
  132.  
  133. # If the temporary file used for fast index creation would be bigger
  134. # than using the key cache by the amount specified here, then prefer the
  135. # key cache method. This is mainly used to force long character keys in
  136. # large tables to use the slower key cache method to create the index.
  137. myisam_sort_buffer_size=69M
  138.  
  139. # Size of the Key Buffer, used to cache index blocks for MyISAM tables.
  140. # Do not set it larger than 30% of your available memory, as some memory
  141. # is also required by the OS to cache rows. Even if you're not using
  142. # MyISAM tables, you should still set it to 8-64M as it will also be
  143. # used for internal temporary disk tables.
  144. key_buffer_size=55M
  145.  
  146. # Size of the buffer used for doing full table scans of MyISAM tables.
  147. # Allocated per thread, if a full scan is needed.
  148. read_buffer_size=64K
  149. read_rnd_buffer_size=256K
  150.  
  151. # This buffer is allocated when MySQL needs to rebuild the index in
  152. # REPAIR, OPTIMZE, ALTER table statements as well as in LOAD DATA INFILE
  153. # into an empty table. It is allocated per thread so be careful with
  154. # large settings.
  155. sort_buffer_size=256K
  156.  
  157. #*** INNODB Specific options ***
  158.  
  159. # Use this option if you have a MySQL server with InnoDB support enabled
  160. # but you do not plan to use it. This will save memory and disk space
  161. # and speed up some things.
  162. #skip-innodb
  163.  
  164. # Additional memory pool that is used by InnoDB to store metadata
  165. # information. If InnoDB requires more memory for this purpose it will
  166. # start to allocate it from the OS. As this is fast enough on most
  167. # recent operating systems, you normally do not need to change this
  168. # value. SHOW INNODB STATUS will display the current amount used.
  169. innodb_additional_mem_pool_size=3M
  170.  
  171. # If set to 1, InnoDB will flush (fsync) the transaction logs to the
  172. # disk at each commit, which offers full ACID behavior. If you are
  173. # willing to compromise this safety, and you are running small
  174. # transactions, you may set this to 0 or 2 to reduce disk I/O to the
  175. # logs. Value 0 means that the log is only written to the log file and
  176. # the log file flushed to disk approximately once per second. Value 2
  177. # means the log is written to the log file at each commit, but the log
  178. # file is only flushed to disk approximately once per second.
  179. innodb_flush_log_at_trx_commit=1
  180.  
  181. # The size of the buffer InnoDB uses for buffering log data. As soon as
  182. # it is full, InnoDB will have to flush it to disk. As it is flushed
  183. # once per second anyway, it does not make sense to have it very large
  184. # (even with long transactions).
  185. innodb_log_buffer_size=2M
  186.  
  187. # InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
  188. # row data. The bigger you set this the less disk I/O is needed to
  189. # access data in tables. On a dedicated database server you may set this
  190. # parameter up to 80% of the machine physical memory size. Do not set it
  191. # too large, though, because competition of the physical memory may
  192. # cause paging in the operating system. Note that on 32bit systems you
  193. # might be limited to 2-3.5G of user level memory per process, so do not
  194. # set it too high.
  195. innodb_buffer_pool_size=107M
  196.  
  197. # Size of each log file in a log group. You should set the combined size
  198. # of log files to about 25%-100% of your buffer pool size to avoid
  199. # unneeded buffer pool flush activity on log file overwrite. However,
  200. # note that a larger logfile size will increase the time needed for the
  201. # recovery process.
  202. innodb_log_file_size=54M
  203.  
  204. # Number of threads allowed inside the InnoDB kernel. The optimal value
  205. # depends highly on the application, hardware as well as the OS
  206. # scheduler properties. A too high value may lead to thread thrashing.
  207. innodb_thread_concurrency=10

my.ini

  上文中basedir和datadir比较重要,从名称来看是指mysql的安装路径和数据文件存放路径,我已经修改了。

  bin文件夹中的.pdb文件是没有存在感的,*test*.exe和*debug*.exe我也删除了。

  最后的文件结构大概是这个样子:

  

  COPYING是我特意留下的,你可以去除。

  这个样子就算OK了,我们可以使用批处理指令启动MySQL了:

  1. "./mysql/bin/mysqld.exe" --defaults-file=./mysql/my.ini

  不过这个命令必须cd到mysql文件夹所在目录进行,或者是将上面的语句保存为*.bat(也要放到mysql同级目录下):

  

  启动mysql.bat,mysql数据库就开始工作了。

  

  这个窗口会卡住,但其实它是可以关闭的,关闭后mysql没有被结束:

  

  我们登录进mysql:

  

  mysql的初始密码是空,所以我们只需要在Enter password:后面敲击回车(不要做任何输入)即可进入系统。

  我们先对root的密码进行设置:

  

  然后删除匿名用户(匿名用户就是登录名为空的用户,它不需要密码即可登录,对安全性有影响)。当然,先删除匿名用户再改root密码也可以:  

  

  现在,mysql数据库就配置好了。

  通过一个批处理命令和windows shell的结合,我们可以实现mysql只启动一次且不卡住窗口:

  1. tasklist | find /i "mysqld.exe"
  2. if %errorlevel%==0 (exit) else goto stm
  3. :stm
  4. start /min "" "./mysql/bin/mysqld.exe" --defaults-file=./mysql/my.ini

  (值得一提的是我们并没有考虑将mysql作为系统服务,因为上文的路径是相对路径,理论上我们可以随意移动。而服务要求路径明确,不过服务的优势在于比较方便地跟随系统启动和关闭,容易挂起等)

  最后介绍一个我的思路,我通常会为一个项目维护一个数据库,而且使用一个专门的用户来进行管理。

  比如我会使用如下语句来创建用户:

  1. grant all privileges on testdb.* to testuser identified by 'testuser';

  上述语句可以在testdb还未创建时执行,而且testdb被删除重建后testeuser仍然具有权限。

  不过上述语句没有赋予testuser创建视图的权利,所以我建议大家使用root完成视图的创建。

欢迎您移步我们的交流群,无聊的时候大家一起打发时间:

或者通过QQ与我联系:

(最后编辑时间2013-09-17 21:57:02)

Windows下MySQL的绿化与精简的更多相关文章

  1. MySQL 5.7 Command Line Client输入密码后闪退和windows下mysql忘记root密码的解决办法

    MySQL 5.7 Command Line Client输入密码后闪退的问题: 问题分析: 1.查看mysql command line client默认执行的一些参数.方法:开始->所有程序 ...

  2. coreseek实战(二):windows下mysql数据源部分配置说明

    coreseek实战(二):windows下mysql数据源部分配置说明 关于coreseek在windows使用mysql数据源的配置,以及中文分词的详细说明,请参考官方文档: mysql数据源配置 ...

  3. Windows下mysql自动备份的最佳方案

    网上有很多关于window下Mysql自动备份的方法,其实不乏一些不好的地方和问题,现总结出一个最好的方法供大家参考: 新建一个记事本,然后重命名为: mysql_backup.bat 然后单击右键选 ...

  4. Windows下mysql忘记密码的解决方法

    Windows下mysql忘记密码的解决方法 mysql5.0 http://www.jb51.net/article/21984.htm方法一: 1.在DOS窗口下输入 net stop mysql ...

  5. Windows下MYSQL自动备份批处理

    windows下MYSQL自动备份批处理 2011-05-04 09:16:45|  分类: mysql|举报|字号 订阅     按系统时间进行备份 注意mysql安装路径中如果有空格.就要把,.b ...

  6. 【已解决】Windows下 MySQL大小写敏感 解决方案及分析

    Windows下 MySQL大小写敏感配置 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-3-27 最近在window ...

  7. windows下mysql和linux下mysql主从配置

    1. linux下mysql安装版本5.6   windows下mysql版本5.7  不要问我为什么版本不一致  就是想这么搞 2. linux为主服务器   windows为从服务器 3.找到li ...

  8. Windows 下 MySql 5.7.20安装及data和my.ini文件的配置(转)

    Windows 下 MySql 5.7.20安装及data和my.ini文件的配置     本文通过图文并茂的形式给大家介绍了MySql 5.7.20安装及data和my.ini文件的配置方法. my ...

  9. windows下mysql配置

    windows下mysql配置   忙活了大半天,总算配置好了,本文献给windows下没试用过Mysql的小白,勿喷 http://blog.csdn.net/z1074907546/article ...

随机推荐

  1. Go语言之高级篇beego框架之模型(Models)

    一.模型(Models) 1.beego-orm的相关特性 支持 Go 的所有类型存储 -轻松上手,采用简单的 CRUD 风格 -自动 Join 关联表 跨数据库兼容查询 允许直接使用 SQL 查询/ ...

  2. C#SpinWait和volatile一点温习

    今天看ConcurrentQueue<T> 源码发现里面居然没有用到lock,我记得ConcurrentDictionary里面是有lock的,lock的是字典里面每一个key,但是Con ...

  3. nssm和AlwaysUp来包装exe文件为windows服务

    最近遇到要把windows exe文件部署为service,因为原先开发为exe程序,现在有不想修改code改为service,但是部署必须是service服务, 所以我们需要一个包装器来包装exe为 ...

  4. .NET 并行编程——数据并行

    本文内容 并行编程 数据并行 环境 计算 PI 矩阵相乘 把目录中的全部图片复制到另一个目录 列出指定目录中的所有文件,包括其子目录 最近,对多线程编程,并行编程,异步编程,这三个概念有点晕了,之前我 ...

  5. PL/SQL学习笔记之基本块格式与语法

    一:PL/SQL程序块 PL/SQL是一种块结构的语言,一个PL/SQL程序就是一个 代码逻辑块. PL/SQL程序由三部分构成: 1 声明 部分 使用关键字DECLARE开头,它是一个可选的部分,用 ...

  6. [转]Java NIO 系列教程

    Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(B ...

  7. 译:4.RabbitMQ Java Client 之 Routing(路由)

    在上篇博文 译:3.RabbitMQ 之Publish/Subscribe(发布和订阅)  我们构建了一个简单的日志系统 我们能够向许多接收者广播日志消息. 在本篇博文中,我们将为其添加一个功能 - ...

  8. 物联网架构成长之路(7)-EMQ权限验证小结

    1. 前言 经过前面几小节,讲了一下插件开发,这一小节主要对一些代码和目录结构进行讲解,这些都是测试过程中一些个人经验,不一定是官方做法.而且也有可能会因为版本不一致导致差异. 2. 目录结构 这个目 ...

  9. Java 汇编代码

    https://shipilev.net/blog/2015/black-magic-method-dispatch/ https://github.com/shipilev/article-meth ...

  10. openfire群消息投递