MySQL数据库手动安装 配置My.ini文件

最近在作项目开发时用到了MySql数据库,在看了一些有关MySql的文章后,很快就上手使用了。在使用的过程当中仍是出现了一些问题,由于使用的是绿色免安装版的MySql因此在配置的时候出现了一些问题,该篇文章就主要针对MySql绿色版的配置及其使用进行讨论。html

 

 

1、MySql概述

       MySql数据库是有瑞典MySql AB公司开发,如今该公司被Oracle收购属于Oracle全部。同SQL Server相似,它也是基于关系型数据库的数据库管理系统,在Web应用方面MySQL是最好的RDBMS之一,由于它属于轻量级的RDBMS。java

       如今MySql的最新版本是5.6.17,最新下载地址:http://dev.mysql.com/downloads/mysql/,下载完成了接下来进行安装部署了,有关安装部署的内容在网上查看下教程就能够。
 mysql

2、MySql配置

 

 

        既然MySql采用的是SQL为基础,那么他就包含基本的DML、DDL、DAL,这些基本的数据库语言是很容易上手使用的,另外MySql还封装了不少数据库操做命令,这些命令是在dos系统中运行的,这是他和SQL Server的不一样之处,MySql的环境是简历在dos系统之上的,要使用dos命令。它和java有点相似,能够说它也是创建在虚拟机之上的,能够实现一次创建处处使用。想要方便的使用MySql命令还须要一些前提进行设置,设置方法相似于Java的环境变量,下面的方法以避免安装版本的MySql为例演示它的配置方法。
 web

   1. MySql环境配置

 

        将MySql的解压路径配置到系统变量中就能够在任何地方使用MySql命令。sql

        Note:这是配置的系统变量,任何使用控制台命令的第三方命令均可以添加到系统变量中,系统变量是一个纽带做用,在使用命令时会优先搜索系统变量。数据库

                                                                                

 

 

  二、MySql服务器配置

      在配置了系统的环境变量后就可使用MySql的bin下提供的全部服务了,接下来还须要在系统中安装MySQL。
 缓存

    2.1 安装MySql服务器

       打开解压文件目录,找到后缀名为.ini的文件,复制一份改名为my.ini,使用下面的内容替换原有的内容。服务器

  1. [mysqld]  
  2. basedir=D:/Program Files (x86)/MySql     # 设置mysql的安装目录  
  3. datadir=D:/Program Files (x86)/MySql/data    # 设置mysql数据库的数据的存放目录,必须是data,或者是//xxx/data  
  4.   
  5. *************************分割线*******************  
  6. port = 3306  
  7. socket = /tmp/mysql.sock  
  8. default-character-set=gbk   # 设置mysql服务器的字符集  
  9. skip-locking  
  10. key_buffer = 16K  
  11. max_allowed_packet = 1M  
  12. table_cache = 4  
  13. sort_buffer_size = 64K  
  14. read_buffer_size = 256K  
  15. read_rnd_buffer_size = 256K  
  16. net_buffer_length = 2K  
  17. thread_stack = 64K  
  18.   
  19. [client]   
  20. #password = your_password  
  21. port = 3306  
  22. socket = /tmp/mysql.sock  
  23. default-character-set=gbk   
  24. *************************分割线*******************  

 

       Note:[mysqld]下面的basedir和datadir须要设置为文件解压后的路径,在此处笔者将文件放到了D:\Program Files (x86)\MySql下。另外上面的分割线内的内容是可选的,能够在创建数据库的时候从新设置,建议在建立时不要添加,由于会有不少不肯定因素。多线程

 

 

在my.ini 文件中 本人配置的如一下可运行选项:并发

 

# For advice on how to change settings please see

# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the

# *** default location during install, and will be replaced if you

# *** upgrade to a newer version of MySQL.

 

 

[client] 

#password = your_password

port = 3306

socket  = /tmp/mysql.sock

default-character-set=utf-8

 

[mysqld]

port = 3306

basedir="C:/Program Files/Mysql"

# 设置mysql的安装目录

datadir="C:/Program Files/Mysql/data"

# 设置mysql数据库的数据的存放目录,必须是data,或者是//xxx/data

default-storage-engine=INNODB

# 建立新表时将使用的默认存储引擎

 

socket = /tmp/mysql.sock

 

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 

# SQL模式为strict模式

 

#default-character-set=utf-8

# 设置mysql服务器的字符集  

 

#character-set-server=utf-8 

# 服务端使用的字符集默认为8比特编码的latin1字符集

 

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相关参数    begin------------------------------------------------

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。

 

 

 

 

#------------------------------MyISAM相关参数    end------------------------------------------------

 

 

 

#-------------------------------# InnoDB相关参数  begin ---------------------------------------

 

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内核最大并发线程数

