2013年3月12日星期二

linux下php的配置文件在什么地方?



如果已经安装好了,那么你就建立一个文件
输入:
<?php
phpinfo();
?>
文件名自己随便起,存到apache的web目录下面。执行一下就可以了!
一般根据你linux版本不同,安装方法不同,配置文件可以自己设定的!
默认安装的要看是什么linux系统,都不完全一样吧!
看phpinfo函数
如果是自己编译的话,php.ini是可以自己指定其路径的。我习惯把配置文件都放apache那边去了。
2楼的wuwentao说得也没错,可以用phpinfo()函数查看服务器信息中查看到php的编译参数心以及php.ini的位置。
哈哈,不用客气!互相帮助,我也是菜鸟,正在学习中.......
linux的发行版本太多了,而且安装方式也太多,系统默认安装(而且不同的发行版安装方式和配置也不一定一样),rpm安装,源代码编译安装那更随意,灵活性比较大,所以看phpinfo()函数查看服务器配置就可以啦,包括编译源码安装的参数命令都能看到!做web服务器我选freebsd,哈哈,不用linux,可能其他的服务会选择linux

Linux下MySQL配置文件my.ini位置


环境:RedHat Linux 9 + VWWare 8.0 + SSH 3.2.9 + Putty 0.62 + MySQL 3.2
问题:Linux下MySQL配置文件my.ini位置
解决:MySQL配置文件在Windows下叫my.ini,在MySQL的安装根目录下;在Linux下叫my.cnf,该文件位于/etc/my.cnf。

编译PHP时发生make ***[libphp5.la] Error 1的解决方案 (2013-01-18 16:35:45)转载



在编译PHP版本时,产生错误make ***[libphp5.la] Error 1
错误原因:系统缺少libtool
经过验证下面方法可行。

错误信息:
系统环境:Centos 5.2
make ***[libphp5.la] Error 1
/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1

解决办法:
1. 安装libtool.i386
# yum install libtool
2. 安装libtool-ltdl-devel.i386
# yum install libtool-ltdl-devel

感谢原文:
http://hi.baidu.com/atoat/item/86f7b416771c10f9dceecaa7

RHEL/CentOS 5.x使用yum快速安装MySQL 5.5.x--服务器上测试成功。


PS:MySQL 5.5系列成为稳定版已经有一段时间了,但据我调查了解,在生产环境中还是以5.1系列为主。在国内的大公司里,只确定金山在使用5.5了。

公司的其中几台广告统计服务器,之前的运维直接用了自带安装的MySQL 5.0系列。新来的程序员写了新的广告统计程序,使用了innodb存储引擎,偶发现5.0对innodb引擎支持不怎么好,数据库并发连接数多时会出现丢连接,于是就想升级到5.5试试。因已安装了5.0,所以不想编译安装了。就直接找了一个国外编译好的5.5的yum源,直接升级,跑了一个月了,发现很稳定!就分享一下:

1、安装MySQL 5.5.x的yum源:
rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm

2、安装MySQL客户端的支持包:
yum install libmysqlclient15 --enablerepo=webtatic

3、卸载MySQL老版本的软件包:
yum remove mysql mysql-*

4、安装MySQL 5.5的客户端和服务端:
yum install mysql55 mysql55-server --enablerepo=webtatic

5、启动MySQL系统服务,更新数据库:

/etc/init.d/mysqld restart

 设置新的服务器登录用户名和密码:mysqladmin -u root password 123456

6、附:此台服务器的my.cnf配置

skip-locking
skip-name-resolve
key_buffer = 1024M
back_log = 3000
max_allowed_packet = 4M
table_cache = 512
sort_buffer_size = 8M
read_buffer_size = 8M
myisam_sort_buffer_size = 1024M
thread_cache = 512
query_cache_size = 512M
set-variable = wait_timeout=60
thread_concurrency = 4
log-slow-queries = slow.log
long_query_time = 1
innodb_flush_log_at_trx_commit = 2
innodb_buffer_pool_size = 1024M
#innodb_locks_unsafe_for_binlog = 1


