Mysql5.6.23免安装配置
mysql 5.6.23是mysql当前的最高版本,我下载的是Mysql Community
Server(GPL版本)。下载地址:http://dev.mysql.com/downloads/mysql/
下载版本如下:
首先是Windows系统下的,如图1:
图1
我的电脑是32位的,所以我选择32bit的,如图2:
图2
我下载到了E:\ ,然后解压到E:\
后,为mysql-5.6.23-win32的一个文件夹,我以为是个安装文件,谁知打开后,竟然是已经安装好后的mysql文件。
这是免安装的。哈哈
1 相关配置
(1)
解压后只有my-default.ini文件,没有my.ini文件。复制一个my-default.ini,更名为my.ini。然后在这个文件中加入如下语句:
[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
basedir=E:\mysql-5.6.23-win32
datadir=E:\mysql-5.6.23-win32\data
(2)把mysql的bin目录的路径加入到环境变量中去:
Path后面加上;E:\mysql-5.6.23-win32\bin
(3)启动mysql
运行cmd,进入dos界面。进入e:\mysql-5.6.23-win32\bin
,启动mysqld,意味着把mysql的进程打开了,如图3:
图3
再打开一个cmd,同样进入e:\mysql-5.6.23-win32\bin ,开始以root身份登录mysql
键入命令mysql -h localhost -u root -p 回车,会有Enter
Password的提示,初次登录密码是空的,直接回车就可以进入mysql。
如果想修改密码,可以键入如下命令(我将密码修改为123456,这样容易记忆):
SET PASSWORD FOR 'root'@'localhost' =
PASSWORD('123456');下次重新以root身份登录时,输入新修改的密码进入即可。
(4)在my.ini中加入的语句不是随便加的,特别是对字符集的说明。在没加入对字符集的说明语句时,我遇到中文乱码问题更是一筹莫展,可愁死我了。
对mysql的配置就是上面的那些,具体为什么这么做,我想大概是每次启动mysql时,会检查或者启动my.ini吧,它是个安装文件,所以环境变量也需要修改下。(可能我的分析也不是很对,暂且这么认为吧)
2 中文乱码处理
我创建了一个数据库DataCenter,在这个数据库中创建了一个员工表Employee,其中有个员工姓名字段name,类型是varchar(8),每次插入数据时,插入中文名字时就会报错,主要是下面两种错误:
(1) Incorrect string value:......
在网上找了很多,都说是字符集的问题,可以在mysql下键入show variables like
“char%”,查看下字符集,在没有配置my.ini之前,我查看了下,我的字符集有latin1。其中的
character_set_database=latin1
character_set_server=latin1
这也就不难猜想为什么会有中文乱码的问题了。
当然有了my.ini后,加入default-character-set=utf8和
character_set_server=utf8后,当有了my.ini后,并且修改my.ini的内容后,保存这个文件。关掉mysqld进程,退出mysql,重新开启mysqld进程,重新进入mysql。再查看字符集,是如下的情况,如图4:
图4
这就修改过来了,如果只是键入如下命令:
set character_set_database='utf8';
set character_set_server='utf8';
这个是没用的,不能永久改变字符集,只有在my.ini中配置才能起作用。
还有说向数据库中插入数据时,set names gbk;或者set names
gb2312,就可以插入中文或者显示中文,可是这对我的数据库是无用的,啊偶,真是哭了。
我是怎样关掉mysqld进程的,ctrl+Alt+Delete查看正在运行中的进程,关掉mysqld.exe。(这个关掉进程的办法虽然笨吧,可是倒也有效)
然后往数据库中加入名字的值时insert into Employee (name) values (‘燕子’);
还是会出错,不过报的错是下面(2)的错误。
我试着把原来创建的数据库和数据表删除,重建,重新插入数据,还是有错。但把表删除重建是必要的。
(2)data too long for column: .......
解决办法,我参照了http://www.syazone.com/2014/01/43.html
中这个网友的第一条,将my.ini中的一句话sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES注释掉,即在这句话前面增加一个#
。
再保存my.ini,关掉mysqld进程,再重启进程,再插入数据,这次竟然神奇般的插入成功了,把我给高兴的。
再查询,结果如下:
至此,中文乱码问题解决了,也许是误打误撞,但总还是有些依据有些道理的。
记得每次修改完my.ini文件的内容后,要保存。然后关掉mysql进程,再重启mysql。这样my.ini的内容才会起作用。