zoukankan      html  css  js  c++  java
  • linux下源代码搭建php环境之mysql(一)

    如今已经大半夜了,五一劳动节挺无聊的。

    折腾一下吧。实在是睡不着。于是乎在电脑上安装个虚拟机,然后呢,在虚拟机上搭建一个php环境。

    首先我得安装MYSQL吧。

    发现遇到的问题真多。

    。待我娓娓道来。

    下面是在某站点上找到的安装步骤:

    主要介绍linux操作系统下mysql源代码进行纯手动安装。假设你对linux操作系统下MySQL源代码进行纯手动安装的实际操作流程感兴趣的话,你最好还是浏览下面的文章。

    1.实现linux下纯手动MySQL源代码安装,首先要下载MySQL的源代码,我下载的是MySQL-5.0.87.tar.gz

    2.解压tar –xvfMySQL-5.0.87.tar.gz

    3.进入MySQL-5.0.87

    4.检測环境并指定安装文件夹:./configure--prefix=/usr/local/MySQL

    5.编译:make

    6.安装:sudo make install

    7.实现linux下纯手动MySQL源代码安装中要进行配置。首先能够看到安装完的文件夹例如以下

     

    在share/MySQL下打命令:ls –l | grepmy-

    出来的都是MySQL的配置文件。依照须要选择当中一个拷到/etc下命名为my.cnf

    /etc/my.cnf是MySQL默认读的配置文件的路径

    8.改动var的可写权限。这是MySQL的数据库数据文件存放的位置,由于用当前用户来执行MySQL的后台程序可能没有这个文件夹的可写权限。

    chmod 777 ./var –r

    9.配置系统环境变量。使得能够直接运行MySQL的程序

    系统的环境变量是放在/etc/profile下的,而用户的环境变量是放在用户的根文件夹下的.bashrc下

    /etc/profile的配置:

    1. PATH=/usr/local/MySQL/bin:$PATH 
    2. PATH=/usr/local/MySQL/libexec:$PATH 

    10.在启动MySQLd之前要先初始化它。运行MySQL_install_db

    11.直接打mysqld_safe&启动mysql,由于之前配置过环境变量

    12.直接MySQL进入MySQL的命令行控制。默认是以当前username登录的。默认root是没有password的

    13.设置root的密码:MySQLadmin –u rootpassword ‘123456’

    14.以root身份登录:MySQL –uroot–p

    15.设置远程登录数据库。用户创建后默认是仅仅能在本地登录的。

    1. update user set Host='%’ where user=‘guoyu'

    这句是将guoyu这个用户的同意登录的地址改成随意。但不包含本地。也就是说这样guoyu这个用户就无法在本地登录了,仅仅能远程登录。

    仅仅有root用户才干运行这句。所以要先以root用户登录到本地数据库才行。

    1. flush privileges; 

    16.停止mysql:mysqladminshutdown

    要再运行这句刷新缓存才干生效。

    以上的相关内容就是对linux下纯手动MySQL源代码安装的介绍,望你能有所收获。

    过程中遇到例如以下问题:

    遇到的问题一:

    No targets specified and no makefile found. Stop.
    解决:
    yum install gcc gcc-c++ autoconf automake

    遇到的问题二:

    Permission denied
    Permission denied in linux

    在linux上安装有些东西时会出现 Permission denied 的情况:下面就是
    解决:
    编辑/etc/selinux/config。找到这段:
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    # enforcing - SELinux security policy is enforced.
    # permissive - SELinux prints warnings instead of enforcing.
    # disabled - SELinux is fully disabled.
    SELINUX=enforcing


    把 SELINUX=enforcing 凝视掉:#SELINUX=enforcing 。然后新加一行为:
    SELINUX=disabled
    保存。关闭。
    ......

    编辑/etc/sysconfig/selinux,找到:
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    # enforcing - SELinux security policy is enforced.
    # permissive - SELinux prints warnings instead of enforcing.
    # disabled - SELinux is fully disabled.
    SELINUX=enforcing


    假设SELINUX已经是 SELINUX=disabled。那么就不用改了。否则就把


    SELINUX=enforcing 凝视掉,新加一行:
    SELINUX=disabled
    保存,退出。


    假设你碰到其它类似提示:
    cannot restore segment prot after reloc: Permission denied
    哪应该是SELinux的问题,能够考虑把它关闭。
    ----------------------------------------------------------------


    ---------------------
    郁闷的是.我把SELinux关闭后还是不行.于是到google上search.发现这个


    非常实用.
    在你保证SElinux 被disable后.还运行下
    chcon -t texrel_shlib_t
    如: chcon -t texrel_shlib_t /路径/路径/名字.so (这个文件视详细运行文件.)
    以上两步.已经攻克了非常多server的问题了.

    遇到的问题三:

    没有ROOT权限

    解决:

    打开终端,在终端中输入[root@localhost ~]# su


    遇到的问题四:

    在tar。./configure,make,make install 经典四步时,从来没有想过当中的过程。仅仅认为像例行公事一样,做就是了。


    不幸的是,这次在./configure后。make时出现下面错误:
    make: *** No targets specified and no makefile found. stop.
     
    解决:
    在网上找到相关资料。确认是./configure出了问题。于是回头查看,果然发现问题:最后几行出了错。

    完整错误信息例如以下:
    checking for tgetent in -lncurses... no
    checking for tgetent in -lcurses... no
    checking for tgetent in -ltermcap... no
    checking for tgetent in -ltinfo... no
    checking for termcap functions library... configure: error: No 
    curses/termcap library found
     
    原因:
    缺少ncurses安装包
     
    解决的方法:
    下载安装对应软件包
    一、假设你的系统是RedHat系列:
    yum list|grep ncurses
    yum -y install ncurses-devel
    yum install ncurses-devel
     
    二、假设你的系统是Ubuntu或Debian:
    apt-cache search ncurses
    apt-get install libncurses5-dev
     
    待安装completed!之后。再./configure,顺利通过。然后make && make 
    install,安装成功,一切OK。~~~

    遇到的问题五:

    bash: mysql: command not found
    解决:
    第一个问题,是由于你的mysql命令的路径在/usr/local/mysql/bin以下,所以你直接使用mysql命令时,系统在/usr/bin以下查此命令,所以找不到了,解决的方法是 ln -s /usr/local/mysql/bin/mysql /usr/bin 做个链接就可以,
    第二个问题是你由于你没有指定password參数而至,应这样 mysql -uroot -p
    或者直接使用相对路径./mysql -uroot -p123456

    擦汗了一把,安装一个MYSQL遇到了这么多问题。

    幸好到最后成功安装了。


    最后总结了一下安装过程:

    1.完毕linux系统下纯手动MySQL源代码的安装,首先要下载MySQL的源代码,我下载的是MySQL-5.0.87.tar.gz 

    2.解压tar –xvf MySQL-5.0.87.tar.gz 

    3.进入MySQL-5.0.87 

    4.检測环境并指定安装的文件夹:./configure --prefix=/usr/local/MySQL 检測出来缺什么那就安装什么。假设连gcc和g++都没有。没有编译器的话就要直接下载rpm包(已编译好的二进制文件)再安装到系统。 例如以下是安装gcc的命令(要先去下载这个包,这个地址有比較多的rpm包下载http://mirror.oa.com/SLES10-SP1-RPMS-32/): 

    sudo rpm -ivh gcc-4.1.2_20070115-0.11.i586.rpm 

    安装这些rpm包的过程中有些是已安装的。或者是自己依赖自己导致安装不了。反正安装不了就用强制安装并忽略依赖的命令

    sudo rpm -ivh gcc-4.1.2_20070115-0.11.i586.rpm –-force –nodeps 

    可能进过安装一系列的rmp包后,最终完毕了环境检測。

    。。

    。。。 

    5.编译:make 

    6.安装:sudo make install

    7.实现linux下纯手动MySQL源代码安装中要进行配置。首先能够看到安装完的文件夹例如以下 在share/MySQL下打命令:

    ls –l | grep my-

    出来的都是MySQL的配置文件,依照须要选择当中一个拷到/etc下命名为my.cnf /etc/my.cnf是MySQL默认读的配置文件的路径

    8.改动var的可写权限。

    这是MySQL的数据库数据文件存放的位置,由于用当前用户来执行MySQL的后台程序可能没有这个文件夹的可写权限。

    chmod 777 ./var –r 

    9.配置系统环境变量,使得能够直接运行MySQL的程序 系统的环境变量是放在/etc/profile下的,而用户的环境变量是放在用户的根文件夹下的.bashrc下 (1) /etc/profile的配置:PATH export PATH当中/usr/local/mydql/bin是MySQL基本的可运行程序的文件夹,而libexec是放MySQL的后台主程序MySQLd的。

    (2).bashrc的配置: 

    set PATH=/usr/local/MySQL/bin:$PATH 

    set PATH=/usr/local/MySQL/libexec:$PATH

    export PATH这里注意.bashrc里面是要加个set的。

    配置完后重登录就能够生效了

    10.在启动MySQLd之前要先初始化它。运行MySQL_install_db 

    11.启动MySQLd,直接打MySQLd就能够了,由于之前配置过系统环境变量了 

    12.直接MySQL进入MySQL的命令行控制。默认是以当前username登录的,默认root是没有password的

    13.设置root的密码:MySQLadmin –u root password ‘123456’ 

    14.以root身份登录:MySQL –uroot –p 

    15.设置远程登录数据库。用户创建后默认是仅仅能在本地登录的。 update user set Host='%’ where user=‘guoyu'; 这句是将guoyu这个用户的同意登录的地址改成随意,但不包含本地。也就是说这样guoyu这个用户就无法在本地登录了,仅仅能远程登录。 仅仅有root用户才干运行这句。所以要先以root用户登录到本地数据库才行。 flush privileges; 要再运行这句刷新缓存才干生效。以上的相关内容就是对linux下纯手动MySQL源代码安装的介绍。望你能有所收获。

    最后在网上找的MYSQL配置的相关资料:

    1. 配置开机启动服务
    /sbin/chkconfig httpd on [设置apacheserverhttpd服务开机启动]
    /sbin/chkconfig –add mysqld [在服务清单中加入mysql服务]
    /sbin/chkconfig mysqld on [设置mysql服务开机启动]
    /sbin/service httpd start [启动httpd服务,与开机启动无关]
    /sbin/service mysqld start [启动mysql服务,与开机无关]

    2. 设置mysql数据库root帐号password。默认的初始化password为空~~~
    mysqladmin -u root password ‘new-password’ [引號内填密码]

    3. 让mysql数据库更安全
    mysql -u root -p
    mysql> DROP DATABASE test; [删除test数据库]
    mysql> DELETE FROM mysql.user WHERE user = ”; [删除匿名帐户]
    mysql> FLUSH PRIVILEGES; [重载权限]
    4.安装上mysql扩展
    yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
    5.设置默认编码等一些初始參数(my.cnf)
    vi /etc/my.cnf
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    default-character-set=utf8 [加入]
    default-storage-engine=INNODB [加入]
    old_passwords=1
    [client]
    default-character-set=utf8 [加入]
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
     

  • 相关阅读:
    IXmlSerializable With WCFData Transfer in Service Contracts
    Difference Between XmlSerialization and BinarySerialization
    Using XmlSerializer (using Attributes like XmlElement , XmlAttribute etc ) Data Transfer in Service Contracts
    Introducing XML Serialization
    Version Tolerant Serialization
    Which binding is bestWCF Bindings
    Data Transfer in Service Contracts
    DataContract KnownTypeData Transfer in Service Contracts
    Using the Message ClassData Transfer in Service Contracts
    DataContract POCO SupportData Transfer in Service Contracts
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7307867.html
Copyright © 2011-2022 走看看