关于my.cnf配置更详细的说明请参考:

http://www.ha97.com/4110.html

英文原文:http://www.webtatic.com/packages/mysql55/

mysql 备份(直接拷贝数据文件)转


目的:把A机中的库转移到B机中。

1、停止mysql服务,在A机mysql安装目录下,找到my.ini文件打开,在此文件中找到datadir,把这个路径下的数据文件:ibdata1以及所有文件夹拷贝到B机中d:\mysql_data文件夹下(其他文件是log文件,不用拷贝,这些log文件依赖于当前系统,如果这些log文件都拷贝到B机中,会出错);

2、在B机中装正常安装mysql。

3、配件B机中的mysql服务器。先关闭mysql服务器。然后打开mysql安装目录,找到my.ini文件,在这个文件中把datadir的值改为数据文件的位置d:/mysql_data(注意是'/')。再my.ini文件中,把default-storage-engine的值改为myisam,因为InnoDB引擎不支持直接拷贝数据文件备份数据库。

4、启动mysql服务器,此时,数据库就变为了A机中的库了,所以用户名、密码都是原来的。

经测试增删查改都没问题

我的环境:
A机:xp + mysql-5.1
B机:windows 2003 + mysql-5.1

ERROR 1115 (42000) at line 29: Unknown character set: 'utf32'


I am trying to import a mysqldump file into my local database. I am using the following command

mysql5 -u root -p fbpj < anthonyl_fbpj.sql
and the following error appears

ERROR 1115 (42000) at line 29: Unknown character set: 'utf32'
__ Below is the part of the dump where the error is being thrown, at the very bottom. I am confused on what could be going on.

-- phpMyAdmin SQL Dump
-- version 3.4.11.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Mar 02, 2013 at 03:49 PM
-- Server version: 5.5.23
-- PHP Version: 5.2.17

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `anthonyl_fbpj`
--

-- --------------------------------------------------------

--
-- Table structure for table `comments`
--

CREATE TABLE IF NOT EXISTS `comments` (
  `id` varchar(36) NOT NULL,
  `project_id` varchar(36) NOT NULL,
  `user_id` varchar(36) NOT NULL,
  `task_id` varchar(36) NOT NULL,
  `data_type_id` varchar(36) NOT NULL,
  `data_path` varchar(255) DEFAULT NULL,
  `message` longtext,
  `created` datetime DEFAULT NULL,
  `modified` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_comments_users` (`user_id`),
  KEY `fk_comments_projects1` (`project_id`),
  KEY `fk_comments_data_types1` (`data_type_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf32;
mysql sql database query
share|improve this question
asked Mar 8 at 23:39



Your table comments is set to use the UTF32 character set, which was not supported by MySQL before v5.5.3.

You are probably attempting to import this dump into an earlier version of MySQL.

You might be able to get away with it just by changing utf32 to utf8 in your dump, before loading it.

Linux 配置源码安装的MySQL同时支持多个字符集


一、mysql的多字符集支持
    1、设置mysqld服务同时支持多个字符集
        将mysqld服务的默认字符集改为utf8,并同时支持latin1、gbk、gb2312、big5、ascii字符集。可以为不同的数据库、表使用不同的字符集编码。

        Step1:./configure步骤时需增加字符集支持选项,例如:
shell> ./configure --with-charset=utf8 --with-collation=utf8_bin --with-extra-charsets=big5,ascii,gb2312,gbk,utf8,latin1

          //默认的字符集缺省为latin1。
          //其中,utf8对应可用的collation值为:utf8_bin、utf8_general_ci、utf8_unicode_ci
          //extra支持也可以使用 "--with-extra-charsets=all"。

        Step2:在make步骤之前,修改config.h头文件,查找utf8、gbk、gb2312等定义字符集变量的行,确认有如下内容(如果没有则需要手动添加),例如:
#define HAVE_CHARSET_ascii 1
#define HAVE_CHARSET_big5 1
#define HAVE_CHARSET_gb2312 1
#define HAVE_CHARSET_gbk 1
#define HAVE_CHARSET_latin1 1
#define HAVE_CHARSET_utf8 1

          //一开始没有修改config.h,费了好多功夫,"mysql>"环境中使用非默认字符集时总报"Error 1115"错误:
mysqld> set names gbk;
ERROR 1115 (42000): Unknown character set: 'gbk'
          //后来发现在./configure完成后,config.h文件中并没有自动打开gbk、gb2312等变量定义,不得不手动修改添加。

    2、验证mysqld服务的多字符集支持
        1) 查看当前mysql数据库支持的字符集
