MySQL数据库安装,配置My.ini⽂件
最近在做项⽬开发时⽤到了MySql数据库,在看了⼀些有关MySql的⽂章后,很快就上⼿使⽤了。在使⽤的过程中还是出现了⼀些问题,因为使⽤的是绿⾊免安装版的MySql所以在配置的时候出现了⼀些问题,该篇⽂章就主要针对MySql绿⾊版的配置及其使⽤进⾏讨论。
⼀、MySql概述
MySql数据库是有瑞典MySql AB公司开发,现在该公司被Oracle收购属于Oracle所有。同SQL Server类似,它也是基于关系型数据库的数据库管理系统,在Web应⽤⽅⾯MySQL是最好的RDBMS之⼀,因为它属于轻量级的RDBMS。
现在MySql的最新版本是5.6.17,最新下载地址:sql/downloads/mysql/,下载完成了接下来进⾏安装部署了,有关安装部署的内容在⽹上查看下教程就可以。
⼆、MySql配置
既然MySql采⽤的是SQL为基础,那么他就包含基本的DML、DDL、DAL,这些基本的数据库语⾔是很容易上⼿使⽤的,另外MySql还封装了很多数据库操作命令,这些命令是在dos系统中运⾏的,这是他和SQL Server的不同之处,MySql的环境是简历在dos系统之上的,要使⽤dos命令。它和java有点类似,
可以说它也是建⽴在虚拟机之上的,可以实现⼀次建⽴到处使⽤。想要⽅便的使⽤MySql命令还需要⼀些前提进⾏设置,设置⽅法类似于Java的环境变量,下⾯的⽅法以免安装版本的MySql为例演⽰它的配置⽅法。
1. MySql环境配置
将MySql的解压路径配置到系统变量中就可以在任何地⽅使⽤MySql命令。
Note:这是配置的系统变量,任何使⽤控制台命令的第三⽅命令都可以添加到系统变量中,系统变量是⼀个纽带作⽤,在使⽤命令时会优先搜索系统变量。
2、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. port = 3306
6. socket = /tmp/mysql.sock
7. default-character-set=gbk # 设置mysql服务器的字符集
8. skip-locking
9. key_buffer = 16K
10. max_allowed_packet = 1M
11. table_cache = 4
12. sort_buffer_size = 64K
13. read_buffer_size = 256K
14. read_rnd_buffer_size = 256K
15. net_buffer_length = 2K
16. thread_stack = 64K
17. [client]
18. #password = your_password
19. port = 3306
20. socket = /tmp/mysql.sock
21. default-character-set=gbk
22. *************************分割线*******************
Note:[mysqld]下⾯的basedir和datadir需要设置为⽂件解压后的路径,在此处笔者将⽂件放到了D:\Program Files (x86)\MySql下。另外上⾯的分割线内的内容是可选的,可以在建⽴数据库的时候重新设置,建议在创建时不要添加,因为会有很多不确定因素。
在my.ini ⽂件中本⼈配置的如⼀下可运⾏选项:
# For advice on how to change settings please see
# sql/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
mysql下载后安装中出现提示不到安装包
# 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的密码,具体设置⽅法如下代码所⽰:
1、给root加个密码ab12
⾸先在DOS下进⼊⽬录mysql\bin,然后键⼊以下命令: mysqladmin -u root -p password ab12 。
Note:因为开始时root没有密码,所以-p旧密码⼀项就可以省略了。
2、再将root的密码改为djg345:mysqladmin -u root -p ab12 password djg345
2.5 删除服务:mysqld --remove MySQL
使⽤remove命令,后⾯跟上要删除的数据库服务的名称。
三、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 查看数据库内容
1、查看数据库某个表的字段信息:desc 表名;
2、查看数据库表的创建语句: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类型:
1. alter table t_animal change column sex ani_sex boolean not null
结语
本⽂对MySql的配置及使⽤⽅法做了初步的总结,MySql还有很多内容在使⽤中慢慢积累,并且该⽂章也会不定时的添加新内容,主要是针对开发过程中的情况⽽更新。⽂章的命令笔者都进⾏了测试,有哪些不对的地⽅还请指出互相学习。
技术分享:www.kaige123
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论