假设你的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

非root模式下安装mysql php小记的更多相关文章

  1. 非root模式下安装mysql

    1. 下载mysql.tar.gz wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz 2. 下载cmake [ ...

  2. zzw原创_非root用户下安装nginx

    想自己安装nginx,又不相用到root用户. 非root用户下(本文为用户bdctool)来ngnix安装,要依赖pcre库.zlib库等, 1. 下载依赖包:下载地址 pcre(www.pcre. ...

  3. 8、非root权限下安装perl以及perl模块

    转载:http://www.cnblogs.com/nkwy2012/p/6418669.html 转载自http://www.zilhua.com 在本博客中,所有的软件安装都在服务器上,且无roo ...

  4. linux非root用户下安装软件,搭建生产环境

    之前的用实验室的服务器,因为某些原因,使用的用户没有root权限.linux的非root用户很多软件无法安装,非常的不方便.我的方法是使用brew来代替系统的包管理工具.brew是最先用在mac上的包 ...

  5. CentOS6非root用户下安装及配置CDH5.3.0

    #install lsb packagesudo yum install -y redhat-lsb #install net-tools package sudo yum install -y ne ...

  6. Linux下非root用户如何安装软件

    Linux下非root用户如何安装软件 从windows转移到Linux的用户最开始总会有各种不适,因为这种不适最终放弃linux的不在少数.对于这类人只能说可惜,还没有领略到linux的美好就过早放 ...

  7. CentOS双机中Docker下安装Mysql并配置互为主从模式

    CentOS双机中Docker下安装Mysql并配置互为主从模式 目录 1.搜索镜像... 1 2.拉取镜像... 1 3.绑定端口: 1 4.配置文件(修改/etc/mysql/my.cnf文件): ...

  8. [转载]Linux下非root用户如何安装软件

    [转载]Linux下非root用户如何安装软件 来源:https://tlanyan.me/work-with-linux-without-root-permission/ 这是本人遇到的实际问题,之 ...

  9. Windows下安装mysql(非安装包)

    Windows下安装mysql(非安装包) 参考:https://www.cnblogs.com/yunlongaimeng/p/12558638.html 1.下载MYSQL(慢的话可以用迅雷,或其 ...

随机推荐

  1. OkHttp+Stetho+Chrome调试android网络部分

    如果要达到上面的效果,你需要改造你的网络请求模块,使用Chrome浏览器和android程序之间的中间件来连接,这就是本篇要介绍的主题:OkHttp+Stetho+Chrome进行网络调试. okht ...

  2. 让NSURLConnection在子线程中运行

    可以有两个办法让NSURLConnection在子线程中运行,即将NSURLConnection加入到run loop或者NSOperationQueue中去运行. 前面提到可以将NSTimer手动加 ...

  3. 如何解决火狐FF里Input标签刷新页面后 仍然保存之前输入的内容的方法。

    直接在input 标签里 增加 autocomplete="off".火狐默认为 on.

  4. ADO.NET系列之操作XML

    如题,我们保存数据的方式有很多种.在ASP.NET中,可以通过js赋值隐藏域的方式,也可以通过ViewState,Session这样的内置对象,还可以通过数据库的形式.现在经常用到的就是XML了,它的 ...

  5. IOS 作业项目(4)步步完成 画图 程序(中)

    一,承接上文,继续本文  [UIButton buttonWithType:UIButtonTypeRoundedRect]; 如此声明的按钮才会有点击闪动的效果!如果直接frame方式声明就不会有. ...

  6. # 20145210 《Java程序设计》第04周学习总结

    教材学习内容总结 第六章 继承 •继承:继承基本上就是避免多个类间重复定义共同行为. 我理解的就是:在编写程序的过程中可能会出现部分代码重复的现象,把重复的部分单独定义为一类(父类),在其他代码中(子 ...

  7. mysql主从同步报slave_sql_running:no的解决方案

    1.没有正确设置server_id(如没有正确设置从配置项) ps:可手动设置server_id 2.slave stop;set global sql_slave_skip_counter=1;sl ...

  8. [动态规划]状态压缩DP小结

     1.小技巧 枚举集合S的子集:for(int i = S; i > 0; i=(i-1)&S) 枚举包含S的集合:for(int i = S; i < (1<<n); ...

  9. CUDA 程序中的同步

    前言 在并发,多线程环境下,同步是一个很重要的环节.同步即是指进程/线程之间的执行顺序约定. 本文将介绍如何通过共享内存机制实现块内多线程之间的同步. 至于块之间的同步,需要使用到 global me ...

  10. (实用篇)微信网页授权(OAuth2.0) PHP 源码简单实现

    提要: 1. 建议对OAuth2.0协议做一个学习. 2. 微信官方文档和微信官网工具要得到充分利用. 比较简单,直接帖源代码了.其中"xxxxxxxxxx"部分,是需要依据自己环 ...