mysql> show character set;

        2) 查看对应字符集可用的校对规则
mysql> show collation like 'gb%';
mysql> show collation like 'utf8%';

        3) 查看当前mysql服务器使用的默认字符集状态
mysql> status
……
Server characterset:  utf8
Db     characterset:  utf8
Client characterset:  utf8
Conn.  characterset:  utf8

        4) 在创建数据库时指定使用的默认字符集:
mysql> create database testdb default character set utf8;
mysql> show create database testdb;     //验证数据库建立信息

        5) 在创建数据表时指定使用的默认字符集:
mysql> create table testdb.tb1 ( id int(10) unsigned NOT NULL AUTO_INCREMENT,name varchar(15) NOT NULL default '',PRIMARY KEY  (id) ) ENGINE=MyISAM DEFAULT CHARACTER SET gb2312;
mysql> show create table testdb.tb1;     //验证数据表建立信息

        6) 在mysql>客户端环境中设置使用的默认字符集
mysql> set NAMES utf8;

Linux下MySQL的一些基本使用方法


    1]Linux下如何创建mysqld数据库的管理用户?

    数据库安装好后,我们应该为mysql数据库创建一个管理帐号。要把root用户设置为管理员,我们应该运行下面的命令:
    [root@linuxsir01 root]# mysqladmin -u root password 123456
    通过上面的命令,我们可以知道,mysql数据库的管理员是root,密码是123456。

    2]如何进入mysql数据库?以mysql数据库管理员root,密码为123456为例

    [root@linuxsir01 root]#mysql -u root -p 123456

    输出上面的命令后,出现的是如下的提示:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 6 to server version: 3.23.58
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    mysql>

    注意:操作这些命令的时候,应该把mysqld服务器打开。

    3]如何在数据库中操作命令呢,

    我想这是mysql手册都有的,我主要说几个要注意的地方。其实我也会不了几个命令。如果自己想学的弟兄,也不是什么难事;在windows中操作过mysql的,其实在这里也是一样的,mysql是跨平台的数据库,用法都是相同的。
    在mysql数据库中,每操作一个命令,都是;号结尾的,可能有的新手弟兄,忘记输入了;号结尾,结果退不出来。:):)

    1]查看mysql中都有哪些数据库?

    代码: show databases;
 +----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
2 rows in set (0.00 sec)
    在mysql安装好,设置好管理员后,第一次进入系统,我们用show databases;命令查看数据库的列表,发现有两个数据库,mysql和test,这是系统自建的,是让大家练习用的。

    4]如何创建和删除一个数据库?

    比如我要创建一个名为linux的数据库,应该运行如下命令
    mysql> create database [数据库名];
    所以我们应该运行如下的命令,来创建名为linux的数据库
    mysql> create database linux;
    Query OK, 1 row affected (0.00 sec)
    是不是建好了呢??肯定是建好了,因为都有OK了:) 查看是不是有linux这个数据库了呢?
 
mysql> show databases;
+----------+
| Database |
+----------+
| linux    |
| mysql    |
| test     |
+----------+
3 rows in set (0.00 sec)
mysql>

    那我们如何删除一个数据库呢??
    mysql> drop database [数据库名];

    比如我们要把刚才创建的linux数据库删除,应该用下面的命令;
    mysql> drop database linux;
    Query OK, 0 rows affected (0.00 sec)
    是不是已经删除了呢??
    代码:

