xampp下mysql的安装与使用问题解决

2012年5月26日:

安装xampp笔记:

1. 将xampp压缩包,解压至目标文件夹,如:D:\soft\xampp。

进入文件夹,setup_xampp.bat,双击执行,基本上就算是完事了,这时就可以通过apache_start.bat去启动apache了,正常启动的话,就算安装成功了,这时可以浏览器访问http://localhost;不过事有例外,如果之前安装过oracle,可在D:\soft\xampp\apache\logs\error.log错误日志显示如下:

Cant load Perl file: D:/soft/xampp/apache/conf/extra/startup.pl for server localhost:80, exiting

原因:

安装oracle的时候会添加一个叫“PERL5LIB”的环境变量,而XMAPP也会用到这个叫“PERL5LIB”的环境变量。问题是oracle中的“PERL5LIB”变量与XMAPP中的“PERL5LIB”变量有冲突,因为oracle有它自己的perl

1、解决方法是从环境变量中删除掉oracle的“PERL5LIB”这个环境变量(你应该先备份这个变量PERL5LIB)或者简单地给它重新命名;最后重启电脑和xmapp服务,问题得解!

2、更简单的方法是:
找到apache\conf\extra\httpd-perl.conf文件,修改行为:

LoadFile "D:/soft/xampp/perl/bin/perl510.dll"

LoadModule perl_module modules/mod_perl.so

PerlSwitches -T

PerlPostConfigRequire "D:/soft/xampp/apache/conf/extra/startup.pl"

2. 修改mysql密码:此时mysql也可以正常使用了,通过mysql_start.bat启动(当然也可以使用xampp-control启动)mysql,浏览器访问http://localhost/phpmyadmin(默认端口为80的可以这样访问,否则要写端口),进入数据库操作页面。不过事情到这里并没有结束,mysql登录用户root,默认密码为""(空密码),修改密码可使用如下操作:

D:\soft\xampp\mysql\bin\mysqladmin -u root  -p password newpassword

需要说明的是,上面的newpassword,就是要设置的新密码,此时回车,会出现enter password:的提示,因为初始密码为空,可直接回车,即完成密码修改工作;但是如果要使用phpmyadmin访问的话,工作还要继续,修改D:\soft\xampp\phpMyAdmin\config.inc.php文件:

/* Authentication type and info */

$cfg['Servers'][$i]['auth_type'] = 'config';

$cfg['Servers'][$i]['user'] = 'root';

$cfg['Servers'][$i]['password'] = 'root'; //此处写入之前设的mysql密码即可,如“root”

$cfg['Servers'][$i]['extension'] = 'mysql';

$cfg['Servers'][$i]['AllowNoPassword'] = true;

3.修改编码方式

查看数据库编码方式命令:

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show variables like 'character%';
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8                            |
| character_set_connection | utf8                            |
| character_set_database   | utf8                           |
| character_set_filesystem | binary                         |
| character_set_results    | utf8                            |
| character_set_server     | utf8                           |
| character_set_system     | utf8                           |
| character_sets_dir       | D:\soft\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+
8 rows in set (0.00 sec)

D:\soft\xampp\mysql\bin\my.ini文件

[mysqld]下面

## UTF 8 Settings
init-connect=\'SET NAMES utf8\'
#collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake
#character_sets-dir="D:/xampp/mysql/share/charsets"

MySQL(4.1以后版本) 服务器中有六个关键位置使用了字符集的概念,他们是:client、connection、database、results、server 、system。MySQL有两个字符集概念:一个就是字符集本身,一个是字符集校验规则。字符集影响数据在传输和存储过程中的处理方式,而字符集校验则影响ORDER BY和GROUP BY这些排序方式。

1.和存储有关的
服务器字符集 (@@character_set_server)
库字符集 (@@character_set_database)
表字符集
字段字符集

character_set_server: 服务器安装时指定的默认字符集设定。
character_set_database: 数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。
character_system: 数据库系统使用的字符集设定。

在创建一个表的时候,每个字段只要不是binary,都会有一个字符集。如果不指定,那么在SHOW CREATE TABLE的时候,它是不会显示出来的。
建表时候,字段字符集的选取方式如下:

* if 字段指定的字符集
* else if 表指定的字符集
* else if @@character_set_database
* else @@character_set_server (如果没有设定,这个值为latin1)

2.和传输有关的
@@character_set_connection
@@character_set_results
@@character_set_client

character_set_connection: 连接数据库的字符集设置类型,如果php没有指明连接数据库使用的字符集类型就按照服务器端默认的字符设置
character_set_results: 数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集
character_set_client: 客户端使用的字符集,相当于网页中的字符集设置

3.字符集的校对规则
字符集的校对规则设定分别由上面的character_set_connection, character_set_database, character_set_server决定

collation_connection: 连接字符集的校对规则
collation_database: 默认数据库使用的校对规则。当默认数据库改变时服务器则设置该变量。如果没有默认数据库,变量的值同collation_server
collation_server: 服务器的默认校对规则

以上内容中character_set_client, character_set_connection, character_set_results 受客户端默认字符集影响。

[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci

default-character-set只能改变对存储层(server,database,table,column,system)的设定,对于客户端和服务器端的通讯层没有任何影响。

部分内容引用自这位前辈,这两篇博文解释得比较清楚:

http://blog.csdn.net/tsuliuchao/article/details/4145817

http://blog.csdn.net/tsuliuchao/article/details/4147384


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值