#-------------------------------# InnoDB相关参数  end ---------------------------------------

 

 

       my.ini文件配置好后就能够在cmd中安装mysqld服务了,在cmd中运行命令:mysqld --install MySQL --defaults-file="D:\Program Files(x86)\MySql\my.ini",其中的MySQL是安装服务器的名称,能够指定任何名称。安装完成后会提示下面的信息:Service successfully installed,即表示成功安装,安装成功后会在系统的服务组策中添加该服务,在使用时只须要开启便可。

                                             

        Note:在运行安装命令时必定要注意必须cmd内的路径问题,该路径必须在mysql的bin所在的路径,好比个人mysql解压到D:\Program Files(x86)\MySql文件夹中,那么cmd当前路径就必须为D:\Program Files(x86)\MySql\bin,不然在安装完成后启动服务时会出现发生错误提示:系统错误 2。系统找不到指定的文件。

 

    2.2 启动服务器

        启动MySQL服务器,在cmd中运行命令:net start MySQL。

                                                  

   2.3 中止服务器

        在使用完成后能够经过命令来中止服务器的运行,经过在cmd中运行命令:net stop MySQL,

   2.4 查看设计服务器名称及密码

         刚安装的服务器它的默认名称为root,此时没有密码,能够经过cmd命令来设置名称和密码。相应的命令为:mysql -u root。另外可经过在cmd中使用update语句来修改root的密码,具体设置方法以下代码所示:

      一、给root加个密码ab12

         首先在DOS下进入目录mysql\bin,而后键入如下命令: mysqladmin -u root -p password ab12 
                                  

 

         Note:由于开始时root没有密码,因此-p旧密码一项就能够省略了。
 

       二、再将root的密码改成djg345:mysqladmin -u root -p ab12 password djg345

 

    2.5 删除服务:mysqld --remove MySQL 

          使用remove命令,后面跟上要删除的数据库服务的名称。

 

3、MySql经常使用命令

        

  3.1 链接服务

       这里介绍两种链接方法分别为本地链接和远程链接。

   3.1.1 本地链接

       在cmd中输入并运行命令:mysql -u root -p,而后输入相应的密码。须要注意的是用户名-u和用户名之间也能够没有空格,即-uroot一样正确,可是密码和-p之间必需要有空格。若是是刚安装好的MYSQL,默认的root用户名是没有密码的,直接输入mysql -u root就能够进入MYSQL中了,MYSQL的提示符为:mysql>。


                    

   3.1.2 远程链接

        假设远程主机的IP地址为:219.243.79.8,用户名为root,密码为123,则在cmd中运行以下命令:mysql -h219.243.79.8 -uroot -p 123。
 

   3.1.3 退出MYSQL命令:exit

 

  3.2 增长新用户

 

     3.2.1 超级用户

       增长一个用户test1密码为abc,让他能够在任何主机上登陆,并对全部数据库有查询、插入、修改、删除的权限。首先用root用户连入MYSQL,而后键入如下命令:

                  grant select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]” Identified by “abc”;

       但增长的用户是十分危险的,你想如某我的知道test1的密码,那么他就能够在internet上的任何一台电脑上登陆你的mysql数据库并对你的数据能够随心所欲了,解决办法见2。

    3.2.2 本机用户

       增长一个用户test2密码为abc,让他只能够在localhost上登陆,并能够对数据库mydb进行查询、插入、修改、删除的操做(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即便用知道test2的密码,他也没法从internet上直接访问数据库,只能经过MYSQL主机上的web页来访问了。 

              grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “abc”;

      若是你不想test2有密码,能够再打一个命令将密码消掉。

             grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “”;
 

  3.3 show命令

 

        show命令是查看的意思,能够用来查看MySql中的一些列表信息,如:show databases显示全部数据库的名称;show tables显示一个数据库中的全部表名称。
 

  3.4 操做数据库

 

       操做前要进入相关的数据库,可使用use命令,如:use testdb进入名为testdb的数据库,进入数据库后既能够对数据库中的对象操做,相应的操做命令使用的是SQL语句,DDL、DML、DAL。

    3.4.1 查看数据库内容

        一、查看数据库某个表的字段信息:desc 表名;
                                     

       二、查看数据库表的建立语句:show create table 表名;固然使用一样的方法也能够查看其它建立内容的SQL语句,如查看数据库的建立语句,show create database 数据库名。


                              

     3.4.2 修改表中列类型及名称

       (1)只修改列类型

          alter table 数据库名.表名  modify column 列名  数据类型,例如:将t_animal表的sex列该为boolean类型:

  1. alter table t_animal modify sex boolean not null  

       (2)同时修改列名和列数据类型
          alter table 表名 change column 旧列名 新列名 数据类型,例如:将t_animal表的sex列改名为ani_sex,数据类型修改成boolean类型:[sql] view plaincopy

  1. alter table t_animal change column sex ani_sex boolean not null  


 

结语

      本文对MySql的配置及使用方法作了初步的总结,MySql还有不少内容在使用中慢慢积累,而且该文章也会不定时的添加新内容,主要是针对开发过程当中的状况而更新。文章的命令笔者都进行了测试,有哪些不对的地方还请指出互相学习。

相关文章
相关标签/搜索