mysql> show databases;
+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
2 rows in set (0.00 sec)

mysql>

    5]如何操作一个数据库呢,

    这个问题就比较多了,建议还是看一下mysql的手册吧。里面的东西太多了。如果操作一个数据库,首先是要指定一个数据库为当前数据库,应该用use命令
    mysql>use [数据库];
    比如我想指定linux这个数据库为当前数据库,应该是
    mysql> use linux;
    Database changed
    mysql>

    6]如何备份数据库??

    比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldump.   命令格式如下:

    [root@linuxsir01 root]# /opt/mysql/bin/mysqldump -uroot -p linux > /root/linux.sql
    Enter password:在这里输入数据库的密码

    通过上面的命令,我们要明白两件事,首先备份数据库是要以数据库管理员的身份备份;其次:备份目的地是/root,备份的文件名是linux.sql。其实备份的位置和文件名,根据自己的情况来定。文件名可以自己来取,路径也可以自己来安排;

    比如我想把linux的数据库备份到/home/beinan,数据库的文件名为linuxsir031130.sql,所以应该输入如下的命令。
    [root@linuxsir01 root]#/opt/mysql/bin/mysqldump -uroot -p linux > /home/beinan/linuxsir031130.sql
    Enter password:在这里输入数据库管理员root的数据库密码

    这样我们到/home/beinan目录下就能发现mysql中名为linux的数据库的备份文件linuxsir031130.sql

    综上所述,我们学习时要学会变通。:):)

    6]如何把把备份的数据库导入到数据库中?

    首先我们还是要操作上面几个过程,比如添加数据库管理员(如果您没有添加过mysql数据库管理员的话),创建数据库等。
    比如我们要把在/home/beinan这个目录中的linuxsir031130.sql这个备份,导入名为linux的数据库中,应该如下操作:
    [root@linuxsir01 root]# /opt/mysql/bin/mysql -uroot -p linux < /home/beinan/linuxsir031130.sql
    Enter password:在这里输入密码
    如果机器好,数据库比较小,几分钟就好了。

    7]其它一些比较常用的mysql指令;

    查看状态
    mysql> show status;
    查看进程
    代码:    
mysql> show processlist;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host      | db   | Command | Time | State | Info             |
+----+------+-----------+------+---------+------+-------+------------------+
| 16 | root | localhost | NULL | Query   | 0    | NULL  | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+
1 row in set (0.00 sec)

mysql>
    查看表,应该先指定一个数据库为当前数据库;比如是名为linux的数据库;
    mysql>use linux;
    mysql> show tables;
    Empty set (0.00 sec)
    mysql>

    7]对mysql数据库常用命令的一点补充

    几个常用的mysql相关的管理命令
    mysql 命令:基本文本的,显示和使用的mysql数据库。前面已经简单的提过用法;比如登录等。
    mysqladmin 命令,用来创建和维护mysql数据库的命令,前面已经简单的提过;
    isamchk 是用来修复、检查和优化.ism后缀的数据库文件;
    mysqldump 是用于备份数据库,前面已经简单的说明过;
    myisamchk 用来修复.myi后缀的数据库文件;
    比如我们要检查名为linux的数据库.myi数据库表是否存在问题,应该用下面的命令;

    要把mysqld服务器停下来
    [root@linuxsir01 root]# /opt/mysql/share/mysql.server stop

    然后执行
    [root@linuxsir01 root]# /opt/mysql/bin/myisamchk /opt/mysql/var/linux/*.MYI

    上面的命令的意思就是检查所有的.myi文件,数据库的目录在/opt/mysql/var/linux/目录中

    如果有问题,应该用-r参数来修复
    [root@linuxsir01 root]# /opt/mysql/bin/myisamchk -r /opt/mysql/var/linux/*.MYI

    8]mysqlshow 命令:显示用户选择的数据库和表

    [root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p [数据库名]

    比如我要查看名为linux的数据库;应该是:

    [root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p linux