zoukankan      html  css  js  c++  java
  • 非root模式下安装mysql php小记

    假设你的home目录为/home/work

    mysql-server 安装

    1. 下载mysql.tar.gz 

    wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz

    2. 下载cmake [5.5及以上的版本需要用cmake进行安装]

    cmake 官网下载 http://cmake.org/cmake/resources/software.html

    wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2-Linux-i386.tar.gz

    解压 tar -zxvf cmake-2.8.12.2-Linux-i386.tar.gz

    无需编译  直接使用 cmake-2.8.12.2-Linux-i386/bin/cmake

    3. 安装mysql

    1) tar -zxvf mysql-5.6.17.tar.gz 

    2) cd mysql-5.6.17

    3) /home/work/cmake-2.8.12.2-Linux-i386/bin/cmake  -DCMAKE_INSTALL_PREFIX=/home/work/local/mysql -DMYSQL_DATADIR=/home/work/local/mysql/data -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/home/work/tmp/mysqld.sock -DWITH_INNOBASE_STORAGE_ENGINE=1

    注意: 路径尽量使用绝对路径。

    4) make ; make install

    4. 启动

    /home/work/local/mysql/scripts/mysql_install_db  --user=work --basedir=/home/work/local/mysql --datadir=/home/work/local/mysql/data --no-defaults

    运行mysql_install_db以后会有相应的启动提示 按照提示结合日志即可启动,也可以按照我下面写的方法。

    /home/work/local/mysql/scripts/mysql_install_db --defaults-file=/home/work/local/mysql/my.cnf --datadir=/home/work/local/mysql/data/ --basedir=/home/work/local/mysql/

    touch  /home/work/tmp/mysqld.sock   注意: 这个文件是你在cmake编译时候写的 -DMYSQL_UNIX_ADDR=/home/work/tmp/mysqld.sock

    另外如果 3306已经被其他mysql 占用 则要修改 /home/work/local/mysql/my.cnf  的port为 其他端口

    /home/work/local/mysql/bin/mysqld_safe  --defaults-file=/home/work/local/mysql/my.cnf &  [注意这里要指定my.cnf否则会使用默认的/etc/my.cnf]

    /home/work/local/mysql/bin/mysqladmin -u root password '123456'

    5. 使用 /home/work/local/mysql/bin/mysql -uroot -p123456 使用

    1) 如果报错 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 111

    可能是你使用了其他端口 需要在链接的时候指定端口  /home/work/local/mysql/bin/mysql -uroot -p123456 -P3307

    2)如果报错,没有权限ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    那么是你需要添加该用户  或者 是为这个用户授权

    关于授权

    默认是有一个 root@localhos的账户, 一般我们是为了支持其他机器访问的话需要加 root@%的账户和 root@本机名称的账户.

    步骤就是

    create user 'root'@'%' identified by '123456'

    create user 'root'@'***.**.com' identified by '123456'

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'***.**.com' IDENTIFIED BY '123456';

    FLUSH  PRIVILEGES;

    注意精确匹配的优先级要高于%这种模糊匹配, 而且有时候-hip会解析成-hhost名称 这样要看root@host名称是否有授权.

    添加用户 可以使用add user 命令 也可以直接在mysql.user中添加这个用户. 比如:  create user root@localhost identified by '123456';

    授权需要用grant 命令   如:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

    PHP安装

    1. 下载

    官网列表地址 http://www.php.net/downloads.php

    wget http://tw1.php.net/get/php-5.3.28.tar.gz/from/this/mirror

    tar -zxvf php-5.3.28.tar.gz

    cd php-5.3.28

    2. 编译安装  

    指定 mysql lib路径  

    vi .bash_profile,添加:
    MYSQL_LIB='/home/work/mysql/lib'
    export LD_LIBRARY_PATH=$MYSQL_LIB:$LD_LIBRARY_PAT

    ./configure --prefix=/home/work/bin/php --with-mysql=/home/work/local/mysql  --with-pdo-mysql=/home/work/local/mysql  --with-config-file-path=/home/work/etc --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-inline-optimization  --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-exif --enable-calendar  --enable-wddx --enable-pcntl

    其中  支持mysql --with-mysql   --with-pdo-mysql    要填入 mysql 的安装路径(不是mysql客户端可执行脚本)

    make

    make install

    --with-config-file-path=/home/work/etc  指定php.ini的目录

    另外一个机器多个PHP,编译扩展要注意

    1. phpize  php-config用对应的 

    2. php.ini 位置 (--with-config-file-path) 要正确

    3. extentsion_dir是否指定 最好全路径

    貌似写了--with-mysql  --with-pdo-mysql  最终还是没装上mysql的扩展,

    直接安装扩展 通过Phpzie 有报错

    configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.

    查了下解决办法是

    wget http://sourceforge.net/projects/re2c/files/re2c/0.13.5/re2c-0.13.5.tar.gz/download
    tar zxf re2c-0.13.5.tar.gz && cd re2c-0.13.5
    ./configure
    make && make install
    然后再去编译安装Fileinfo,就不会报re2c的错误了
    但是 安装时又报错没有 /usr/bin 下的权限。

    崩溃。

    用别的办法

    使用php包中自带的ext  

    cd ./php-5.2.10/ext/mysql

    /home/work/local/php/bin/phpize 

    ./configure  --with-php-config=/home/work/local/php/bin/php-config --with-mysql=/home/work/local/mysql/

    //   --with-mysql=/home/work/local/mysql/  这个到现在还没明白到底是为什么   如果没有安装mysql-server是不是需要特意安装一个mysql-client呢? 有待考证

    make

    make install

    最后 提示 

    Installing shared extensions:     /home/work/local/php/lib/php/extensions/no-debug-non-zts-20060613/

    cp /home/work/local/php/lib/php/extensions/no-debug-non-zts-20060613/mysql.so  ../  

    把扩展放到 上一级目录 /home/work/local/php/lib/php/extensions/  下  并把  /home/work/local/php/lib/php/extensions/配置为PHP的extention_dir

    之后修改PHP.ini

    1. extension_dir = "/home/work/local/php/lib/php/extensions/

    2. 添加  extension=mysql.so

    如果直接在cli命令下运行的话 不用重启任何服务 直接/home/work/local/php/bin/php -i  发现有mysql扩展的信息了

    如果是apache  php-cli 之类的 可能就需要 重启 apache和php-fpm才能生效。

    其他扩展类似。

    另: php -i可以得到 php.ini的路径 如果这个路径下没有配置 要从源码包拷一份php.ini过来 并进行配置

    参考博客地址

    http://www.cnblogs.com/ahomer/archive/2012/11/23/2783814.html

  • 相关阅读:
    预习笔记 多态 --S2 4.3
    织梦CMS标签生成器
    socketCluster 使用
    JS工具库之Lodash
    socketcluster 客户端请求
    AngularJS自定义指令directive:scope属性 (转载)
    angularjs报错问题记录
    Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
    angularJS中directive与controller之间的通信
    AngularJs Type error : Cannot read property 'childNodes' of undefined
  • 原文地址:https://www.cnblogs.com/sailrancho/p/3676666.html
Copyright © 2011-2022 走看看